[
  {
    "path": ".bartycrouch.toml",
    "content": "[update]\ntasks = [\"interfaces\", \"translate\", \"normalize\"]\n\n[update.interfaces]\npaths = [\"Maccy\"]\nsubpathsToIgnore = [\".git\", \"carthage\", \"pods\", \"build\", \".build\", \"docs\"]\ndefaultToBase = false\nignoreEmptyStrings = true\nunstripped = false\nignoreKeys = [\"#bartycrouch-ignore!\", \"#bc-ignore!\", \"#i!\"]\n\n[update.translate]\npaths = [\"Maccy\"]\nsubpathsToIgnore = [\".git\", \"carthage\", \"pods\", \"build\", \".build\", \"docs\"]\ntranslator = \"deepL\"\nsecret = \"<replace>\"\nsourceLocale = \"en\"\nseparateWithEmptyLine = false\n\n[update.normalize]\npaths = [\"Maccy\"]\nsubpathsToIgnore = [\".git\", \"carthage\", \"pods\", \"build\", \".build\", \"docs\"]\nseparateWithEmptyLine = false\nsortByKeys = false\n\n[lint]\npaths = [\"Maccy\"]\nsubpathsToIgnore = [\".git\", \"carthage\", \"pods\", \"build\", \".build\", \"docs\"]\nduplicateKeys = true\nemptyValues = true\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "buy_me_a_coffee: p0deje\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "content": "---\nname: 🐛 Bug Report\ndescription: Submit a Bug Report\nlabels: [bug]\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        Thank you for taking the time to complete this bug report!\n        This will help to find the cause of the issue faster and requires fewer follow-ups.\n  - type: checkboxes\n    attributes:\n      label: Before Submitting Your Bug Report\n      options:\n        - label: I have verified that there isn't already an issue reporting the same bug to prevent duplication.\n          required: false\n        - label: I have seen the [FAQ](https://github.com/p0deje/Maccy?tab=readme-ov-file#faq).\n          required: false\n  - type: input\n    attributes:\n      label: Maccy Version (see 'About' window)\n      placeholder: e.g. 0.29.0\n    validations:\n      required: false\n  - type: input\n    attributes:\n      label: macOS Version\n      placeholder: e.g. 13.5.2\n    validations:\n      required: false\n  - type: textarea\n    attributes:\n      label: Maccy Settings\n      description: Provide the output from running 'defaults read org.p0deje.Maccy' in Terminal.app.\n      render: Shell\n    validations:\n      required: false\n  - type: textarea\n    attributes:\n      label: Description\n      description: Please provide a clear and concise description of the bug.\n      placeholder: Short description\n    validations:\n      required: false\n  - type: textarea\n    attributes:\n      label: Steps to Reproduce\n      description: |\n        Provide the steps to consistently reproduce the issue. If possible, record a screen video\n        demonstrating the problem using QuickTime.app.\n      placeholder: |\n        1. Navigate to …\n        2. Click on …\n        3. Scroll down to …\n        4. Observe …\n    validations:\n      required: false\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "content": "blank_issues_enabled: true\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "content": "---\nname: 💪 Feature request\ndescription: Suggest an idea for this project\nlabels: [enhancement]\nbody:\n  - type: checkboxes\n    attributes:\n      label: Before Submitting Your Feature Request\n      options:\n        - label: Check that there isn't already a similar feature request to avoid creating a duplicate.\n          required: false\n        - label: I have seen the [FAQ](https://github.com/p0deje/Maccy?tab=readme-ov-file#faq).\n          required: false\n  - type: textarea\n    attributes:\n      label: Problem\n      description:\n        Please add a clear and concise description of the problem you are\n        seeking to solve with this feature request.\n      placeholder: |\n        Description\n  - type: textarea\n    attributes:\n      label: Solution\n      description: Please describe what you might want to happen to address this issue. If applicable, add a screenshot, gif, or video to better convey your idea.\n      placeholder: |\n        Short description\n    validations:\n      required: false\n"
  },
  {
    "path": ".gitignore",
    "content": "xcuserdata/\nMaccy.xcodeproj/project.xcworkspace/xcshareddata\n.idea\n.DS_Store\nMaccy/.DS_Store\n"
  },
  {
    "path": ".periphery.yml",
    "content": "project: Maccy.xcodeproj\nretain_objc_accessible: true\nschemes:\n- Maccy\ntargets:\n- Maccy\n"
  },
  {
    "path": ".swiftlint.yml",
    "content": "disabled_rules:\n  - multiple_closures_with_trailing_closure\n  - non_optional_string_data_conversion\n  - todo\nline_length:\n  ignores_comments: true\n"
  },
  {
    "path": "Designs/Copies.txt",
    "content": "Hello! 👋\nThis is Maccy.\nClipboard manager for Mac. 💻\nSearch as you type. 🔍\nOpen source. ⚙️\nNo fluff! 😛\n"
  },
  {
    "path": "Designs/Instructions.pxd/data/selectionForContentTransform/meta",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>backingScale</key>\n\t<real>1</real>\n\t<key>mode</key>\n\t<integer>0</integer>\n\t<key>shapeSelectionFilename</key>\n\t<string>shapeSelection</string>\n\t<key>size</key>\n\t<data>\n\tNC10UHpTVFAQAAAAQKQAAAAAAABAmQAAAAAAAA==\n\t</data>\n\t<key>softness</key>\n\t<real>0.0</real>\n\t<key>timestamp</key>\n\t<real>682897674.67681396</real>\n\t<key>transform</key>\n\t<array>\n\t\t<real>1.2718749999999999</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>1.2718750000000003</real>\n\t\t<real>303.99999999999943</real>\n\t\t<real>-115.00000000000023</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t</array>\n\t<key>version</key>\n\t<integer>2</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "Designs/Instructions.pxd/data/selectionForContentTransform/shapeSelection/meta",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>backingScale</key>\n\t<real>1</real>\n\t<key>pathFilename</key>\n\t<string>path</string>\n\t<key>version</key>\n\t<integer>1</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "Designs/Storage-Types.pxd/data/selection/meta",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>backingScale</key>\n\t<real>1</real>\n\t<key>mode</key>\n\t<integer>0</integer>\n\t<key>shapeSelectionFilename</key>\n\t<string>shapeSelection</string>\n\t<key>size</key>\n\t<data>\n\tNC10UHpTVFAQAAAAQKQAAAAAAABAmQAAAAAAAA==\n\t</data>\n\t<key>softness</key>\n\t<real>0.0</real>\n\t<key>timestamp</key>\n\t<real>682898643.54011703</real>\n\t<key>transform</key>\n\t<array>\n\t\t<real>1</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>1</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t</array>\n\t<key>version</key>\n\t<integer>2</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "Designs/Storage-Types.pxd/data/selection/shapeSelection/meta",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>backingScale</key>\n\t<real>1</real>\n\t<key>pathFilename</key>\n\t<string>path</string>\n\t<key>version</key>\n\t<integer>1</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "Designs/Storage-Types.pxd/data/selectionForContentTransform/meta",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>backingScale</key>\n\t<real>1</real>\n\t<key>mode</key>\n\t<integer>0</integer>\n\t<key>shapeSelectionFilename</key>\n\t<string>shapeSelection</string>\n\t<key>size</key>\n\t<data>\n\tNC10UHpTVFAQAAAAQKQAAAAAAABAmQAAAAAAAA==\n\t</data>\n\t<key>softness</key>\n\t<real>0.0</real>\n\t<key>timestamp</key>\n\t<real>682898669.47036195</real>\n\t<key>transform</key>\n\t<array>\n\t\t<real>1</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>1</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t\t<real>0.0</real>\n\t</array>\n\t<key>version</key>\n\t<integer>2</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "Designs/Storage-Types.pxd/data/selectionForContentTransform/shapeSelection/meta",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>backingScale</key>\n\t<real>1</real>\n\t<key>pathFilename</key>\n\t<string>path</string>\n\t<key>version</key>\n\t<integer>1</integer>\n</dict>\n</plist>\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2025 Alex Rodionov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Maccy/About.swift",
    "content": "import Cocoa\n\nclass About {\n  private let familyCredits = NSAttributedString(\n    string: \"Special thank you to Tonia, Anna & Guy! ❤️\",\n    attributes: [NSAttributedString.Key.foregroundColor: NSColor.labelColor]\n  )\n\n  private var kossCredits: NSMutableAttributedString {\n    let string = NSMutableAttributedString(string: \"Kudos to Sasha Koss for help! 🏂\",\n                                           attributes: [NSAttributedString.Key.foregroundColor: NSColor.labelColor])\n    string.addAttribute(.link, value: \"https://koss.nocorp.me\", range: NSRange(location: 9, length: 10))\n    return string\n  }\n\n  private var links: NSMutableAttributedString {\n    let string = NSMutableAttributedString(string: \"Website│GitHub│Support\",\n                                           attributes: [NSAttributedString.Key.foregroundColor: NSColor.labelColor])\n    string.addAttribute(.link, value: \"https://maccy.app\", range: NSRange(location: 0, length: 7))\n    string.addAttribute(.link, value: \"https://github.com/p0deje/Maccy\", range: NSRange(location: 8, length: 6))\n    string.addAttribute(.link, value: \"mailto:support@maccy.app\", range: NSRange(location: 15, length: 7))\n    return string\n  }\n\n  private var credits: NSMutableAttributedString {\n    let credits = NSMutableAttributedString(string: \"\",\n                                            attributes: [NSAttributedString.Key.foregroundColor: NSColor.labelColor])\n    credits.append(links)\n    credits.append(NSAttributedString(string: \"\\n\\n\"))\n    credits.append(kossCredits)\n    credits.append(NSAttributedString(string: \"\\n\"))\n    credits.append(familyCredits)\n    credits.setAlignment(.center, range: NSRange(location: 0, length: credits.length))\n    return credits\n  }\n\n  @objc\n  func openAbout(_ sender: NSMenuItem?) {\n    NSApp.activate(ignoringOtherApps: true)\n    NSApp.orderFrontStandardAboutPanel(options: [NSApplication.AboutPanelOptionKey.credits: credits])\n  }\n}\n"
  },
  {
    "path": "Maccy/Accessibility.swift",
    "content": "import AppKit\n\nstruct Accessibility {\n  private static var allowed: Bool { AXIsProcessTrustedWithOptions(nil) }\n\n  static func check() {\n    guard !allowed else {\n      return\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/AppDelegate.swift",
    "content": "import Defaults\nimport KeyboardShortcuts\nimport Sparkle\nimport SwiftUI\n\nclass AppDelegate: NSObject, NSApplicationDelegate {\n  var panel: FloatingPanel<ContentView>!\n\n  @objc\n  private lazy var statusItem: NSStatusItem = {\n    let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)\n    statusItem.behavior = .removalAllowed\n    statusItem.button?.action = #selector(performStatusItemClick)\n    statusItem.button?.image = Defaults[.menuIcon].image\n    statusItem.button?.imagePosition = .imageLeft\n    statusItem.button?.target = self\n    return statusItem\n  }()\n\n  private var isStatusItemDisabled: Bool {\n    Defaults[.ignoreEvents] || Defaults[.enabledPasteboardTypes].isEmpty\n  }\n\n  private var statusItemVisibilityObserver: NSKeyValueObservation?\n\n  func applicationWillFinishLaunching(_ notification: Notification) { // swiftlint:disable:this function_body_length\n    #if DEBUG\n    if CommandLine.arguments.contains(\"enable-testing\") {\n      SPUUpdater(hostBundle: Bundle.main,\n                 applicationBundle: Bundle.main,\n                 userDriver: SPUStandardUserDriver(hostBundle: Bundle.main, delegate: nil),\n                 delegate: nil)\n      .automaticallyChecksForUpdates = false\n    }\n    #endif\n\n    // Bridge FloatingPanel via AppDelegate.\n    AppState.shared.appDelegate = self\n\n    Clipboard.shared.onNewCopy { History.shared.add($0) }\n    Clipboard.shared.start()\n\n    Task {\n      for await _ in Defaults.updates(.clipboardCheckInterval, initial: false) {\n        Clipboard.shared.restart()\n      }\n    }\n\n    statusItemVisibilityObserver = observe(\\.statusItem.isVisible, options: .new) { _, change in\n      if let newValue = change.newValue, Defaults[.showInStatusBar] != newValue {\n        Defaults[.showInStatusBar] = newValue\n      }\n    }\n\n    Task {\n      for await value in Defaults.updates(.showInStatusBar) {\n        statusItem.isVisible = value\n      }\n    }\n\n    Task {\n      for await value in Defaults.updates(.menuIcon, initial: false) {\n        statusItem.button?.image = value.image\n      }\n    }\n\n    synchronizeMenuIconText()\n    Task {\n      for await value in Defaults.updates(.showRecentCopyInMenuBar) {\n        if value {\n          statusItem.button?.title = AppState.shared.menuIconText\n        } else {\n          statusItem.button?.title = \"\"\n        }\n      }\n    }\n\n    Task {\n      for await _ in Defaults.updates(.ignoreEvents) {\n        statusItem.button?.appearsDisabled = isStatusItemDisabled\n      }\n    }\n\n    Task {\n      for await _ in Defaults.updates(.enabledPasteboardTypes) {\n        statusItem.button?.appearsDisabled = isStatusItemDisabled\n      }\n    }\n  }\n\n  func applicationDidFinishLaunching(_ aNotification: Notification) {\n    migrateUserDefaults()\n    disableUnusedGlobalHotkeys()\n\n    panel = FloatingPanel(\n      contentRect: NSRect(origin: .zero, size: Defaults[.windowSize]),\n      identifier: Bundle.main.bundleIdentifier ?? \"org.p0deje.Maccy\",\n      statusBarButton: statusItem.button,\n      onClose: { AppState.shared.popup.reset() }\n    ) {\n      ContentView()\n    }\n  }\n\n  func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {\n    panel.toggle(height: AppState.shared.popup.height)\n    return true\n  }\n\n  func applicationWillTerminate(_ notification: Notification) {\n    if Defaults[.clearOnQuit] {\n      AppState.shared.history.clear()\n    }\n  }\n\n  private func migrateUserDefaults() {\n    if Defaults[.migrations][\"2024-07-01-version-2\"] != true {\n      // Start 2.x from scratch.\n      Defaults.reset(.migrations)\n\n      // Inverse hide* configuration keys.\n      Defaults[.showFooter] = !UserDefaults.standard.bool(forKey: \"hideFooter\")\n      Defaults[.showSearch] = !UserDefaults.standard.bool(forKey: \"hideSearch\")\n      Defaults[.showTitle] = !UserDefaults.standard.bool(forKey: \"hideTitle\")\n      UserDefaults.standard.removeObject(forKey: \"hideFooter\")\n      UserDefaults.standard.removeObject(forKey: \"hideSearch\")\n      UserDefaults.standard.removeObject(forKey: \"hideTitle\")\n\n      Defaults[.migrations][\"2024-07-01-version-2\"] = true\n    }\n\n    // The following defaults are not used in Maccy 2.x\n    // and should be removed in 3.x.\n    // - LaunchAtLogin__hasMigrated\n    // - avoidTakingFocus\n    // - saratovSeparator\n    // - maxMenuItemLength\n    // - maxMenuItems\n  }\n\n  @objc\n  private func performStatusItemClick() {\n    if let event = NSApp.currentEvent {\n      let modifierFlags = event.modifierFlags.intersection(.deviceIndependentFlagsMask)\n\n      if modifierFlags.contains(.option) {\n        Defaults[.ignoreEvents].toggle()\n\n        if modifierFlags.contains(.shift) {\n          Defaults[.ignoreOnlyNextEvent] = Defaults[.ignoreEvents]\n        }\n\n        return\n      }\n    }\n\n    panel.toggle(height: AppState.shared.popup.height, at: .statusItem)\n  }\n\n  private func synchronizeMenuIconText() {\n    _ = withObservationTracking {\n      AppState.shared.menuIconText\n    } onChange: {\n      DispatchQueue.main.async {\n        if Defaults[.showRecentCopyInMenuBar] {\n          self.statusItem.button?.title = AppState.shared.menuIconText\n        }\n        self.synchronizeMenuIconText()\n      }\n    }\n  }\n\n  private func disableUnusedGlobalHotkeys() {\n    let names: [KeyboardShortcuts.Name] = [.delete, .pin]\n    KeyboardShortcuts.disable(names)\n\n    NotificationCenter.default.addObserver(\n      forName: Notification.Name(\"KeyboardShortcuts_shortcutByNameDidChange\"),\n      object: nil,\n      queue: nil\n    ) { notification in\n      if let name = notification.userInfo?[\"name\"] as? KeyboardShortcuts.Name, names.contains(name) {\n        KeyboardShortcuts.disable(name)\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/AppStoreReview.swift",
    "content": "import StoreKit\nimport Defaults\n\nclass AppStoreReview {\n  class func ask() {\n    Defaults[.numberOfUsages] += 1\n    guard Defaults[.numberOfUsages] > 50 else { return }\n\n    let today = Date()\n    let lastReviewRequestDate = Defaults[.lastReviewRequestedAt]\n    guard let minimumRequestDate = Calendar.current.date(byAdding: .month, value: 1, to: lastReviewRequestDate),\n          today > minimumRequestDate else {\n      return\n    }\n\n    Defaults[.lastReviewRequestedAt] = today\n\n    DispatchQueue.main.asyncAfter(deadline: .now() + 1) {\n      SKStoreReviewController.requestReview()\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/ApplicationImage.swift",
    "content": "import Defaults\nimport SwiftUI\n\nclass ApplicationImage {\n  fileprivate static let fallbackImage = NSImage(\n    systemSymbolName: \"questionmark.app.dashed\",\n    accessibilityDescription: nil\n  )!\n  private static let retryInterval: TimeInterval = 60 * 60\n\n  let bundleIdentifier: String?\n  private var image: NSImage?\n  private var lastChecked: Date?\n  private var eventSource: (any DispatchSourceFileSystemObject)?\n\n  init(bundleIdentifier: String?, image: NSImage? = nil) {\n    self.bundleIdentifier = bundleIdentifier\n    self.image = image\n  }\n\n  var nsImage: NSImage {\n    guard let bundleIdentifier else {\n      return Self.fallbackImage\n    }\n\n    if let image {\n      return image\n    }\n\n    // The image has been queried before but since the application has been deleted.\n    // Check from time to time if the application has returned.\n    if let lastChecked,\n      Date().timeIntervalSince(lastChecked) < Self.retryInterval {\n      return Self.fallbackImage\n    }\n    lastChecked = .now\n\n    if let appURL = NSWorkspace.shared.urlForApplication(\n      withBundleIdentifier: bundleIdentifier\n    ) {\n      let img = NSWorkspace.shared.icon(forFile: appURL.path)\n      image = img\n\n      let descriptor = open(appURL.path, O_EVTONLY)\n      if descriptor == -1 {\n        let errorCode = errno\n        print(\"Error code: \\(errorCode)\")\n        print(\"Error message: \\(String(cString: strerror(errorCode)))\")\n      } else if descriptor > 0 {\n        let source = DispatchSource.makeFileSystemObjectSource(\n          fileDescriptor: descriptor,\n          eventMask: [.write, .delete],\n          queue: DispatchQueue.global()\n        )\n        eventSource = source\n        source.setEventHandler {\n          DispatchQueue.main.async {\n            let event = source.data\n            if event.contains(.delete) {\n              // File was deleted.\n              print(\"Deleted\", appURL.path)\n              source.cancel()\n              self.image = nil\n            } else if event.contains(.write) {\n              // File was modified. Fetch new icon\n              print(\"Modified\", appURL.path)\n              self.image = NSWorkspace.shared.icon(forFile: appURL.path)\n            }\n          }\n        }\n        source.setCancelHandler {\n          close(descriptor)\n        }\n        source.resume()\n      }\n\n      return img\n    }\n\n    return Self.fallbackImage\n  }\n}\n"
  },
  {
    "path": "Maccy/ApplicationImageCache.swift",
    "content": "class ApplicationImageCache {\n  static let shared = ApplicationImageCache()\n\n  private let universalClipboardIdentifier: String =\n  \"com.apple.finder.Open-iCloudDrive\"\n  private let fallback = ApplicationImage(bundleIdentifier: nil)\n  private var cache: [String: ApplicationImage] = [:]\n\n  func getImage(item: HistoryItem) -> ApplicationImage {\n    guard let bundleIdentifier = bundleIdentifier(for: item) else {\n      return fallback\n    }\n\n    if let image = cache[bundleIdentifier] {\n      return image\n    }\n\n    let image = ApplicationImage(bundleIdentifier: bundleIdentifier)\n    cache[bundleIdentifier] = image\n\n    return image\n  }\n\n  private func bundleIdentifier(for item: HistoryItem) -> String? {\n    if item.universalClipboard {\n      return universalClipboardIdentifier\n    }\n\n    if let bundleIdentifier = item.application {\n      return bundleIdentifier\n    }\n\n    return nil\n  }\n}\n"
  },
  {
    "path": "Maccy/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"AppIcon (Big Sur)-16w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-32w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"16x16\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-32w-1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-64w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"32x32\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-128w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-256w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"128x128\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-256w-1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-512w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"256x256\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-512w-1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\",\n      \"size\" : \"512x512\"\n    },\n    {\n      \"filename\" : \"AppIcon (Big Sur)-1024w.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\",\n      \"size\" : \"512x512\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Maccy/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Maccy/Assets.xcassets/StatusBarMenuImage.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"mac\",\n      \"filename\" : \"DarkMenuBar-16w.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"filename\" : \"LightMenuBar-16w.png\",\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"filename\" : \"DarkMenuBar-32w.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"mac\",\n      \"filename\" : \"LightMenuBar-32w.png\",\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"template\"\n  }\n}"
  },
  {
    "path": "Maccy/Assets.xcassets/clipboard.fill.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"clipboard.fill.light_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"clipboard.fill.dark_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"clipboard.fill.light_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"clipboard.fill.dark_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"template\"\n  }\n}\n"
  },
  {
    "path": "Maccy/Assets.xcassets/paperclip.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"clip.fill.light_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"clip.fill.dark_16 1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"clip.fill.light_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"clip.fill.dark_32 1.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Maccy/Assets.xcassets/scissors.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"scissors_light_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"scissors_dark_16.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"filename\" : \"scissors_light_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"filename\" : \"scissors_dark_32.png\",\n      \"idiom\" : \"mac\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"template\"\n  }\n}\n"
  },
  {
    "path": "Maccy/Clipboard.swift",
    "content": "import AppKit\nimport Defaults\nimport Sauce\n\nclass Clipboard {\n  static let shared = Clipboard()\n\n  typealias OnNewCopyHook = (HistoryItem) -> Void\n\n  private var onNewCopyHooks: [OnNewCopyHook] = []\n  var changeCount: Int\n\n  private let pasteboard = NSPasteboard.general\n\n  private var timer: Timer?\n\n  private let dynamicTypePrefix = \"dyn.\"\n  private let microsoftSourcePrefix = \"com.microsoft.ole.source.\"\n  private let supportedTypes: Set<NSPasteboard.PasteboardType> = [\n    .fileURL,\n    .html,\n    .png,\n    .rtf,\n    .string,\n    .tiff\n  ]\n  private let ignoredTypes: Set<NSPasteboard.PasteboardType> = [\n    .autoGenerated,\n    .concealed,\n    .transient\n  ]\n\n  private var enabledTypes: Set<NSPasteboard.PasteboardType> { Defaults[.enabledPasteboardTypes] }\n  private var disabledTypes: Set<NSPasteboard.PasteboardType> { supportedTypes.subtracting(enabledTypes) }\n\n  private var sourceApp: NSRunningApplication? { NSWorkspace.shared.frontmostApplication }\n\n  init() {\n    changeCount = pasteboard.changeCount\n  }\n\n  func onNewCopy(_ hook: @escaping OnNewCopyHook) {\n    onNewCopyHooks.append(hook)\n  }\n\n  func clearHooks() {\n    onNewCopyHooks = []\n  }\n\n  func start() {\n    timer = Timer.scheduledTimer(\n      timeInterval: Defaults[.clipboardCheckInterval],\n      target: self,\n      selector: #selector(checkForChangesInPasteboard),\n      userInfo: nil,\n      repeats: true\n    )\n  }\n\n  func restart() {\n    timer?.invalidate()\n    start()\n  }\n\n  @MainActor\n  func copy(_ string: String) {\n    pasteboard.clearContents()\n    pasteboard.setString(string, forType: .string)\n    sync()\n    checkForChangesInPasteboard()\n  }\n\n  @MainActor\n  func copy(_ item: HistoryItem?, removeFormatting: Bool = false) {\n    guard let item else { return }\n\n    pasteboard.clearContents()\n    var contents = item.contents\n\n    if removeFormatting {\n      contents = clearFormatting(contents)\n    }\n\n    for content in contents {\n      guard content.type != NSPasteboard.PasteboardType.fileURL.rawValue else { continue }\n      pasteboard.setData(content.value, forType: NSPasteboard.PasteboardType(content.type))\n    }\n\n    // Use writeObjects for file URLs so that multiple files that are copied actually work.\n    // Only do this for file URLs because it causes an issue with some other data types (like formatted text)\n    // where the item is pasted more than once.\n    let fileURLItems: [NSPasteboardItem] = contents.compactMap { item in\n      guard item.type == NSPasteboard.PasteboardType.fileURL.rawValue else { return nil }\n      guard let value = item.value else { return nil }\n      let pasteItem = NSPasteboardItem()\n      pasteItem.setData(value, forType: NSPasteboard.PasteboardType(item.type))\n      return pasteItem\n    }\n    pasteboard.writeObjects(fileURLItems)\n\n    pasteboard.setString(\"\", forType: .fromMaccy)\n    pasteboard.setString(item.application ?? \"\", forType: .source)\n    sync()\n\n    Task {\n      Notifier.notify(body: item.title, sound: .knock)\n      checkForChangesInPasteboard()\n    }\n  }\n\n  // Based on https://github.com/Clipy/Clipy/blob/develop/Clipy/Sources/Services/PasteService.swift.\n  func paste() {\n    Accessibility.check()\n\n    // Add flag that left/right modifier key has been pressed.\n    // See https://github.com/TermiT/Flycut/pull/18 for details.\n    let cmdFlag = CGEventFlags(rawValue: UInt64(KeyChord.pasteKeyModifiers.rawValue) | 0x000008)\n    var vCode = Sauce.shared.keyCode(for: KeyChord.pasteKey)\n\n    // Force QWERTY keycode when keyboard layout switches to\n    // QWERTY upon pressing ⌘ key (e.g. \"Dvorak - QWERTY ⌘\").\n    // See https://github.com/p0deje/Maccy/issues/482 for details.\n    if KeyboardLayout.current.commandSwitchesToQWERTY && cmdFlag.contains(.maskCommand) {\n      vCode = KeyChord.pasteKey.QWERTYKeyCode\n    }\n\n    let source = CGEventSource(stateID: .combinedSessionState)\n    // Disable local keyboard events while pasting\n    source?.setLocalEventsFilterDuringSuppressionState([.permitLocalMouseEvents, .permitSystemDefinedEvents],\n                                                       state: .eventSuppressionStateSuppressionInterval)\n\n    let keyVDown = CGEvent(keyboardEventSource: source, virtualKey: vCode, keyDown: true)\n    let keyVUp = CGEvent(keyboardEventSource: source, virtualKey: vCode, keyDown: false)\n    keyVDown?.flags = cmdFlag\n    keyVUp?.flags = cmdFlag\n    keyVDown?.post(tap: .cgSessionEventTap)\n    keyVUp?.post(tap: .cgSessionEventTap)\n  }\n\n  func clear() {\n    guard Defaults[.clearSystemClipboard] else {\n      return\n    }\n\n    pasteboard.clearContents()\n  }\n\n  @objc\n  @MainActor\n  func checkForChangesInPasteboard() { // swiftlint:disable:this cyclomatic_complexity\n    guard pasteboard.changeCount != changeCount else {\n      return\n    }\n\n    changeCount = pasteboard.changeCount\n\n    if pasteboard.pasteboardItems?.contains(where: { $0.types.contains(.fromMaccy) }) != true {\n      // External copy occurred. Stop the current paste stack.\n      // Maybe queue it into the paste stack? Configurable behaviour?\n      AppState.shared.history.interruptPasteStack()\n    }\n\n    if Defaults[.ignoreEvents] {\n      if Defaults[.ignoreOnlyNextEvent] {\n        Defaults[.ignoreEvents] = false\n        Defaults[.ignoreOnlyNextEvent] = false\n      }\n\n      return\n    }\n\n    // Reading types on NSPasteboard gives all the available\n    // types - even the ones that are not present on the NSPasteboardItem.\n    // See https://github.com/p0deje/Maccy/issues/241.\n    if shouldIgnore(Set(pasteboard.types ?? [])) {\n      return\n    }\n\n    if let sourceAppBundle = sourceApp?.bundleIdentifier, shouldIgnore(sourceAppBundle) {\n      return\n    }\n\n    // Some applications (BBEdit, Edge) add 2 items to pasteboard when copying\n    // so it's better to merge all data into a single record.\n    // - https://github.com/p0deje/Maccy/issues/78\n    // - https://github.com/p0deje/Maccy/issues/472\n    var contents = [HistoryItemContent]()\n    pasteboard.pasteboardItems?.forEach({ item in\n      var types = Set(item.types)\n      if types.contains(.string) && isEmptyString(item) && !richText(item) {\n        return\n      }\n\n      if shouldIgnore(item) {\n        return\n      }\n\n      types = types\n        .subtracting(disabledTypes)\n        .filter { !$0.rawValue.starts(with: dynamicTypePrefix) }\n        .filter { !$0.rawValue.starts(with: microsoftSourcePrefix) }\n\n      // Avoid reading Microsoft Word links from bookmarks and cross-references.\n      // https://github.com/p0deje/Maccy/issues/613\n      // https://github.com/p0deje/Maccy/issues/770\n      if types.isSuperset(of: [.microsoftLinkSource, .microsoftObjectLink]) {\n        types = types.subtracting([.microsoftLinkSource, .microsoftObjectLink, .pdf])\n      }\n\n      types.forEach { type in\n        contents.append(HistoryItemContent(type: type.rawValue, value: item.data(forType: type)))\n      }\n    })\n\n    guard !contents.isEmpty else {\n      return\n    }\n\n    let historyItem = HistoryItem(contents: contents)\n\n    if #unavailable(macOS 15.0) {\n      // On macOS 14 the history item needs to be inserted into storage directly after creating it.\n      try? History.shared.insertIntoStorage(historyItem)\n    }\n\n    historyItem.application = sourceApp?.bundleIdentifier\n    historyItem.title = historyItem.generateTitle()\n\n    onNewCopyHooks.forEach({ $0(historyItem) })\n  }\n\n  private func shouldIgnore(_ types: Set<NSPasteboard.PasteboardType>) -> Bool {\n    let ignoredTypes = self.ignoredTypes\n      .union(Defaults[.ignoredPasteboardTypes].map({ NSPasteboard.PasteboardType($0) }))\n\n    return types.isDisjoint(with: enabledTypes) ||\n      !types.isDisjoint(with: ignoredTypes)\n  }\n\n  private func shouldIgnore(_ sourceAppBundle: String) -> Bool {\n    if Defaults[.ignoreAllAppsExceptListed] {\n      return !Defaults[.ignoredApps].contains(sourceAppBundle)\n    } else {\n      return Defaults[.ignoredApps].contains(sourceAppBundle)\n    }\n  }\n\n  private func shouldIgnore(_ item: NSPasteboardItem) -> Bool {\n    for regexp in Defaults[.ignoreRegexp] {\n      if let string = item.string(forType: .string) {\n        do {\n          let regex = try NSRegularExpression(pattern: regexp)\n          if regex.numberOfMatches(in: string, range: NSRange(string.startIndex..., in: string)) > 0 {\n            return true\n          }\n        } catch {\n          return false\n        }\n      }\n    }\n    return false\n  }\n\n  private func isEmptyString(_ item: NSPasteboardItem) -> Bool {\n    guard let string = item.string(forType: .string) else {\n      return true\n    }\n\n    return string.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty\n  }\n\n  private func richText(_ item: NSPasteboardItem) -> Bool {\n    if let rtf = item.data(forType: .rtf) {\n      if let attributedString = NSAttributedString(rtf: rtf, documentAttributes: nil) {\n        return !attributedString.string.isEmpty\n      }\n    }\n\n    if let html = item.data(forType: .html) {\n      if let attributedString = NSAttributedString(html: html, documentAttributes: nil) {\n        return !attributedString.string.isEmpty\n      }\n    }\n\n    return false\n  }\n\n  // Some applications requires window be unfocused and focused back to sync the clipboard.\n  // - Chrome Remote Desktop (https://github.com/p0deje/Maccy/issues/948)\n  // - Netbeans (https://github.com/p0deje/Maccy/issues/879)\n  private func sync() {\n    guard let app = sourceApp,\n          app.bundleURL?.lastPathComponent == \"Chrome Remote Desktop.app\" ||\n            app.localizedName?.contains(\"NetBeans\") == true else {\n      return\n    }\n\n    NSApp.activate(ignoringOtherApps: true)\n    NSApp.hide(self)\n  }\n\n  private func clearFormatting(_ contents: [HistoryItemContent]) -> [HistoryItemContent] {\n    var newContents: [HistoryItemContent] = contents\n    let stringContents = contents.filter { NSPasteboard.PasteboardType($0.type) == .string }\n\n    // If there is no string representation of data,\n    // behave like we didn't have to remove formatting.\n    if !stringContents.isEmpty {\n      newContents = stringContents\n\n      // Preserve file URLs.\n      // https://github.com/p0deje/Maccy/issues/962\n      let fileURLContents = contents.filter { NSPasteboard.PasteboardType($0.type) == .fileURL }\n      if !fileURLContents.isEmpty {\n        newContents += fileURLContents\n      }\n    }\n\n    return newContents\n  }\n}\n"
  },
  {
    "path": "Maccy/ColorImage.swift",
    "content": "import AppKit\nimport SwiftHEXColors\n\nclass ColorImage {\n  static func from(_ colorHex: String) -> NSImage? {\n    guard let color = NSColor(hexString: colorHex) else {\n      return nil\n    }\n\n    let image = NSImage(size: NSSize(width: 12, height: 12))\n    image.lockFocus()\n    color.drawSwatch(in: NSRect(x: 0, y: 0, width: 12, height: 12))\n    image.unlockFocus()\n\n    return image\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/Collection+Surrounding.swift",
    "content": "extension Collection where Element: Equatable {\n  func item(after: Element, where predicate: (Element) -> Bool) -> Element? {\n    guard let currentIndex = firstIndex(of: after) else {\n      return nil\n    }\n\n    var nextIndex = index(currentIndex, offsetBy: 1)\n    while nextIndex < endIndex {\n      let item = self[nextIndex]\n      if predicate(item) {\n        return item\n      }\n      nextIndex = index(nextIndex, offsetBy: 1)\n    }\n    return nil\n  }\n\n  func item(before: Element, where predicate: (Element) -> Bool) -> Element? {\n    guard let currentIndex = firstIndex(of: before) else {\n      return nil\n    }\n\n    var prevIndex = index(currentIndex, offsetBy: -1)\n    while prevIndex >= startIndex {\n      let item = self[prevIndex]\n      if predicate(item) {\n        return item\n      }\n      prevIndex = index(prevIndex, offsetBy: -1)\n    }\n    return nil\n  }\n\n  func between(from fromElement: Element, to toElement: Element, inOrder: Bool = false) -> [Element]? {\n    guard let fromIndex = firstIndex(of: fromElement) else {\n      return nil\n    }\n    guard let toIndex = firstIndex(of: toElement) else {\n      return nil\n    }\n    let startIndex = Swift.min(fromIndex, toIndex)\n    let endIndex = Swift.max(fromIndex, toIndex)\n    let items = self[startIndex...endIndex]\n    if !inOrder && fromIndex > toIndex {\n      return items.reversed()\n    } else {\n      return Array(items)\n    }\n  }\n}\n\nextension Array where Element: Equatable {\n  func nearest(to element: Element, where condition: (Element) -> Bool) -> Element? {\n    guard let currentIndex = firstIndex(of: element) else {\n      return nil\n    }\n    let nextNearest = self[currentIndex...].firstIndex(where: { condition($0) })\n    let previousNearest = self[...currentIndex].lastIndex(where: { condition($0) })\n    switch (nextNearest, previousNearest) {\n    case (nil, nil):\n      return nil\n    case (.some(let index), .none):\n      return self[currentIndex + index]\n    case (.none, .some(let index)):\n      return self[index]\n    case (.some(let index1), .some(let index2)):\n      let pos1 = currentIndex + index1\n      let pos2 = index2\n      return abs(pos1 - currentIndex) < abs(pos2 - currentIndex)\n      ? self[pos1]\n      : self[pos2]\n    }\n\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/Color+Random.swift",
    "content": "import SwiftUI\n\n// Useful to debug SwiftUI view redraws: .background(.random).\nextension ShapeStyle where Self == Color {\n  static var random: Color {\n    Color(\n      red: .random(in: 0...1),\n      green: .random(in: 0...1),\n      blue: .random(in: 0...1)\n    )\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/Defaults.Keys+Names.swift",
    "content": "import AppKit\nimport Defaults\n\nstruct StorageType {\n  static let files = StorageType(types: [.fileURL])\n  static let images = StorageType(types: [.png, .tiff])\n  static let text = StorageType(types: [.html, .rtf, .string])\n  static let all = StorageType(types: files.types + images.types + text.types)\n\n  var types: [NSPasteboard.PasteboardType]\n}\n\nextension Defaults.Keys {\n  static let clearOnQuit = Key<Bool>(\"clearOnQuit\", default: false)\n  static let clearSystemClipboard = Key<Bool>(\"clearSystemClipboard\", default: false)\n  static let clipboardCheckInterval = Key<Double>(\"clipboardCheckInterval\", default: 0.5)\n  static let enabledPasteboardTypes = Key<Set<NSPasteboard.PasteboardType>>(\n    \"enabledPasteboardTypes\", default: Set(StorageType.all.types)\n  )\n  static let highlightMatch = Key<HighlightMatch>(\"highlightMatch\", default: .bold)\n  static let ignoreAllAppsExceptListed = Key<Bool>(\"ignoreAllAppsExceptListed\", default: false)\n  static let ignoreEvents = Key<Bool>(\"ignoreEvents\", default: false)\n  static let ignoreOnlyNextEvent = Key<Bool>(\"ignoreOnlyNextEvent\", default: false)\n  static let ignoreRegexp = Key<[String]>(\"ignoreRegexp\", default: [])\n  static let ignoredApps = Key<[String]>(\"ignoredApps\", default: [])\n  static let ignoredPasteboardTypes = Key<Set<String>>(\n    \"ignoredPasteboardTypes\",\n    default: Set([\n      \"Pasteboard generator type\",\n      \"com.agilebits.onepassword\",\n      \"com.typeit4me.clipping\",\n      \"de.petermaurer.TransientPasteboardType\",\n      \"net.antelle.keeweb\"\n    ])\n  )\n  static let imageMaxHeight = Key<Int>(\"imageMaxHeight\", default: 40)\n  static let lastReviewRequestedAt = Key<Date>(\"lastReviewRequestedAt\", default: Date.now)\n  static let menuIcon = Key<MenuIcon>(\"menuIcon\", default: .maccy)\n  static let migrations = Key<[String: Bool]>(\"migrations\", default: [:])\n  static let numberOfUsages = Key<Int>(\"numberOfUsages\", default: 0)\n  static let pasteByDefault = Key<Bool>(\"pasteByDefault\", default: false)\n  static let pinTo = Key<PinsPosition>(\"pinTo\", default: .top)\n  static let popupPosition = Key<PopupPosition>(\"popupPosition\", default: .cursor)\n  static let popupScreen = Key<Int>(\"popupScreen\", default: 0)\n  static let previewDelay = Key<Int>(\"previewDelay\", default: 1500)\n  static let removeFormattingByDefault = Key<Bool>(\"removeFormattingByDefault\", default: false)\n  static let searchMode = Key<Search.Mode>(\"searchMode\", default: .exact)\n  static let showFooter = Key<Bool>(\"showFooter\", default: true)\n  static let showInStatusBar = Key<Bool>(\"showInStatusBar\", default: true)\n  static let showRecentCopyInMenuBar = Key<Bool>(\"showRecentCopyInMenuBar\", default: false)\n  static let showSearch = Key<Bool>(\"showSearch\", default: true)\n  static let searchVisibility = Key<SearchVisibility>(\"searchVisibility\", default: .always)\n  static let showSpecialSymbols = Key<Bool>(\"showSpecialSymbols\", default: true)\n  static let showTitle = Key<Bool>(\"showTitle\", default: true)\n  static let size = Key<Int>(\"historySize\", default: 200)\n  static let sortBy = Key<Sorter.By>(\"sortBy\", default: .lastCopiedAt)\n  static let suppressClearAlert = Key<Bool>(\"suppressClearAlert\", default: false)\n  static let windowSize = Key<NSSize>(\"windowSize\", default: NSSize(width: 450, height: 800))\n  static let windowPosition = Key<NSPoint>(\"windowPosition\", default: NSPoint(x: 0.5, y: 0.8))\n  static let showApplicationIcons = Key<Bool>(\"showApplicationIcons\", default: false)\n  static let previewWidth = Key<CGFloat>(\"previewWidth\", default: 400)\n}\n"
  },
  {
    "path": "Maccy/Extensions/Dictionary+RemoveItem.swift",
    "content": "extension Dictionary {\n  // Removes all key-value pairs where the value satisfies the given predicate.\n  mutating func removeValues(where shouldRemove: (Value) -> Bool) {\n    for (key, value) in self where shouldRemove(value) {\n      self.removeValue(forKey: key)\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/KeyEquivalent+Keys.swift",
    "content": "import SwiftUI\n\nextension KeyEquivalent {\n  static let backspace = KeyEquivalent(\"\\u{7F}\")\n}\n"
  },
  {
    "path": "Maccy/Extensions/KeyboardShortcuts.Name+Shortcuts.swift",
    "content": "import KeyboardShortcuts\n\nextension KeyboardShortcuts.Name {\n  static let popup = Self(\"popup\", default: Shortcut(.c, modifiers: [.command, .shift]))\n  static let pin = Self(\"pin\", default: Shortcut(.p, modifiers: [.option]))\n  static let delete = Self(\"delete\", default: Shortcut(.delete, modifiers: [.option]))\n  static let togglePreview = Self(\"togglePreview\", default: Shortcut(.space, modifiers: [.control]))\n}\n"
  },
  {
    "path": "Maccy/Extensions/ModifierFlags+Description.swift",
    "content": "import AppKit.NSEvent\nimport Carbon.HIToolbox\n\n// https://github.com/sindresorhus/KeyboardShortcuts/blob/e6b60117ec266e1e5d059f7f34815144f9762b36/Sources/KeyboardShortcuts/Utilities.swift#L308-L342\nextension NSEvent.ModifierFlags {\n  var description: String {\n    var description = \"\"\n\n    if contains(.control) {\n      description += \"⌃\"\n    }\n\n    if contains(.option) {\n      description += \"⌥\"\n    }\n\n    if contains(.shift) {\n      description += \"⇧\"\n    }\n\n    if contains(.command) {\n      description += \"⌘\"\n    }\n\n    if contains(.function) {\n      description += \"🌐\\u{FE0E}\"\n    }\n\n    return description\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSApplication+Windows.swift",
    "content": "import AppKit\n\nextension NSApplication {\n  var alertWindow: NSWindow? { windows.first { $0.className == \"_NSAlertPanel\" } }\n  var characterPickerWindow: NSWindow? { windows.first { $0.className == \"NSPanelViewBridge\" } }\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSImage+Names.swift",
    "content": "import Cocoa\n\nextension NSImage {\n  static let gearshape = NSImage(systemSymbolName: \"gearshape\", accessibilityDescription: \"gearshape\")\n  static let externaldrive = NSImage(systemSymbolName: \"externaldrive\", accessibilityDescription: \"externaldrive\")\n  static let paintpalette = NSImage(systemSymbolName: \"paintpalette\", accessibilityDescription: \"paintpalette\")\n  static let pincircle = NSImage(systemSymbolName: \"pin.circle\", accessibilityDescription: \"pin.cirlce\")\n  static let nosign = NSImage(systemSymbolName: \"nosign\", accessibilityDescription: \"nosign\")\n  static let gearshape2 = NSImage(systemSymbolName: \"gearshape.2\", accessibilityDescription: \"gearshape2\")\n}\n\nextension NSImage.Name {\n  static let clipboard = NSImage.Name(\"clipboard.fill\")\n  static let maccyStatusBar = NSImage.Name(\"StatusBarMenuImage\")\n  static let scissors = NSImage.Name(\"scissors\")\n  static let paperclip = NSImage.Name(\"paperclip\")\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSImage+Resized.swift",
    "content": "import AppKit.NSImage\n\n// Based on https://stackoverflow.com/questions/73062803/resizing-nsimage-keeping-aspect-ratio-reducing-the-image-size-while-trying-to-sc.\nextension NSImage {\n  func resized(to newSize: NSSize) -> NSImage {\n    let ratioX = newSize.width / size.width\n    let ratioY = newSize.height / size.height\n    let ratio = ratioX < ratioY ? ratioX : ratioY\n    let newHeight = size.height * ratio\n    let newWidth = size.width * ratio\n    let newSize = NSSize(width: newWidth, height: newHeight)\n\n    // Don't attempt to size up.\n    if newSize.height >= size.height {\n      return self\n    }\n\n    return NSImage(size: newSize, flipped: false) { destRect in\n      if let context = NSGraphicsContext.current {\n        context.imageInterpolation = .high\n        self.draw(in: destRect, from: NSRect.zero, operation: .copy, fraction: 1)\n      }\n\n      return true\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSPasteboard.PasteboardType+Types.swift",
    "content": "import AppKit.NSPasteboard\nimport Defaults\n\nextension NSPasteboard.PasteboardType: Defaults.Serializable {\n  static let heic = NSPasteboard.PasteboardType(rawValue: \"public.heic\")\n  static let jpeg = NSPasteboard.PasteboardType(rawValue: \"public.jpeg\")\n  static let universalClipboard = NSPasteboard.PasteboardType(rawValue: \"com.apple.is-remote-clipboard\")\n\n  // See http://nspasteboard.org for more details.\n  static let autoGenerated = NSPasteboard.PasteboardType(rawValue: \"org.nspasteboard.AutoGeneratedType\")\n  static let concealed = NSPasteboard.PasteboardType(rawValue: \"org.nspasteboard.ConcealedType\")\n  static let source = NSPasteboard.PasteboardType(rawValue: \"org.nspasteboard.source\")\n  static let transient = NSPasteboard.PasteboardType(rawValue: \"org.nspasteboard.TransientType\")\n\n  // https://github.com/p0deje/Maccy/issues/429#issuecomment-1182575226\n  static let modified = NSPasteboard.PasteboardType(rawValue: \"x.nspasteboard.ModifiedType\")\n\n  // Marks that copy was made from Maccy.\n  static let fromMaccy = NSPasteboard.PasteboardType(rawValue: \"org.p0deje.Maccy\")\n\n  // Types that indicate Microsoft Word bookmarks (links).\n  static let microsoftObjectLink = NSPasteboard.PasteboardType(rawValue: \"com.microsoft.ObjectLink\")\n  static let microsoftLinkSource = NSPasteboard.PasteboardType(rawValue: \"com.microsoft.Link-Source\")\n\n  // Safari preview and extra metadata that changes frequently.\n  static let linkPresentationMetadata = NSPasteboard.PasteboardType(rawValue: \"com.apple.linkpresentation.metadata\")\n  // swiftlint:disable:next line_length\n  static let customWebKitPasteboardData = NSPasteboard.PasteboardType(rawValue: \"com.apple.WebKit.custom-pasteboard-data\")\n\n  // Chromium (VSCode)\n  static let customChromiumWebData = NSPasteboard.PasteboardType(rawValue: \"org.chromium.web-custom-data\")\n  static let chromiumSourceUrl = NSPasteboard.PasteboardType(rawValue: \"org.chromium.source-url\")\n  static let chromiumSourceToken = NSPasteboard.PasteboardType(rawValue: \"org.chromium.internal.source-rfh-token\")\n\n  // Apple Notes\n  static let notesRichText = NSPasteboard.PasteboardType(rawValue: \"com.apple.notes.richtext\")\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSPoint+DefaultsSerializable.swift",
    "content": "import CoreGraphics\nimport Defaults\nimport Foundation\n\nextension NSPoint: Defaults.Serializable {\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSRect+Centered.swift",
    "content": "import Foundation\n\nextension NSRect {\n  static func centered(ofSize size: NSSize, in frame: NSRect) -> NSRect {\n    let bottomLeftX = (frame.width - size.width) / 2 + frame.minX\n    let bottomLeftY = (frame.height - size.height) / 2 + frame.minY\n\n    return NSRect(x: bottomLeftX + 1.0, y: bottomLeftY + 1.0, width: size.width, height: size.height)\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSRunningApplication+WindowFrame.swift",
    "content": "import AppKit.NSRunningApplication\nimport Carbon\n\nextension NSRunningApplication {\n  var windowFrame: NSRect? {\n    let options = CGWindowListOption(arrayLiteral: [.excludeDesktopElements, .optionOnScreenOnly])\n    let windowListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))\n    if let windowInfoList = windowListInfo as NSArray? as? [[String: AnyObject]] {\n      for info in windowInfoList {\n        if let windowPID = info[\"kCGWindowOwnerPID\"] as? UInt32, windowPID == processIdentifier {\n          if let screen = NSScreen.screens.first,\n             let topLeftX = info[\"kCGWindowBounds\"]?[\"X\"] as? Double,\n             let topLeftY = info[\"kCGWindowBounds\"]?[\"Y\"] as? Double,\n             let width = info[\"kCGWindowBounds\"]?[\"Width\"] as? Double,\n             let height = info[\"kCGWindowBounds\"]?[\"Height\"] as? Double {\n            var rect = NSRect(x: topLeftX, y: topLeftY, width: width, height: height)\n            // Convert CGWindowBounds to NSScreen coordinates\n            // http://www.krizka.net/2010/04/20/converting-between-kcgwindowbounds-and-nswindowframe\n            rect.origin.y = screen.frame.size.height - rect.origin.y - rect.size.height\n            return rect\n          }\n        }\n      }\n    }\n\n    return nil\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSScreen+ForPopup.swift",
    "content": "import AppKit.NSScreen\nimport Defaults\n\nextension NSScreen {\n  static var forPopup: NSScreen? {\n    let desiredScreen = Defaults[.popupScreen]\n    if desiredScreen == 0 || desiredScreen > NSScreen.screens.count {\n      return NSScreen.main\n    } else {\n      return NSScreen.screens[desiredScreen - 1]\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSSize+DefaultsSerializable.swift",
    "content": "import CoreGraphics\nimport Defaults\nimport Foundation\n\nextension NSSize: Defaults.Serializable {\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSSound+Named.swift",
    "content": "import AppKit.NSSound\n\nextension NSSound {\n  static let knock = NSSound(\n    contentsOf: Bundle.main.url(forResource: \"Knock\", withExtension: \"caf\")!, byReference: true)\n  static let write = NSSound(\n    contentsOf: Bundle.main.url(forResource: \"Write\", withExtension: \"caf\")!, byReference: true)\n}\n"
  },
  {
    "path": "Maccy/Extensions/NSWorkspace+ApplicationName.swift",
    "content": "import AppKit.NSWorkspace\n\nextension NSWorkspace {\n  func applicationName(url: URL) -> String {\n    if let bundle = Bundle(url: url) {\n      if let displayName = bundle.object(forInfoDictionaryKey: \"CFBundleDisplayName\") as? String {\n        return displayName\n      } else if let name = bundle.object(forInfoDictionaryKey: \"CFBundleName\") as? String {\n        return name\n      }\n    }\n\n    return url.deletingLastPathComponent().lastPathComponent\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/Sauce+KeyboardShortcuts.swift",
    "content": "import KeyboardShortcuts\nimport Sauce\n\nextension Sauce {\n  func key(shortcut: KeyboardShortcuts.Name) -> Key? {\n    if let shortcut = KeyboardShortcuts.Shortcut(name: shortcut) {\n      return Sauce.shared.key(for: shortcut.carbonKeyCode)\n    } else {\n      return nil\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Extensions/Settings.PaneIdentifier+Panes.swift",
    "content": "import Settings\n\nextension Settings.PaneIdentifier {\n  static let advanced = Self(\"advanced\")\n  static let appearance = Self(\"appearance\")\n  static let general = Self(\"general\")\n  static let ignore = Self(\"ignore\")\n  static let pins = Self(\"pins\")\n  static let storage = Self(\"storage\")\n}\n"
  },
  {
    "path": "Maccy/Extensions/String+Identifiable.swift",
    "content": "extension String: @retroactive Identifiable {\n  public var id: Self { self }\n}\n"
  },
  {
    "path": "Maccy/Extensions/String+Shortened.swift",
    "content": "extension String {\n  func shortened(to maxLength: Int) -> String {\n    guard count > maxLength else {\n      return self\n    }\n\n    return String(self[...index(startIndex, offsetBy: maxLength)])\n  }\n}\n"
  },
  {
    "path": "Maccy/FloatingPanel.swift",
    "content": "import Defaults\nimport SwiftUI\n\n// An NSPanel subclass that implements floating panel traits.\n// https://stackoverflow.com/questions/46023769/how-to-show-a-window-without-stealing-focus-on-macos\nclass FloatingPanel<Content: View>: NSPanel, NSWindowDelegate {\n  var isPresented: Bool = false\n  var statusBarButton: NSStatusBarButton?\n  let onClose: () -> Void\n\n  override var isMovable: Bool {\n    get { Defaults[.popupPosition] != .statusItem }\n    set {}\n  }\n\n  init(\n    contentRect: NSRect,\n    identifier: String = \"\",\n    statusBarButton: NSStatusBarButton? = nil,\n    onClose: @escaping () -> Void,\n    view: () -> Content\n  ) {\n    self.onClose = onClose\n\n    super.init(\n        contentRect: contentRect,\n        styleMask: [.nonactivatingPanel, .resizable, .closable, .fullSizeContentView],\n        backing: .buffered,\n        defer: false\n    )\n\n    self.statusBarButton = statusBarButton\n    self.identifier = NSUserInterfaceItemIdentifier(identifier)\n\n    Defaults[.windowSize] = contentRect.size\n    delegate = self\n\n    animationBehavior = .none\n    isFloatingPanel = true\n    level = .statusBar\n    collectionBehavior = [.auxiliary, .stationary, .moveToActiveSpace, .fullScreenAuxiliary]\n    titleVisibility = .hidden\n    titlebarAppearsTransparent = true\n    isMovableByWindowBackground = true\n    hidesOnDeactivate = false\n    backgroundColor = .clear\n    titlebarSeparatorStyle = .none\n\n    // Hide all traffic light buttons\n    standardWindowButton(.closeButton)?.isHidden = true\n    standardWindowButton(.miniaturizeButton)?.isHidden = true\n    standardWindowButton(.zoomButton)?.isHidden = true\n\n    contentView = NSHostingView(\n      rootView: view()\n        // The safe area is ignored because the title bar still interferes with the geometry\n        .ignoresSafeArea()\n        .gesture(DragGesture()\n          .onEnded { _ in\n            self.saveWindowPosition()\n        })\n    )\n    contentView?.layer?.cornerRadius = Popup.cornerRadius + Popup.horizontalPadding\n  }\n\n  func toggle(height: CGFloat, at popupPosition: PopupPosition = Defaults[.popupPosition]) {\n    if isPresented {\n      close()\n    } else {\n      open(height: height, at: popupPosition)\n    }\n  }\n\n  func open(height: CGFloat, at popupPosition: PopupPosition = Defaults[.popupPosition]) {\n    let size = Defaults[.windowSize]\n    setContentSize(NSSize(width: min(frame.width, size.width), height: min(height, size.height)))\n    setFrameOrigin(popupPosition.origin(size: frame.size, statusBarButton: statusBarButton))\n    orderFrontRegardless()\n    makeKey()\n    isPresented = true\n\n    if popupPosition == .statusItem {\n      DispatchQueue.main.async {\n        self.statusBarButton?.isHighlighted = true\n      }\n    }\n  }\n\n  func verticallyResize(to newHeight: CGFloat) {\n    var newSize = frame.size\n    newSize.height = newHeight\n    var newOrigin = frame.origin\n    newOrigin.y += (frame.height - newSize.height)\n\n    NSAnimationContext.runAnimationGroup { (context) in\n      context.duration = 0.2\n      animator().setFrame(NSRect(origin: newOrigin, size: newSize), display: true)\n    }\n  }\n\n  func determinePreviewPlacement() {\n    let preview = AppState.shared.preview\n    guard !preview.state.isOpen else { return }\n    let newSize = preview.computeSizeWithPreview(frame.size, state: .open)\n    preview.placement = preview.computePlacement(window: self, for: newSize)\n  }\n\n  func saveWindowPosition() {\n    if let screenFrame = screen?.visibleFrame {\n      // Only store the size of the window without the preview\n      let width = AppState.shared.preview.contentWidth\n\n      let anchorX = frame.minX + width / 2 - screenFrame.minX\n      let anchorY = frame.maxY - screenFrame.minY\n      Defaults[.windowPosition] = NSPoint(x: anchorX / screenFrame.width, y: anchorY / screenFrame.height)\n    }\n  }\n\n  func saveWindowFrame(frame: NSRect) {\n    Defaults[.windowSize] = frame.size\n    saveWindowPosition()\n  }\n\n  func windowWillResize(_ sender: NSWindow, to frameSize: NSSize) -> NSSize {\n    let preview = AppState.shared.preview\n\n    if inLiveResize && preview.resizingMode == .none {\n      let screenPoint = NSEvent.mouseLocation\n      let windowPoint = convertPoint(fromScreen: screenPoint)\n      let location: SlideoutPlacement = windowPoint.x <= frame.width / 2 ? .left : .right\n      if (location == preview.placement) && preview.state == .open {\n        preview.startResize(mode: .slideout)\n      } else {\n        preview.startResize(mode: .content)\n      }\n    }\n\n    var finalFrameSize = frameSize\n    var minContent = preview.minimumContentWidth\n    var minPreview = 0.0\n\n    if inLiveResize && preview.resizingMode != .none {\n      if preview.resizingMode == .content && preview.state == .open {\n        minPreview = preview.slideoutWidth\n      }\n      if preview.resizingMode == .slideout {\n        minPreview = preview.minimumSlideoutWidth\n        minContent = preview.contentWidth\n      }\n    }\n    finalFrameSize.width = max(finalFrameSize.width, minContent + minPreview)\n\n    if !AppState.shared.preview.state.isAnimating {\n      var size = frame.size\n      // Only store the size of the window without the preview\n      size.width = AppState.shared.preview.contentWidth\n      saveWindowFrame(frame: NSRect(origin: frame.origin, size: size))\n    }\n\n    return finalFrameSize\n  }\n\n  func windowWillMove(_ notification: Notification) {\n    determinePreviewPlacement()\n  }\n\n  func windowDidMove(_ notification: Notification) {\n    determinePreviewPlacement()\n  }\n\n  func windowWillStartLiveResize(_ notification: Notification) {\n    AppState.shared.preview.cancelAutoOpen()\n  }\n\n  func windowDidEndLiveResize(_ notification: Notification) {\n    AppState.shared.preview.startAutoOpen()\n    AppState.shared.preview.endResize()\n  }\n\n  func windowDidBecomeKey(_ notification: Notification) {\n    AppState.shared.preview.enableAutoOpen()\n\n    if AppState.shared.navigator.leadHistoryItem != nil {\n      AppState.shared.preview.startAutoOpen()\n    }\n  }\n\n  func windowDidResignKey(_ notification: Notification) {\n    AppState.shared.preview.disableAutoOpen()\n  }\n\n  // Close automatically when out of focus, e.g. outside click.\n  override func resignKey() {\n    super.resignKey()\n    // Don't hide if confirmation is shown.\n    if NSApp.alertWindow == nil {\n      close()\n    }\n  }\n\n  override func close() {\n    super.close()\n    AppState.shared.preview.state = .closed\n    isPresented = false\n    statusBarButton?.isHighlighted = false\n    onClose()\n  }\n\n  // Allow text inputs inside the panel can receive focus\n  override var canBecomeKey: Bool {\n    return true\n  }\n}\n"
  },
  {
    "path": "Maccy/GlobalHotKey.swift",
    "content": "import AppKit\nimport KeyboardShortcuts\nimport Sauce\nimport SwiftUI\n\nclass GlobalHotKey {\n  typealias Handler = () -> Void\n\n  static public var key: KeyEquivalent? { KeyboardShortcuts.Shortcut(name: .popup)?.toKeyEquivalent() }\n  static public var modifierFlags: EventModifiers? { KeyboardShortcuts.Shortcut(name: .popup)?.toEventModifiers() }\n\n  private var handler: Handler\n\n  init(_ handler: @escaping Handler) {\n    self.handler = handler\n//    KeyboardShortcuts.onKeyDown(for: .popup, action: handler)\n  }\n}\n"
  },
  {
    "path": "Maccy/HighlightMatch.swift",
    "content": "import Foundation\nimport Defaults\n\nenum HighlightMatch: String, CaseIterable, Identifiable, CustomStringConvertible, Defaults.Serializable {\n  case color\n  case bold\n  case italic\n  case underline\n\n  var id: Self { self }\n\n  var description: String {\n    switch self {\n    case .bold:\n      return NSLocalizedString(\"HighlightMatchBold\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .color:\n      return NSLocalizedString(\"HighlightMatchColor\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .italic:\n      return NSLocalizedString(\"HighlightMatchItalic\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .underline:\n      return NSLocalizedString(\"HighlightMatchUnderline\", tableName: \"AppearanceSettings\", comment: \"\")\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/History.xcdatamodeld/History.xcdatamodel/contents",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVersion=\"1.0\" lastSavedToolsVersion=\"16119\" systemVersion=\"19E266\" minimumToolsVersion=\"Automatic\" sourceLanguage=\"Swift\" userDefinedModelVersionIdentifier=\"\">\n    <elements/>\n</model>"
  },
  {
    "path": "Maccy/HistoryItemAction.swift",
    "content": "import AppKit.NSEvent\nimport Defaults\n\nenum HistoryItemAction {\n  case unknown\n  case copy\n  case paste\n  case pasteWithoutFormatting\n\n  init(_ modifierFlags: NSEvent.ModifierFlags) {  // swiftlint:disable:this cyclomatic_complexity\n    switch modifierFlags {\n    case .command where !Defaults[.pasteByDefault]:\n      self = .copy\n    case .command where Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      self = .paste\n    case .command where Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      self = .pasteWithoutFormatting\n    case .option where !Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      self = .paste\n    case .option where !Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      self = .pasteWithoutFormatting\n    case .option where Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      self = .copy\n    case .option where Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      self = .copy\n    case [.option, .shift] where !Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      self = .pasteWithoutFormatting\n    case [.option, .shift] where !Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      self = .paste\n    case [.command, .shift] where Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      self = .pasteWithoutFormatting\n    case [.command, .shift] where Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      self = .paste\n    default:\n      self = .unknown\n    }\n  }\n\n  var modifierFlags: NSEvent.ModifierFlags {\n    switch self {\n    case .copy where !Defaults[.pasteByDefault]:\n      return .command\n    case .paste where Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      return .command\n    case .pasteWithoutFormatting where Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      return .command\n    case .paste where !Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      return .option\n    case .pasteWithoutFormatting where !Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      return .option\n    case .copy where Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      return .option\n    case .copy where Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      return .option\n    case .pasteWithoutFormatting where !Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      return [.option, .shift]\n    case .paste where !Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      return [.option, .shift]\n    case .pasteWithoutFormatting where Defaults[.pasteByDefault] && !Defaults[.removeFormattingByDefault]:\n      return [.command, .shift]\n    case .paste where Defaults[.pasteByDefault] && Defaults[.removeFormattingByDefault]:\n      return [.command, .shift]\n    default:\n      return []\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string>public.app-category.productivity</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>$(MACOSX_DEPLOYMENT_TARGET)</string>\n\t<key>LSUIElement</key>\n\t<true/>\n\t<key>NSHumanReadableCopyright</key>\n\t<string>Copyright © Alexey Rodionov</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n\t<key>SUEnableDownloaderService</key>\n\t<true/>\n\t<key>SUEnableInstallerLauncherService</key>\n\t<true/>\n\t<key>SUFeedURL</key>\n\t<string>https://raw.githubusercontent.com/p0deje/Maccy/master/appcast.xml</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Maccy/Intents/AppIntentError.swift",
    "content": "import Foundation\n\nenum AppIntentError: Swift.Error, CustomLocalizedStringResourceConvertible {\n  case notFound\n\n  var localizedStringResource: LocalizedStringResource {\n    switch self {\n    case .notFound: return \"Clipboard item not found\"\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Intents/Clear.swift",
    "content": "import AppIntents\nimport Defaults\n\nstruct Clear: AppIntent, CustomIntentMigratedAppIntent {\n  static let intentClassName = \"ClearIntent\"\n\n  static var title: LocalizedStringResource = \"Clear Clipboard History\"\n  static var description = IntentDescription(\"Clears all Maccy clipboard history except for pinned items.\")\n\n  static var parameterSummary: some ParameterSummary {\n    Summary(\"Clear Clipboard History\")\n  }\n\n  func perform() async throws -> some IntentResult {\n    if !Defaults[.suppressClearAlert] {\n      try await requestConfirmation()\n    }\n\n    await AppState.shared.history.clear()\n    return .result()\n  }\n}\n"
  },
  {
    "path": "Maccy/Intents/Delete.swift",
    "content": "import AppIntents\n\nstruct Delete: AppIntent, CustomIntentMigratedAppIntent {\n  static let intentClassName = \"DeleteIntent\"\n\n  static var title: LocalizedStringResource = \"Delete Item from Clipboard History\"\n  static var description = IntentDescription(\"Deletes an item from Maccy clipboard history.\")\n\n  @Parameter(title: \"Number\", default: 1)\n  var number: Int\n\n  static var parameterSummary: some ParameterSummary {\n    Summary(\"Delete \\(\\.$number) Item from Clipboard History\")\n  }\n\n  private let positionOffset = 1\n\n  func perform() async throws -> some IntentResult {\n    let items = AppState.shared.history.items\n    let index = number - positionOffset\n    guard items.count >= index else {\n      throw AppIntentError.notFound\n    }\n\n    await AppState.shared.history.delete(items[index])\n\n    return .result()\n  }\n}\n"
  },
  {
    "path": "Maccy/Intents/Get.swift",
    "content": "import Foundation\nimport AppIntents\n\nstruct Get: AppIntent, CustomIntentMigratedAppIntent {\n  static let intentClassName = \"GetIntent\"\n\n  static var title: LocalizedStringResource = \"Get Item from Clipboard History\"\n  static var description = IntentDescription(\"\"\"\n  Gets an item from Maccy clipboard history.\n  The returned item can be used to access its plain/rich/HTML text, image contents or file location.\n  \"\"\")\n\n  @Parameter(title: \"Selected\", default: true)\n  var selected: Bool\n\n  @Parameter(title: \"Number\", default: 1)\n  var number: Int\n\n  private let positionOffset = 1\n\n  static var parameterSummary: some ParameterSummary {\n    When(\\.$selected, .equalTo, false) {\n      Summary {\n        \\.$number\n        \\.$selected\n      }\n    } otherwise: {\n      Summary {\n        \\.$selected\n      }\n    }\n  }\n\n  func perform() async throws -> some IntentResult & ReturnsValue<HistoryItemAppEntity> {\n    var item: HistoryItem?\n    if selected {\n      item = AppState.shared.navigator.selection.first?.item\n    } else {\n      let index = number - positionOffset\n      if AppState.shared.history.items.count >= index {\n        item = AppState.shared.history.items[index].item\n      }\n    }\n\n    guard let item else {\n      throw AppIntentError.notFound\n    }\n\n    let intentItem = HistoryItemAppEntity()\n    intentItem.text = item.text\n\n    if let html = item.htmlData {\n      intentItem.html = String(data: html, encoding: .utf8)\n    }\n\n    if let fileURL = item.fileURLs.first {\n      intentItem.file = fileURL\n    }\n\n    if let imageData = item.imageData {\n      let file = URL.documentsDirectory.appending(path: \"image.png\")\n      try imageData.write(to: file, options: [.atomic, .completeFileProtection])\n      intentItem.image = file\n    }\n\n    if let rtf = item.rtfData {\n      intentItem.richText = String(data: rtf, encoding: .utf8)\n    }\n\n    return .result(value: intentItem)\n  }\n}\n"
  },
  {
    "path": "Maccy/Intents/HistoryItemAppEntity.swift",
    "content": "import AppIntents\n\nstruct HistoryItemAppEntity: TransientAppEntity {\n  static var typeDisplayRepresentation = TypeDisplayRepresentation(name: \"Clipboard item\")\n\n  @Property(title: \"File\")\n  var file: URL?\n\n  @Property(title: \"HTML\")\n  var html: String?\n\n  @Property(title: \"Image\")\n  var image: URL?\n\n  @Property(title: \"Rich Text\")\n  var richText: String?\n\n  @Property(title: \"Text\")\n  var text: String?\n\n  var displayRepresentation: DisplayRepresentation {\n    DisplayRepresentation(title: \"Clipboard item\")\n  }\n}\n"
  },
  {
    "path": "Maccy/Intents/Select.swift",
    "content": "import AppIntents\n\nstruct Select: AppIntent, CustomIntentMigratedAppIntent {\n  static let intentClassName = \"SelectIntent\"\n\n  static var title: LocalizedStringResource = \"Select Item in Clipboard History\"\n  static var description = IntentDescription(\"\"\"\n  Selects an item in Maccy clipboard history.\n  Depending on Maccy settings, it might trigger pasting of the selected item.\n  \"\"\")\n\n  static var parameterSummary: some ParameterSummary {\n    Summary(\"Select \\(\\.$number) Item in Clipboard History\")\n  }\n\n  @Parameter(title: \"Number\", default: 1, requestValueDialog: \"What is the number of the item?\")\n  var number: Int\n\n  private let positionOffset = 1\n\n  func perform() async throws -> some IntentResult & ReturnsValue<String> {\n    let items = AppState.shared.history.items\n    let index = number - positionOffset\n    guard items.count >= index else {\n      throw AppIntentError.notFound\n    }\n\n    let value = items[index].title\n    await AppState.shared.history.select(items[index])\n\n    return .result(value: value)\n  }\n}\n"
  },
  {
    "path": "Maccy/ItemsProtocol.swift",
    "content": "protocol HasVisibility {\n  var isVisible: Bool { get }\n}\n\nprotocol ItemsContainer {\n  associatedtype Item\n  var containerVisible: Bool { get }\n  var items: [Item] { get set }\n}\n\nextension ItemsContainer {\n    var containerVisible: Bool { true }\n}\n\nprivate extension ItemsContainer where Item: HasVisibility {}\n\nextension ItemsContainer where Item: HasVisibility {\n\n  var visibleItems: [Item] {\n    guard containerVisible else { return [] }\n    return self.items.lazy.filter(\\.isVisible)\n  }\n\n  var firstVisibleItem: Item? {\n    guard containerVisible else { return nil }\n    return self.items.first(where: \\.isVisible)\n  }\n  func firstVisibleItem(where predicate: (Item) -> Bool) -> Item? {\n    guard containerVisible else { return nil }\n    return self.items.first { $0.isVisible && predicate($0) }\n  }\n  var lastVisibleItem: Item? {\n    guard containerVisible else { return nil }\n    return self.items.last(where: \\.isVisible)\n  }\n  func lastVisibleItem(where predicate: (Item) -> Bool) -> Item? {\n    guard containerVisible else { return nil }\n    return self.items.last { $0.isVisible && predicate($0) }\n  }\n}\n\nextension ItemsContainer where Item: HasVisibility, Item: Equatable {\n  func visibleItem(before: Item) -> Item? {\n    return self.items.item(before: before, where: \\.isVisible)\n  }\n  func visibleItem(after: Item) -> Item? {\n    return self.items.item(after: after, where: \\.isVisible)\n  }\n}\n"
  },
  {
    "path": "Maccy/KeyChord.swift",
    "content": "import AppKit.NSEvent\nimport KeyboardShortcuts\nimport Sauce\n\nenum KeyChord: CaseIterable {\n  static var pasteKey: Key { pasteMenuItem?.key ?? Key.v }\n  static var pasteKeyModifiers: NSEvent.ModifierFlags { pasteMenuItem?.keyEquivalentModifierMask ?? .command }\n  private static var pasteMenuItem: NSMenuItem? {\n    NSApp.mainMenu?.items\n      .flatMap { $0.submenu?.items ?? [] }\n      .first { $0.action == #selector(NSText.paste) }\n  }\n\n  static var deleteKey: Key? { Sauce.shared.key(shortcut: .delete) }\n  static var deleteModifiers: NSEvent.ModifierFlags? { KeyboardShortcuts.Shortcut(name: .delete)?.modifiers }\n\n  static var pinKey: Key? { Sauce.shared.key(shortcut: .pin) }\n  static var pinModifiers: NSEvent.ModifierFlags? { KeyboardShortcuts.Shortcut(name: .pin)?.modifiers }\n\n  static var previewKey: Key? { Sauce.shared.key(shortcut: .togglePreview) }\n  static var previewModifiers: NSEvent.ModifierFlags? { KeyboardShortcuts.Shortcut(name: .togglePreview)?.modifiers }\n\n  case clearHistory\n  case clearHistoryAll\n  case clearSearch\n  case deleteCurrentItem\n  case deleteOneCharFromSearch\n  case deleteLastWordFromSearch\n  case ignored\n  case moveToNext\n  case moveToLast\n  case moveToPrevious\n  case moveToFirst\n  case extendToNext\n  case extendToLast\n  case extendToPrevious\n  case extendToFirst\n  case openPreferences\n  case pinOrUnpin\n  case selectCurrentItem\n  case close\n  case togglePreview\n  case unknown\n\n  init(_ event: NSEvent?) {\n    guard let event, event.type == .keyDown else {\n      self = .unknown\n      return\n    }\n\n    let modifierFlags = event.modifierFlags\n      .intersection(.deviceIndependentFlagsMask)\n      .subtracting([.capsLock, .numericPad, .function])\n    var key: Key?\n\n    if KeyboardLayout.current.commandSwitchesToQWERTY, modifierFlags.contains(.command) {\n      key = Key(QWERTYKeyCode: Int(event.keyCode))\n    } else {\n      key = Sauce.shared.key(for: Int(event.keyCode))\n    }\n\n    guard let key else {\n      self = .unknown\n      return\n    }\n\n    self.init(key, modifierFlags)\n  }\n\n  // swiftlint:disable:next cyclomatic_complexity function_body_length\n  init(_ key: Key, _ modifierFlags: NSEvent.ModifierFlags) {\n    switch (key, modifierFlags) {\n    case (.delete, [.command, .option]):\n      self = .clearHistory\n    case (.delete, [.command, .option, .shift]):\n      self = .clearHistoryAll\n    case (.u, [.control]):\n      self = .clearSearch\n    case (KeyChord.deleteKey, KeyChord.deleteModifiers):\n      self = .deleteCurrentItem\n    case (.h, [.control]):\n      self = .deleteOneCharFromSearch\n    case (.w, [.control]):\n      self = .deleteLastWordFromSearch\n    case (.downArrow, [.shift]),\n         (.n, [.control, .shift]):\n      self = AppState.shared.multiSelectionEnabled ? .extendToNext : .moveToNext\n    case (.downArrow, []),\n         (.n, [.control]),\n         (.j, [.control]):\n      self = .moveToNext\n    case (.downArrow, [.command, .shift]),\n         (.downArrow, [.option, .shift]),\n         (.n, [.control, .option, .shift]):\n      self = AppState.shared.multiSelectionEnabled ? .extendToLast : .moveToLast\n    case (.downArrow, _) where modifierFlags.contains(.command) || modifierFlags.contains(.option),\n         (.n, [.control, .option]),\n         (.pageDown, []):\n      self = .moveToLast\n    case (.upArrow, [.shift]),\n         (.p, [.control, .shift]):\n      self = AppState.shared.multiSelectionEnabled ? .extendToPrevious : .moveToPrevious\n    case (.upArrow, []),\n         (.p, [.control]),\n         (.k, [.control]):\n      self = .moveToPrevious\n    case (.upArrow, [.command, .shift]),\n         (.upArrow, [.option, .shift]),\n         (.p, [.control, .option, .shift]):\n      self = AppState.shared.multiSelectionEnabled ? .extendToFirst : .moveToFirst\n    case (.upArrow, _) where modifierFlags.contains(.command) || modifierFlags.contains(.option),\n         (.p, [.control, .option]),\n         (.pageUp, []):\n      self = .moveToFirst\n    case (KeyChord.pinKey, KeyChord.pinModifiers):\n      self = .pinOrUnpin\n    case (.comma, [.command]):\n      self = .openPreferences\n    case (.return, _),\n         (.keypadEnter, _):\n      self = .selectCurrentItem\n    case (.escape, _):\n      self = .close\n    case (KeyChord.previewKey, KeyChord.previewModifiers):\n      self = .togglePreview\n    case (_, _) where !modifierFlags.isDisjoint(with: [.command, .control, .option]):\n      self = .ignored\n    default:\n      self = .unknown\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/KeyShortcut.swift",
    "content": "import AppKit.NSEvent\nimport Defaults\nimport Sauce\n\nstruct KeyShortcut: Identifiable {\n  static func create(character: String) -> [KeyShortcut] {\n    let key = Key(character: character, virtualKeyCode: nil)\n    return [\n      KeyShortcut(key: key),\n      KeyShortcut(key: key, modifierFlags: [.option]),\n      KeyShortcut(key: key, modifierFlags: [Defaults[.pasteByDefault] ? .command : .option, .shift])\n    ]\n  }\n\n  let id = UUID()\n\n  var key: Key?\n  var modifierFlags: NSEvent.ModifierFlags = [.command]\n\n  var description: String {\n    guard let key, let character = Sauce.shared.currentASCIICapableCharacter(\n      for: Int(Sauce.shared.keyCode(for: key)),\n      cocoaModifiers: []\n    ) else {\n      return \"\"\n    }\n\n    return \"\\(modifierFlags.description)\\(character.capitalized)\"\n  }\n\n  func isVisible(_ all: [KeyShortcut], _ pressedModifierFlags: NSEvent.ModifierFlags) -> Bool {\n    if all.count == 1 {\n      return true\n    }\n\n    if modifierFlags == [.command], pressedModifierFlags.isEmpty {\n      return true\n    }\n\n    if modifierFlags == [.command], !pressedModifierFlags.isEmpty,\n       !all.contains(where: { $0.id != id && $0.modifierFlags == pressedModifierFlags }) {\n      return true\n    }\n\n    return modifierFlags == pressedModifierFlags\n  }\n}\n"
  },
  {
    "path": "Maccy/KeyboardLayout.swift",
    "content": "import Carbon\nimport Sauce\n\nclass KeyboardLayout {\n  static var current: KeyboardLayout { KeyboardLayout() }\n\n  // Dvorak - QWERTY ⌘ (https://github.com/p0deje/Maccy/issues/482)\n  // bépo 1.1 - Azerty ⌘ (https://github.com/p0deje/Maccy/issues/520)\n  var commandSwitchesToQWERTY: Bool { localizedName.hasSuffix(\"⌘\") }\n\n  var localizedName: String {\n    if let value = TISGetInputSourceProperty(inputSource, kTISPropertyLocalizedName) {\n      return Unmanaged<CFString>.fromOpaque(value).takeUnretainedValue() as String\n    } else {\n      return \"\"\n    }\n  }\n\n  private var inputSource: TISInputSource!\n\n  init() {\n    inputSource = TISCopyCurrentKeyboardLayoutInputSource().takeUnretainedValue()\n  }\n}\n"
  },
  {
    "path": "Maccy/Maccy.entitlements",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>com.apple.security.app-sandbox</key>\n\t<true/>\n\t<key>com.apple.security.files.user-selected.read-only</key>\n\t<true/>\n\t<key>com.apple.security.temporary-exception.mach-lookup.global-name</key>\n\t<array>\n    \t<string>$(PRODUCT_BUNDLE_IDENTIFIER)-spks</string>\n    \t<string>$(PRODUCT_BUNDLE_IDENTIFIER)-spki</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Maccy/MaccyApp.swift",
    "content": "import SwiftUI\n\n@main\nstruct MaccyApp: App {\n  @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate\n\n  // It's impossible to create sceneless application,\n  // so we are hacking this around by creating a menubar\n  // scene\u0014 that is always hidden.\n  @State private var hiddenMenu: Bool = false\n\n  var body: some Scene {\n    MenuBarExtra(\"\", isInserted: $hiddenMenu) {\n      EmptyView()\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/MenuIcon.swift",
    "content": "import AppKit\nimport Defaults\n\nenum MenuIcon: String, CaseIterable, Identifiable, Defaults.Serializable {\n  case maccy\n  case clipboard\n  case scissors\n  case paperclip\n\n  var id: Self { self }\n\n  var image: NSImage {\n    switch self {\n    case .maccy:\n      return NSImage(named: .maccyStatusBar)!\n    case .clipboard:\n      return NSImage(named: .clipboard)!\n    case .scissors:\n      return NSImage(named: .scissors)!\n    case .paperclip:\n      return NSImage(named: .paperclip)!\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Models/HistoryItem.swift",
    "content": "import AppKit\nimport Defaults\nimport Sauce\nimport SwiftData\nimport Vision\n\n@Model\nclass HistoryItem {\n  static var supportedPins: Set<String> {\n    // \"a\" reserved for select all\n    // \"q\" reserved for quit\n    // \"v\" reserved for paste\n    // \"w\" reserved for close window\n    // \"z\" reserved for undo/redo\n    var keys = Set([\n      \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n      \"m\", \"n\", \"o\", \"p\", \"r\", \"s\", \"t\", \"u\", \"x\", \"y\"\n    ])\n\n    if let deleteKey = KeyChord.deleteKey,\n       let character = Sauce.shared.character(for: Int(deleteKey.QWERTYKeyCode), cocoaModifiers: []) {\n      keys.remove(character)\n    }\n\n    if let pinKey = KeyChord.pinKey,\n       let character = Sauce.shared.character(for: Int(pinKey.QWERTYKeyCode), cocoaModifiers: []) {\n      keys.remove(character)\n    }\n    if let previewKey = KeyChord.previewKey,\n       let character = Sauce.shared.character(for: Int(previewKey.QWERTYKeyCode), cocoaModifiers: []) {\n      keys.remove(character)\n    }\n\n    return keys\n  }\n\n  @MainActor\n  static var availablePins: [String] {\n    let descriptor = FetchDescriptor<HistoryItem>(\n      predicate: #Predicate { $0.pin != nil }\n    )\n    let pins = try? Storage.shared.context.fetch(descriptor).compactMap({ $0.pin })\n    let assignedPins = Set(pins ?? [])\n    return Array(supportedPins.subtracting(assignedPins))\n  }\n\n  @MainActor\n  static var randomAvailablePin: String { availablePins.randomElement() ?? \"\" }\n\n  private static let transientTypes: [String] = [\n    NSPasteboard.PasteboardType.modified.rawValue,\n    NSPasteboard.PasteboardType.fromMaccy.rawValue,\n    NSPasteboard.PasteboardType.linkPresentationMetadata.rawValue,\n    NSPasteboard.PasteboardType.customWebKitPasteboardData.rawValue,\n    NSPasteboard.PasteboardType.source.rawValue,\n    NSPasteboard.PasteboardType.customChromiumWebData.rawValue,\n    NSPasteboard.PasteboardType.chromiumSourceUrl.rawValue,\n    NSPasteboard.PasteboardType.chromiumSourceToken.rawValue,\n    NSPasteboard.PasteboardType.notesRichText.rawValue\n  ]\n\n  var application: String?\n  var firstCopiedAt: Date = Date.now\n  var lastCopiedAt: Date = Date.now\n  var numberOfCopies: Int = 1\n  var pin: String?\n  var title = \"\"\n\n  @Relationship(deleteRule: .cascade, inverse: \\HistoryItemContent.item)\n  var contents: [HistoryItemContent] = []\n\n  init(contents: [HistoryItemContent] = []) {\n    self.firstCopiedAt = firstCopiedAt\n    self.lastCopiedAt = lastCopiedAt\n    self.contents = contents\n  }\n\n  func supersedes(_ item: HistoryItem) -> Bool {\n    return item.contents\n      .filter { content in\n        !Self.transientTypes.contains(content.type)\n      }\n      .allSatisfy { content in\n        contents.contains(where: { $0.type == content.type && $0.value == content.value })\n      }\n  }\n\n  func generateTitle() -> String {\n    guard image == nil else {\n      Task {\n        self.performTextRecognition()\n      }\n      return \"\"\n    }\n\n    // 1k characters is trade-off for performance\n    var title = previewableText.shortened(to: 1_000)\n\n    if Defaults[.showSpecialSymbols] {\n      if let range = title.range(of: \"^ +\", options: .regularExpression) {\n        title = title.replacingOccurrences(of: \" \", with: \"·\", range: range)\n      }\n      if let range = title.range(of: \" +$\", options: .regularExpression) {\n        title = title.replacingOccurrences(of: \" \", with: \"·\", range: range)\n      }\n      title = title\n        .replacingOccurrences(of: \"\\n\", with: \"⏎\")\n        .replacingOccurrences(of: \"\\t\", with: \"⇥\")\n    } else {\n      title = title.trimmingCharacters(in: .whitespacesAndNewlines)\n    }\n\n    return title\n  }\n\n  var previewableText: String {\n    if !fileURLs.isEmpty {\n      fileURLs\n        .compactMap { $0.absoluteString.removingPercentEncoding }\n        .joined(separator: \"\\n\")\n    } else if let text = text, !text.isEmpty {\n      text\n    } else if let rtf = rtf, !rtf.string.isEmpty {\n      rtf.string\n    } else if let html = html, !html.string.isEmpty {\n      html.string\n    } else {\n      title\n    }\n  }\n\n  var fileURLs: [URL] {\n    guard !universalClipboardText else {\n      return []\n    }\n\n    return allContentData([.fileURL])\n      .compactMap { URL(dataRepresentation: $0, relativeTo: nil, isAbsolute: true) }\n  }\n\n  var htmlData: Data? { contentData([.html]) }\n  var html: NSAttributedString? {\n    guard let data = htmlData else {\n      return nil\n    }\n\n    return NSAttributedString(html: data, documentAttributes: nil)\n  }\n\n  var imageData: Data? {\n    var data: Data?\n    data = contentData([.tiff, .png, .jpeg, .heic])\n    if data == nil, universalClipboardImage, let url = fileURLs.first {\n      data = try? Data(contentsOf: url)\n    }\n\n    return data\n  }\n\n  var image: NSImage? {\n    guard let data = imageData else {\n      return nil\n    }\n\n    return NSImage(data: data)\n  }\n\n  var rtfData: Data? { contentData([.rtf]) }\n  var rtf: NSAttributedString? {\n    guard let data = rtfData else {\n      return nil\n    }\n\n    return NSAttributedString(rtf: data, documentAttributes: nil)\n  }\n\n  var text: String? {\n    guard let data = contentData([.string]) else {\n      return nil\n    }\n\n    return String(data: data, encoding: .utf8)\n  }\n\n  var modified: Int? {\n    guard let data = contentData([.modified]),\n          let modified = String(data: data, encoding: .utf8) else {\n      return nil\n    }\n\n    return Int(modified)\n  }\n\n  var fromMaccy: Bool { contentData([.fromMaccy]) != nil }\n  var universalClipboard: Bool { contentData([.universalClipboard]) != nil }\n\n  private var universalClipboardImage: Bool { universalClipboard && fileURLs.first?.pathExtension == \"jpeg\" }\n  private var universalClipboardText: Bool {\n    universalClipboard && contentData([.html, .tiff, .png, .jpeg, .rtf, .string, .heic]) != nil\n  }\n\n  private func contentData(_ types: [NSPasteboard.PasteboardType]) -> Data? {\n    let content = contents.first(where: { content in\n      return types.contains(NSPasteboard.PasteboardType(content.type))\n    })\n\n    return content?.value\n  }\n\n  private func allContentData(_ types: [NSPasteboard.PasteboardType]) -> [Data] {\n    return contents\n      .filter { types.contains(NSPasteboard.PasteboardType($0.type)) }\n      .compactMap { $0.value }\n  }\n\n  private func performTextRecognition() {\n    guard let cgImage = image?.cgImage(forProposedRect: nil, context: nil, hints: nil) else {\n      return\n    }\n\n    let requestHandler = VNImageRequestHandler(cgImage: cgImage)\n    let request = VNRecognizeTextRequest(completionHandler: recognizeTextHandler)\n    request.recognitionLevel = .fast\n\n    do {\n      try requestHandler.perform([request])\n    } catch {\n      print(\"Unable to perform the request: \\(error).\")\n    }\n  }\n\n  private func recognizeTextHandler(request: VNRequest, error: Error?) {\n    guard let observations = request.results as? [VNRecognizedTextObservation] else {\n      return\n    }\n\n    let recognizedStrings = observations.compactMap { observation in\n      return observation.topCandidates(1).first?.string\n    }\n\n    self.title = recognizedStrings.joined(separator: \"\\n\")\n  }\n}\n"
  },
  {
    "path": "Maccy/Models/HistoryItemContent.swift",
    "content": "import Foundation\nimport SwiftData\n\n@Model\nclass HistoryItemContent {\n  var type: String = \"\"\n  var value: Data?\n\n  @Relationship\n  var item: HistoryItem?\n\n  init(type: String, value: Data? = nil) {\n    self.type = type\n    self.value = value\n  }\n}\n"
  },
  {
    "path": "Maccy/Notifier.swift",
    "content": "import AppKit\nimport UserNotifications\n\nclass Notifier {\n  private static var center: UNUserNotificationCenter { UNUserNotificationCenter.current() }\n\n  static func authorize() {\n    center.requestAuthorization(options: [.alert, .sound]) { _, error in\n      if error != nil {\n        NSLog(\"Failed to authorize notifications: \\(String(describing: error))\")\n      }\n    }\n  }\n\n  static func notify(body: String?, sound: NSSound?) {\n    guard let body else { return }\n\n    authorize()\n\n    center.getNotificationSettings { settings in\n      guard (settings.authorizationStatus == .authorized) ||\n            (settings.authorizationStatus == .provisional) else { return }\n\n      let content = UNMutableNotificationContent()\n      if settings.alertSetting == .enabled {\n        content.body = body\n      }\n\n      let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: nil)\n      center.add(request) { error in\n        if error != nil {\n          NSLog(\"Failed to deliver notification: \\(String(describing: error))\")\n        } else {\n          if settings.soundSetting == .enabled {\n            sound?.play()\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/AppState.swift",
    "content": "import AppKit\nimport Defaults\nimport Foundation\nimport Settings\nimport SwiftUI\n\n@Observable\nclass AppState: Sendable {\n  static let shared = AppState(history: History.shared, footer: Footer())\n\n  let multiSelectionEnabled = false\n\n  var appDelegate: AppDelegate?\n  var popup: Popup\n  var history: History\n  var footer: Footer\n  var navigator: NavigationManager\n  var preview: SlideoutController\n\n  var searchVisible: Bool {\n    if !Defaults[.showSearch] { return false }\n    switch Defaults[.searchVisibility] {\n    case .always: return true\n    case .duringSearch: return !history.searchQuery.isEmpty\n    }\n  }\n\n  var menuIconText: String {\n    var title = history.unpinnedItems.first?.text.shortened(to: 100)\n      .trimmingCharacters(in: .whitespacesAndNewlines) ?? \"\"\n    title.unicodeScalars.removeAll(where: CharacterSet.newlines.contains)\n    return title.shortened(to: 20)\n  }\n\n  private let about = About()\n  private var settingsWindowController: SettingsWindowController?\n\n  init(history: History, footer: Footer) {\n    self.history = history\n    self.footer = footer\n    popup = Popup()\n    navigator = NavigationManager(history: history, footer: footer)\n    preview = SlideoutController(\n      onContentResize: { contentWidth in\n        Defaults[.windowSize].width = contentWidth\n      },\n      onSlideoutResize: { previewWidth in\n        Defaults[.previewWidth] = previewWidth\n      })\n    preview.contentWidth = Defaults[.windowSize].width\n    preview.slideoutWidth = Defaults[.previewWidth]\n  }\n\n  @MainActor\n  func select() {\n    if !navigator.selection.isEmpty {\n      if navigator.isMultiSelectInProgress {\n        navigator.isManualMultiSelect = false\n        history.startPasteStack(selection: &navigator.selection)\n      } else {\n        history.select(navigator.selection.first)\n      }\n    } else if let item = footer.selectedItem {\n      // TODO: Use item.suppressConfirmation, but it's not updated!\n      if item.confirmation != nil, Defaults[.suppressClearAlert] == false {\n        item.showConfirmation = true\n      } else {\n        item.action()\n      }\n    } else {\n      Clipboard.shared.copy(history.searchQuery)\n      history.searchQuery = \"\"\n    }\n  }\n\n  @MainActor\n  func togglePin() {\n    withTransaction(Transaction()) {\n      navigator.selection.forEach { _, item in\n        history.togglePin(item)\n      }\n    }\n  }\n\n  @MainActor\n  func removePasteStack() {\n    history.interruptPasteStack()\n    navigator.highlightFirst()\n  }\n\n  @MainActor\n  func deleteSelection() {\n    guard let leadItem = navigator.leadHistoryItem else { return }\n    let nextUnselectedItem = history.visibleItems.nearest(to: leadItem) { !$0.isSelected }\n\n    withTransaction(Transaction()) {\n      navigator.selection.forEach { _, item in\n        history.delete(item)\n      }\n      navigator.select(item: nextUnselectedItem)\n    }\n  }\n\n  func openAbout() {\n    about.openAbout(nil)\n  }\n\n  @MainActor\n  func openPreferences() { // swiftlint:disable:this function_body_length\n    if settingsWindowController == nil {\n      settingsWindowController = SettingsWindowController(\n        panes: [\n          Settings.Pane(\n            identifier: Settings.PaneIdentifier.general,\n            title: NSLocalizedString(\"Title\", tableName: \"GeneralSettings\", comment: \"\"),\n            toolbarIcon: NSImage.gearshape!\n          ) {\n            GeneralSettingsPane()\n          },\n          Settings.Pane(\n            identifier: Settings.PaneIdentifier.storage,\n            title: NSLocalizedString(\"Title\", tableName: \"StorageSettings\", comment: \"\"),\n            toolbarIcon: NSImage.externaldrive!\n          ) {\n            StorageSettingsPane()\n          },\n          Settings.Pane(\n            identifier: Settings.PaneIdentifier.appearance,\n            title: NSLocalizedString(\"Title\", tableName: \"AppearanceSettings\", comment: \"\"),\n            toolbarIcon: NSImage.paintpalette!\n          ) {\n            AppearanceSettingsPane()\n          },\n          Settings.Pane(\n            identifier: Settings.PaneIdentifier.pins,\n            title: NSLocalizedString(\"Title\", tableName: \"PinsSettings\", comment: \"\"),\n            toolbarIcon: NSImage.pincircle!\n          ) {\n            PinsSettingsPane()\n              .environment(self)\n              .modelContainer(Storage.shared.container)\n          },\n          Settings.Pane(\n            identifier: Settings.PaneIdentifier.ignore,\n            title: NSLocalizedString(\"Title\", tableName: \"IgnoreSettings\", comment: \"\"),\n            toolbarIcon: NSImage.nosign!\n          ) {\n            IgnoreSettingsPane()\n          },\n          Settings.Pane(\n            identifier: Settings.PaneIdentifier.advanced,\n            title: NSLocalizedString(\"Title\", tableName: \"AdvancedSettings\", comment: \"\"),\n            toolbarIcon: NSImage.gearshape2!\n          ) {\n            AdvancedSettingsPane()\n          }\n        ]\n      )\n    }\n    settingsWindowController?.show()\n    settingsWindowController?.window?.orderFrontRegardless()\n  }\n\n  func quit() {\n    NSApp.terminate(self)\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/Footer.swift",
    "content": "import Defaults\nimport SwiftUI\n\n@Observable\nclass Footer: ItemsContainer {\n  var items: [FooterItem] = []\n\n  var selectedItem: FooterItem? {\n    willSet {\n      selectedItem?.isSelected = false\n      newValue?.isSelected = true\n    }\n  }\n\n  var suppressClearAlert = Binding<Bool>(\n    get: { Defaults[.suppressClearAlert] },\n    set: { Defaults[.suppressClearAlert] = $0 }\n  )\n\n  private var showFooter: Bool {\n    return Defaults[.showFooter]\n  }\n  var containerVisible: Bool {\n    return showFooter\n  }\n\n  init() { // swiftlint:disable:this function_body_length\n    items = [\n      FooterItem(\n        title: \"clear\",\n        shortcuts: [KeyShortcut(key: .delete, modifierFlags: [.command, .option])],\n        help: \"clear_tooltip\",\n        confirmation: .init(\n          message: \"clear_alert_message\",\n          comment: \"clear_alert_comment\",\n          confirm: \"clear_alert_confirm\",\n          cancel: \"clear_alert_cancel\"\n        ),\n        suppressConfirmation: suppressClearAlert\n      ) {\n        Task { @MainActor in\n          AppState.shared.history.clear()\n        }\n      },\n      FooterItem(\n        title: \"clear_all\",\n        shortcuts: [KeyShortcut(key: .delete, modifierFlags: [.command, .option, .shift])],\n        help: \"clear_all_tooltip\",\n        confirmation: .init(\n          message: \"clear_alert_message\",\n          comment: \"clear_alert_comment\",\n          confirm: \"clear_alert_confirm\",\n          cancel: \"clear_alert_cancel\"\n        ),\n        suppressConfirmation: suppressClearAlert\n      ) {\n        Task { @MainActor in\n          AppState.shared.history.clearAll()\n        }\n      },\n      FooterItem(\n        title: \"preferences\",\n        shortcuts: [KeyShortcut(key: .comma)]\n      ) {\n        Task { @MainActor in\n          AppState.shared.openPreferences()\n        }\n      },\n      FooterItem(\n        title: \"about\",\n        help: \"about_tooltip\"\n      ) {\n        AppState.shared.openAbout()\n      },\n      FooterItem(\n        title: \"quit\",\n        shortcuts: [KeyShortcut(key: .q)],\n        help: \"quit_tooltip\"\n      ) {\n        AppState.shared.quit()\n      }\n    ]\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/FooterItem.swift",
    "content": "import SwiftUI\n\n@Observable\nclass FooterItem: Equatable, Identifiable, HasVisibility {\n  struct Confirmation {\n    var message: LocalizedStringKey\n    var comment: LocalizedStringKey\n    var confirm: LocalizedStringKey\n    var cancel: LocalizedStringKey\n  }\n\n  static func == (lhs: FooterItem, rhs: FooterItem) -> Bool {\n    return lhs.id == rhs.id\n  }\n\n  let id = UUID()\n\n  var title: String\n  var shortcuts: [KeyShortcut] = []\n  var help: LocalizedStringKey?\n  var isSelected: Bool = false\n  var confirmation: Confirmation?\n  var showConfirmation: Bool = false\n  var suppressConfirmation: Binding<Bool>?\n  var isVisible: Bool = true\n  var action: () -> Void\n\n  init(\n    title: String,\n    shortcuts: [KeyShortcut] = [],\n    help: LocalizedStringKey? = nil,\n    confirmation: Confirmation? = nil,\n    suppressConfirmation: Binding<Bool>? = nil,\n    action: @escaping () -> Void\n  ) {\n    self.title = title\n    self.shortcuts = shortcuts\n    self.help = help\n    self.confirmation = confirmation\n    self.suppressConfirmation = suppressConfirmation\n    self.action = action\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/History.swift",
    "content": "// swiftlint:disable file_length\nimport AppKit.NSRunningApplication\nimport Defaults\nimport Foundation\nimport Logging\nimport Observation\nimport Sauce\nimport Settings\nimport SwiftData\n\n@Observable\nclass History: ItemsContainer { // swiftlint:disable:this type_body_length\n  static let shared = History()\n  let logger = Logger(label: \"org.p0deje.Maccy\")\n\n  var items: [HistoryItemDecorator] = []\n  var pasteStack: PasteStack?\n\n  var pinnedItems: [HistoryItemDecorator] { items.filter(\\.isPinned) }\n  var unpinnedItems: [HistoryItemDecorator] { items.filter(\\.isUnpinned) }\n\n  var searchQuery: String = \"\" {\n    didSet {\n      throttler.throttle { [self] in\n        updateItems(search.search(string: searchQuery, within: all))\n\n        if searchQuery.isEmpty {\n          AppState.shared.navigator.select(item: unpinnedItems.first)\n        } else {\n          AppState.shared.navigator.highlightFirst()\n        }\n\n        AppState.shared.popup.needsResize = true\n      }\n    }\n  }\n\n  var pressedShortcutItem: HistoryItemDecorator? {\n    guard let event = NSApp.currentEvent else {\n      return nil\n    }\n\n    let modifierFlags = event.modifierFlags\n      .intersection(.deviceIndependentFlagsMask)\n      .subtracting(.capsLock)\n\n    guard HistoryItemAction(modifierFlags) != .unknown else {\n      return nil\n    }\n\n    let key = Sauce.shared.key(for: Int(event.keyCode))\n    return items.first { $0.shortcuts.contains(where: { $0.key == key }) }\n  }\n\n  private let search = Search()\n  private let sorter = Sorter()\n  private let throttler = Throttler(minimumDelay: 0.2)\n\n  @ObservationIgnored\n  private var sessionLog: [Int: HistoryItem] = [:]\n\n  // The distinction between `all` and `items` is the following:\n  // - `all` stores all history items, even the ones that are currently hidden by a search\n  // - `items` stores only visible history items, updated during a search\n  @ObservationIgnored\n  var all: [HistoryItemDecorator] = []\n\n  init() {\n    Task {\n      for await _ in Defaults.updates(.pasteByDefault, initial: false) {\n        updateShortcuts()\n      }\n    }\n\n    Task {\n      for await _ in Defaults.updates(.sortBy, initial: false) {\n        try? await load()\n      }\n    }\n\n    Task {\n      for await _ in Defaults.updates(.pinTo, initial: false) {\n        try? await load()\n      }\n    }\n\n    Task {\n      for await _ in Defaults.updates(.showSpecialSymbols, initial: false) {\n        for item in items {\n          await updateTitle(item: item, title: item.item.generateTitle())\n        }\n      }\n    }\n\n    Task {\n      for await _ in Defaults.updates(.imageMaxHeight, initial: false) {\n        for item in items {\n          await item.cleanupImages()\n        }\n      }\n    }\n  }\n\n  @MainActor\n  func load() async throws {\n    let descriptor = FetchDescriptor<HistoryItem>()\n    let results = try Storage.shared.context.fetch(descriptor)\n    all = sorter.sort(results).map { HistoryItemDecorator($0) }\n    items = all\n\n    limitHistorySize(to: Defaults[.size])\n\n    updateShortcuts()\n    // Ensure that panel size is proper *after* loading all items.\n    Task {\n      AppState.shared.popup.needsResize = true\n    }\n  }\n\n  @MainActor\n  private func limitHistorySize(to maxSize: Int) {\n    let unpinned = all.filter(\\.isUnpinned)\n    if unpinned.count >= maxSize {\n      unpinned[maxSize...].forEach(delete)\n    }\n  }\n\n  @MainActor\n  func insertIntoStorage(_ item: HistoryItem) throws {\n    logger.info(\"Inserting item with id '\\(item.title)'\")\n    Storage.shared.context.insert(item)\n    Storage.shared.context.processPendingChanges()\n    try? Storage.shared.context.save()\n  }\n\n  @discardableResult\n  @MainActor\n  func add(_ item: HistoryItem) -> HistoryItemDecorator {\n    if #available(macOS 15.0, *) {\n      try? History.shared.insertIntoStorage(item)\n    } else {\n      // On macOS 14 the history item needs to be inserted into storage directly after creating it.\n      // It was already inserted after creation in Clipboard.swift\n    }\n\n    var removedItemIndex: Int?\n    if let existingHistoryItem = findSimilarItem(item) {\n      if isModified(item) == nil {\n        item.contents = existingHistoryItem.contents\n      }\n      item.firstCopiedAt = existingHistoryItem.firstCopiedAt\n      item.numberOfCopies += existingHistoryItem.numberOfCopies\n      item.pin = existingHistoryItem.pin\n      item.title = existingHistoryItem.title\n      if !item.fromMaccy {\n        item.application = existingHistoryItem.application\n      }\n      logger.info(\"Removing duplicate item '\\(item.title)'\")\n      Storage.shared.context.delete(existingHistoryItem)\n      removedItemIndex = all.firstIndex(where: { $0.item == existingHistoryItem })\n      if let removedItemIndex {\n        all.remove(at: removedItemIndex)\n      }\n    } else {\n      Task {\n        Notifier.notify(body: item.title, sound: .write)\n      }\n    }\n\n    // Remove exceeding items. Do this after the item is added to avoid removing something\n    // if a duplicate was found as then the size already stayed the same.\n    limitHistorySize(to: Defaults[.size] - 1)\n\n    sessionLog[Clipboard.shared.changeCount] = item\n\n    var itemDecorator: HistoryItemDecorator\n    if let pin = item.pin {\n      itemDecorator = HistoryItemDecorator(item, shortcuts: KeyShortcut.create(character: pin))\n      // Keep pins in the same place.\n      if let removedItemIndex {\n        all.insert(itemDecorator, at: removedItemIndex)\n      }\n    } else {\n      itemDecorator = HistoryItemDecorator(item)\n\n      let sortedItems = sorter.sort(all.map(\\.item) + [item])\n      if let index = sortedItems.firstIndex(of: item) {\n        all.insert(itemDecorator, at: index)\n      }\n\n      items = all\n      updateUnpinnedShortcuts()\n      AppState.shared.popup.needsResize = true\n    }\n\n    return itemDecorator\n  }\n\n  @MainActor\n  private func withLogging(_ msg: String, _ block: () throws -> Void) rethrows {\n    func dataCounts() -> String {\n      let historyItemCount = try? Storage.shared.context.fetchCount(FetchDescriptor<HistoryItem>())\n      let historyContentCount = try? Storage.shared.context.fetchCount(FetchDescriptor<HistoryItemContent>())\n      return \"HistoryItem=\\(historyItemCount ?? 0) HistoryItemContent=\\(historyContentCount ?? 0)\"\n    }\n\n    logger.info(\"\\(msg) Before: \\(dataCounts())\")\n    try? block()\n    logger.info(\"\\(msg) After: \\(dataCounts())\")\n  }\n\n  @MainActor\n  func clear() {\n    withLogging(\"Clearing history\") {\n      all.forEach { item in\n        if item.isUnpinned {\n          cleanup(item)\n        }\n      }\n      all.removeAll(where: \\.isUnpinned)\n      sessionLog.removeValues { $0.pin == nil }\n      items = all\n\n      try? Storage.shared.context.transaction {\n        try? Storage.shared.context.delete(\n          model: HistoryItem.self,\n          where: #Predicate { $0.pin == nil }\n        )\n        try? Storage.shared.context.delete(\n          model: HistoryItemContent.self,\n          where: #Predicate { $0.item?.pin == nil }\n        )\n      }\n      Storage.shared.context.processPendingChanges()\n      try? Storage.shared.context.save()\n    }\n\n    Clipboard.shared.clear()\n    AppState.shared.popup.close()\n    Task {\n      AppState.shared.popup.needsResize = true\n    }\n  }\n\n  @MainActor\n  func clearAll() {\n    withLogging(\"Clearing all history\") {\n      all.forEach { item in\n        cleanup(item)\n      }\n      all.removeAll()\n      sessionLog.removeAll()\n      items = all\n\n      try? Storage.shared.context.delete(model: HistoryItem.self)\n      Storage.shared.context.processPendingChanges()\n      try? Storage.shared.context.save()\n    }\n\n    Clipboard.shared.clear()\n    AppState.shared.popup.close()\n    Task {\n      AppState.shared.popup.needsResize = true\n    }\n  }\n\n  @MainActor\n  func delete(_ item: HistoryItemDecorator?) {\n    guard let item else { return }\n\n    cleanup(item)\n    withLogging(\"Removing history item\") {\n      Storage.shared.context.delete(item.item)\n      Storage.shared.context.processPendingChanges()\n      try? Storage.shared.context.save()\n    }\n\n    all.removeAll { $0 == item }\n    items.removeAll { $0 == item }\n    sessionLog.removeValues { $0 == item.item }\n\n    updateUnpinnedShortcuts()\n    Task {\n      AppState.shared.popup.needsResize = true\n    }\n  }\n\n  @MainActor\n  private func cleanup(_ item: HistoryItemDecorator) {\n    item.cleanupImages()\n  }\n\n  private func currentModifierFlags() -> NSEvent.ModifierFlags {\n    return NSApp.currentEvent?.modifierFlags\n      .intersection(.deviceIndependentFlagsMask)\n      .subtracting([.capsLock, .numericPad, .function]) ?? []\n  }\n\n  @MainActor\n  func select(_ item: HistoryItemDecorator?) {\n    guard let item else {\n      return\n    }\n\n    let modifierFlags = currentModifierFlags()\n\n    if modifierFlags.isEmpty {\n      AppState.shared.popup.close()\n      Clipboard.shared.copy(item.item, removeFormatting: Defaults[.removeFormattingByDefault])\n      if Defaults[.pasteByDefault] {\n        Clipboard.shared.paste()\n      }\n    } else {\n      switch HistoryItemAction(modifierFlags) {\n      case .copy:\n        AppState.shared.popup.close()\n        Clipboard.shared.copy(item.item)\n      case .paste:\n        AppState.shared.popup.close()\n        Clipboard.shared.copy(item.item)\n        Clipboard.shared.paste()\n      case .pasteWithoutFormatting:\n        AppState.shared.popup.close()\n        Clipboard.shared.copy(item.item, removeFormatting: true)\n        Clipboard.shared.paste()\n      case .unknown:\n        return\n      }\n    }\n\n    Task {\n      searchQuery = \"\"\n    }\n  }\n\n  @MainActor\n  func startPasteStack(selection: inout Selection<HistoryItemDecorator>) {\n    guard AppState.shared.multiSelectionEnabled else { return }\n    guard let item = selection.first else { return }\n    PasteStack.initializeIfNeeded()\n\n    let modifierFlags = currentModifierFlags()\n\n    let stack = PasteStack(items: selection.items, modifierFlags: modifierFlags)\n    pasteStack = stack\n\n    logger.info(\"Initialising PasteStack with \\(stack.items.count) items\")\n    logger.info(\"Copying \\(item.item.title) from PasteStack\")\n\n    if modifierFlags.isEmpty {\n      AppState.shared.popup.close()\n      Clipboard.shared.copy(item.item, removeFormatting: Defaults[.removeFormattingByDefault])\n    } else {\n      switch HistoryItemAction(modifierFlags) {\n      case .copy:\n        AppState.shared.popup.close()\n        Clipboard.shared.copy(item.item)\n      case .paste:\n        AppState.shared.popup.close()\n        Clipboard.shared.copy(item.item)\n      case .pasteWithoutFormatting:\n        AppState.shared.popup.close()\n        Clipboard.shared.copy(item.item, removeFormatting: true)\n        Clipboard.shared.paste()\n      case .unknown:\n        return\n      }\n    }\n\n    Task {\n      searchQuery = \"\"\n    }\n  }\n\n  func handlePasteStack() {\n    guard let stack = pasteStack else {\n      return\n    }\n\n    guard let pasted = stack.items.first else {\n      pasteStack = nil\n      logger.info(\"PasteStack is empty\")\n      return\n    }\n\n    logger.info(\"PasteStack pasted \\(pasted.item.title)\")\n\n    stack.items.removeFirst()\n\n    guard let item = stack.items.first else {\n      pasteStack = nil\n      logger.info(\"PasteStack is empty\")\n      return\n    }\n\n    logger.info(\"Copying \\(item.item.title) from PasteStack. \\(stack.items.count) items remaining in stack.\")\n\n    Task {\n      if stack.modifierFlags.isEmpty {\n        await Clipboard.shared.copy(item.item, removeFormatting: Defaults[.removeFormattingByDefault])\n      } else {\n        switch HistoryItemAction(stack.modifierFlags) {\n        case .copy:\n          await Clipboard.shared.copy(item.item)\n        case .paste:\n          await Clipboard.shared.copy(item.item)\n        case .pasteWithoutFormatting:\n          await Clipboard.shared.copy(item.item, removeFormatting: true)\n        case .unknown:\n          return\n        }\n      }\n    }\n  }\n\n  func interruptPasteStack() {\n    guard pasteStack != nil else {\n      return\n    }\n    logger.info(\"Interrupting PasteStack\")\n    pasteStack = nil\n  }\n\n  @MainActor\n  func togglePin(_ item: HistoryItemDecorator?) {\n    guard let item else { return }\n\n    item.togglePin()\n\n    let sortedItems = sorter.sort(all.map(\\.item))\n    if let currentIndex = all.firstIndex(of: item),\n       let newIndex = sortedItems.firstIndex(of: item.item) {\n      all.remove(at: currentIndex)\n      all.insert(item, at: newIndex)\n    }\n\n    items = all\n\n    searchQuery = \"\"\n    updateUnpinnedShortcuts()\n    if item.isUnpinned {\n      AppState.shared.navigator.scrollTarget = item.id\n    }\n  }\n\n  @MainActor\n  private func findSimilarItem(_ item: HistoryItem) -> HistoryItem? {\n    let descriptor = FetchDescriptor<HistoryItem>()\n    if let all = try? Storage.shared.context.fetch(descriptor) {\n      let duplicates = all.filter({ $0 == item || $0.supersedes(item) })\n      if duplicates.count > 1 {\n        return duplicates.first(where: { $0 != item })\n      } else {\n        return isModified(item)\n      }\n    }\n\n    return item\n  }\n\n  private func isModified(_ item: HistoryItem) -> HistoryItem? {\n    if let modified = item.modified, sessionLog.keys.contains(modified) {\n      return sessionLog[modified]\n    }\n\n    return nil\n  }\n\n  private func updateItems(_ newItems: [Search.SearchResult]) {\n    items = newItems.map { result in\n      let item = result.object\n      item.highlight(searchQuery, result.ranges)\n\n      return item\n    }\n\n    updateUnpinnedShortcuts()\n  }\n\n  private func updateShortcuts() {\n    for item in pinnedItems {\n      if let pin = item.item.pin {\n        item.shortcuts = KeyShortcut.create(character: pin)\n      }\n    }\n\n    updateUnpinnedShortcuts()\n  }\n\n  @MainActor\n  private func updateTitle(item: HistoryItemDecorator, title: String) {\n    item.title = title\n    item.item.title = title\n  }\n\n  private func updateUnpinnedShortcuts() {\n    let visibleUnpinnedItems = unpinnedItems.filter(\\.isVisible)\n    for item in visibleUnpinnedItems {\n      item.shortcuts = []\n    }\n\n    var index = 1\n    for item in visibleUnpinnedItems.prefix(9) {\n      item.shortcuts = KeyShortcut.create(character: String(index))\n      index += 1\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/HistoryItemDecorator.swift",
    "content": "import AppKit.NSWorkspace\nimport Defaults\nimport Foundation\nimport Observation\nimport Sauce\n\n@Observable\nclass HistoryItemDecorator: Identifiable, Hashable, HasVisibility {\n  static func == (lhs: HistoryItemDecorator, rhs: HistoryItemDecorator) -> Bool {\n    return lhs.id == rhs.id\n  }\n\n  static var previewImageSize: NSSize { NSScreen.forPopup?.visibleFrame.size ?? NSSize(width: 2048, height: 1536) }\n  static var thumbnailImageSize: NSSize { NSSize(width: 340, height: Defaults[.imageMaxHeight]) }\n\n  let id = UUID()\n\n  var title: String = \"\"\n  var attributedTitle: AttributedString?\n\n  var isVisible: Bool = true\n  var selectionIndex: Int = -1\n  var isSelected: Bool {\n    return selectionIndex != -1\n  }\n  var shortcuts: [KeyShortcut] = []\n\n  var application: String? {\n    if item.universalClipboard {\n      return \"iCloud\"\n    }\n\n    guard let bundle = item.application,\n      let url = NSWorkspace.shared.urlForApplication(withBundleIdentifier: bundle)\n    else {\n      return nil\n    }\n\n    return url.deletingPathExtension().lastPathComponent\n  }\n\n  var hasImage: Bool { item.image != nil }\n\n  var previewImageGenerationTask: Task<(), Error>?\n  var thumbnailImageGenerationTask: Task<(), Error>?\n  var previewImage: NSImage?\n  var thumbnailImage: NSImage?\n  var applicationImage: ApplicationImage\n\n  // 10k characters seems to be more than enough on large displays\n  var text: String { item.previewableText.shortened(to: 10_000) }\n\n  var isPinned: Bool { item.pin != nil }\n  var isUnpinned: Bool { item.pin == nil }\n\n  func hash(into hasher: inout Hasher) {\n    // We need to hash title and attributedTitle, so SwiftUI knows it needs to update the view if they chage\n    hasher.combine(id)\n    hasher.combine(title)\n    hasher.combine(attributedTitle)\n  }\n\n  private(set) var item: HistoryItem\n\n  init(_ item: HistoryItem, shortcuts: [KeyShortcut] = []) {\n    self.item = item\n    self.shortcuts = shortcuts\n    self.title = item.title\n    self.applicationImage = ApplicationImageCache.shared.getImage(item: item)\n\n    synchronizeItemPin()\n    synchronizeItemTitle()\n  }\n\n  @MainActor\n  func ensureThumbnailImage() {\n    guard item.image != nil else {\n      return\n    }\n    guard thumbnailImage == nil else {\n      return\n    }\n    guard thumbnailImageGenerationTask == nil else {\n      return\n    }\n    thumbnailImageGenerationTask = Task { [weak self] in\n      self?.generateThumbnailImage()\n    }\n  }\n\n  @MainActor\n  func ensurePreviewImage() {\n    guard item.image != nil else {\n      return\n    }\n    guard previewImage == nil else {\n      return\n    }\n    guard previewImageGenerationTask == nil else {\n      return\n    }\n    previewImageGenerationTask = Task { [weak self] in\n      self?.generatePreviewImage()\n    }\n  }\n\n  @MainActor\n  func asyncGetPreviewImage() async -> NSImage? {\n    if let image = previewImage {\n      return image\n    }\n    ensurePreviewImage()\n    _ = await previewImageGenerationTask?.result\n    return previewImage\n  }\n\n  @MainActor\n  func cleanupImages() {\n    thumbnailImageGenerationTask?.cancel()\n    previewImageGenerationTask?.cancel()\n    thumbnailImage?.recache()\n    previewImage?.recache()\n    thumbnailImage = nil\n    previewImage = nil\n  }\n\n  @MainActor\n  private func generateThumbnailImage() {\n    guard let image = item.image else {\n      return\n    }\n    thumbnailImage = image.resized(to: HistoryItemDecorator.thumbnailImageSize)\n  }\n\n  @MainActor\n  private func generatePreviewImage() {\n    guard let image = item.image else {\n      return\n    }\n    previewImage = image.resized(to: HistoryItemDecorator.previewImageSize)\n  }\n\n  @MainActor\n  func sizeImages() {\n    generatePreviewImage()\n    generateThumbnailImage()\n  }\n\n  func highlight(_ query: String, _ ranges: [Range<String.Index>]) {\n    guard !query.isEmpty, !title.isEmpty else {\n      attributedTitle = nil\n      return\n    }\n\n    var attributedString = AttributedString(title.shortened(to: 500))\n    for range in ranges {\n      if let lowerBound = AttributedString.Index(range.lowerBound, within: attributedString),\n         let upperBound = AttributedString.Index(range.upperBound, within: attributedString) {\n        switch Defaults[.highlightMatch] {\n        case .bold:\n          attributedString[lowerBound..<upperBound].font = .bold(.body)()\n        case .italic:\n          attributedString[lowerBound..<upperBound].font = .italic(.body)()\n        case .underline:\n          attributedString[lowerBound..<upperBound].underlineStyle = .single\n        default:\n          attributedString[lowerBound..<upperBound].backgroundColor = .findHighlightColor\n          attributedString[lowerBound..<upperBound].foregroundColor = .black\n        }\n      }\n    }\n\n    attributedTitle = attributedString\n  }\n\n  @MainActor\n  func togglePin() {\n    if item.pin != nil {\n      item.pin = nil\n    } else {\n      let pin = HistoryItem.randomAvailablePin\n      item.pin = pin\n    }\n  }\n\n  private func synchronizeItemPin() {\n    _ = withObservationTracking {\n      item.pin\n    } onChange: {\n      DispatchQueue.main.async {\n        if let pin = self.item.pin {\n          self.shortcuts = KeyShortcut.create(character: pin)\n        }\n        self.synchronizeItemPin()\n      }\n    }\n  }\n\n  private func synchronizeItemTitle() {\n    _ = withObservationTracking {\n      item.title\n    } onChange: {\n      DispatchQueue.main.async {\n        self.title = self.item.title\n        self.synchronizeItemTitle()\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/ModifierFlags.swift",
    "content": "import AppKit.NSEvent\nimport Defaults\n\n@Observable\nclass ModifierFlags {\n  var flags: NSEvent.ModifierFlags = []\n\n  init() {\n    NSEvent.addLocalMonitorForEvents(matching: .flagsChanged) { event in\n      self.flags = event.modifierFlags.intersection(.deviceIndependentFlagsMask)\n      return event\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/NavigationManager.swift",
    "content": "import Foundation\nimport SwiftUI\n\n@Observable\nclass NavigationManager { // swiftlint:disable:this type_body_length\n  private var history: History\n  private var footer: Footer\n\n  init(history: History, footer: Footer) {\n    self.history = history\n    self.footer = footer\n  }\n\n  var selection: Selection<HistoryItemDecorator> = Selection() {\n    willSet {\n      selection.forEach { _, item in item.selectionIndex = -1 }\n      newValue.forEach { index, item in item.selectionIndex = index }\n    }\n  }\n\n  var scrollTarget: UUID?\n  var leadSelection: UUID? {\n    if let item = leadHistoryItem {\n      return item.id\n    }\n    if let footerItem = footer.selectedItem {\n      return footerItem.id\n    }\n    return history.pasteStack?.id\n  }\n  private(set) var leadHistoryItem: HistoryItemDecorator? {\n    didSet {\n      guard oldValue?.id != leadHistoryItem?.id else { return }\n\n      let preview = AppState.shared.preview\n      if leadHistoryItem != nil {\n        preview.resetAutoOpenSuppression()\n        preview.startAutoOpen()\n      } else {\n        preview.cancelAutoOpen()\n      }\n    }\n  }\n\n  var pasteStackSelected: Bool {\n    return leadSelection != nil && leadSelection == history.pasteStack?.id\n  }\n\n  var isManualMultiSelect: Bool = false\n  var isMultiSelectInProgress: Bool {\n    return isManualMultiSelect || selection.count > 1\n  }\n\n  var hoverSelectionWhileKeyboardNavigating: UUID?\n  var isKeyboardNavigating: Bool = true {\n    didSet {\n      if !isKeyboardNavigating && !isMultiSelectInProgress,\n         let hoverSelection = hoverSelectionWhileKeyboardNavigating {\n        hoverSelectionWhileKeyboardNavigating = nil\n        select(id: hoverSelection)\n      }\n    }\n  }\n\n  private func scroll(to id: UUID?, item: HistoryItemDecorator? = nil) {\n    scrollTarget = id\n  }\n\n  func select(id: UUID) {\n    if let item = history.items.first(where: { $0.id == id }) {\n      select(item: item, footerItem: nil)\n    } else if let item = footer.items.first(where: { $0.id == id }) {\n      select(item: nil, footerItem: item)\n    } else {\n      select(item: nil, footerItem: nil)\n    }\n  }\n\n  func select(item: HistoryItemDecorator? = nil, footerItem: FooterItem? = nil) {\n    withTransaction(Transaction()) {\n      selectWithoutScrolling(item: item, footerItem: footerItem)\n      scroll(to: item?.id, item: item)\n    }\n  }\n\n  func addToSelection(item: HistoryItemDecorator) {\n    var newSelectionState = selection\n\n    if item.isSelected {\n      if newSelectionState.count <= 1 {\n        isManualMultiSelect = !isManualMultiSelect\n      } else {\n        newSelectionState.remove(item)\n      }\n    } else {\n      newSelectionState.add(item)\n    }\n\n    withTransaction(Transaction()) {\n      selection = newSelectionState\n      leadHistoryItem = item\n      scrollTarget = leadSelection\n    }\n  }\n\n  func extendSelection(\n    from fromItem: HistoryItemDecorator,\n    to toItem: HistoryItemDecorator,\n    isRange: Bool\n  ) {\n    var newSelectionState = selection\n\n    if isRange {\n      if let itemRange = history.visibleItems.between(\n        from: fromItem,\n        to: toItem,\n        inOrder: false\n      ) {\n        newSelectionState = Selection(items: itemRange)\n      }\n    } else {\n      if toItem.isSelected {\n        newSelectionState.remove(fromItem)\n      } else {\n        newSelectionState.add(toItem)\n      }\n    }\n\n    withTransaction(Transaction()) {\n      selection = newSelectionState\n      leadHistoryItem = toItem\n      scrollTarget = leadSelection\n    }\n  }\n\n  func selectWithoutScrolling(id: UUID) {\n    if let stack = history.pasteStack,\n       stack.id == id {\n      selectWithoutScrolling(item: nil, footerItem: nil)\n    } else if let item = history.items.first(where: { $0.id == id }) {\n      if !isMultiSelectInProgress {\n        selectWithoutScrolling(item: item, footerItem: nil)\n      }\n    } else if let item = footer.items.first(where: { $0.id == id }) {\n      selectWithoutScrolling(item: nil, footerItem: item)\n    } else {\n      selectWithoutScrolling(item: nil, footerItem: nil)\n    }\n  }\n\n  func selectWithoutScrolling(\n    item: HistoryItemDecorator? = nil,\n    footerItem: FooterItem? = nil\n  ) {\n    if let item = item {\n      selectInHistory(item)\n    } else if let footerItem = footerItem {\n      selectInFooter(footerItem)\n    } else {\n      leadHistoryItem = nil\n      selection = .init()\n      footer.selectedItem = nil\n    }\n  }\n\n  private func selectInHistory(_ item: HistoryItemDecorator) {\n    leadHistoryItem = item\n    selection = .init(items: [item])\n    footer.selectedItem = nil\n  }\n\n  private func selectInFooter(_ item: FooterItem) {\n    leadHistoryItem = nil\n    if !isMultiSelectInProgress {\n      selection = .init()\n    }\n    footer.selectedItem = item\n  }\n\n  private func selectFromKeyboardNavigation(\n    item: HistoryItemDecorator? = nil,\n    footerItem: FooterItem? = nil\n  ) {\n    isKeyboardNavigating = true\n    isManualMultiSelect = false\n    select(item: item, footerItem: footerItem)\n  }\n\n  private func extendHistorySelectionFromKeyboardNavigation(\n    from fromItem: HistoryItemDecorator,\n    to toItem: HistoryItemDecorator,\n    isRange: Bool\n  ) {\n    isKeyboardNavigating = true\n    extendSelection(from: fromItem, to: toItem, isRange: isRange)\n  }\n\n  func highlightFirst() {\n    if let item = history.firstVisibleItem {\n      selectFromKeyboardNavigation(item: item)\n    } else {\n      selectFromKeyboardNavigation(item: nil)\n    }\n  }\n\n  func highlightPrevious() {\n    guard let lead = leadSelection else { return }\n\n    if let historyItem = history.firstVisibleItem(where: { $0.id == lead }) {\n      if let nextItem = history.visibleItem(before: historyItem) {\n        selectFromKeyboardNavigation(item: nextItem)\n      } else if history.pasteStack != nil {\n        selectWithoutScrolling(item: nil)\n      } else {\n        highlightFirst()\n      }\n    } else if let footerItem = footer.firstVisibleItem(where: { $0.id == lead }) {\n      if let nextItem = footer.visibleItem(before: footerItem) {\n        selectFromKeyboardNavigation(footerItem: nextItem)\n      } else if let nextItem = history.lastVisibleItem {\n        selectFromKeyboardNavigation(item: nextItem)\n      }\n    }\n  }\n\n  func highlightNext(allowCycle: Bool = false) {\n    guard let lead = leadSelection else { return }\n\n    if leadSelection == history.pasteStack?.id {\n      highlightFirst()\n      return\n    }\n\n    if let historyItem = history.firstVisibleItem(where: { $0.id == lead }) {\n      if let nextItem = history.visibleItem(after: historyItem) {\n        selectFromKeyboardNavigation(item: nextItem)\n      } else if let nextItem = footer.firstVisibleItem {\n        selectFromKeyboardNavigation(footerItem: nextItem)\n      } else if allowCycle {\n        highlightFirst()\n      }\n    } else if let footerItem = footer.firstVisibleItem(where: { $0.id == lead }) {\n      if let nextItem = footer.visibleItem(after: footerItem) {\n        selectFromKeyboardNavigation(footerItem: nextItem)\n      } else if let nextItem = footer.firstVisibleItem {\n        selectFromKeyboardNavigation(footerItem: nextItem)\n      } else if allowCycle {\n        // End of footer; cycle to the beginning\n        highlightFirst()\n      }\n    }\n  }\n\n  func highlightLast() {\n    guard let lead = leadSelection else { return }\n\n    if let historyItem = history.firstVisibleItem(where: { $0.id == lead }) {\n      if historyItem == history.lastVisibleItem,\n         let nextItem = footer.firstVisibleItem {\n        selectFromKeyboardNavigation(footerItem: nextItem)\n      } else {\n        selectFromKeyboardNavigation(item: history.lastVisibleItem)\n      }\n    } else if footer.selectedItem != nil {\n      selectFromKeyboardNavigation(footerItem: footer.lastVisibleItem)\n    } else {\n      selectFromKeyboardNavigation(footerItem: footer.firstVisibleItem)\n    }\n  }\n\n  func extendHighlightToNext() {\n    if let leadSelection,\n       let leadItem = history.firstVisibleItem(where: {$0.id == leadSelection}) {\n      guard let nextItem = history.visibleItem(after: leadItem) else { return }\n      extendHistorySelectionFromKeyboardNavigation(from: leadItem, to: nextItem, isRange: false)\n    } else {\n      highlightNext()\n    }\n  }\n\n  func extendHighlightToPrevious() {\n    if let leadSelection,\n       let leadItem = history.firstVisibleItem(where: {$0.id == leadSelection}) {\n      guard let nextItem = history.visibleItem(before: leadItem) else { return }\n      extendHistorySelectionFromKeyboardNavigation(from: leadItem, to: nextItem, isRange: false)\n    } else {\n      highlightPrevious()\n    }\n  }\n\n  func extendHighlightToFirst() {\n    if let leadSelection,\n       let leadItem = history.firstVisibleItem(where: {$0.id == leadSelection}) {\n      guard let nextItem = history.firstVisibleItem else { return }\n      extendHistorySelectionFromKeyboardNavigation(from: leadItem, to: nextItem, isRange: true)\n    } else {\n      highlightFirst()\n    }\n  }\n\n  func extendHighlightToLast() {\n    if let leadSelection,\n       let leadItem = history.firstVisibleItem(where: {$0.id == leadSelection}) {\n      guard let nextItem = history.lastVisibleItem else { return }\n      extendHistorySelectionFromKeyboardNavigation(from: leadItem, to: nextItem, isRange: true)\n    } else {\n      highlightFirst()\n    }\n  }\n\n}\n"
  },
  {
    "path": "Maccy/Observables/Popup.swift",
    "content": "import AppKit.NSRunningApplication\nimport Defaults\nimport KeyboardShortcuts\nimport Observation\n\nenum PopupState {\n  // Default; shortcut will toggle the popup\n  case toggle\n  // In this mode, every additional press of the main key\n  // will cycle to the next item in the paste history list.\n  // Releasing the modifier keys will accept selection and close the popup\n  case cycle\n  // Transition state when the shortcut is first pressed and\n  // we don't know whether we are in \"toggle\" or \"cycle\" mode.\n  case opening\n}\n\n@Observable\nclass Popup {\n  static let verticalSeparatorPadding = 6.0\n  static let horizontalSeparatorPadding = 6.0\n  static let verticalPadding: CGFloat = 5\n  static let horizontalPadding: CGFloat = 5\n  static let minimumPreviewHeight: CGFloat = 150\n\n  // Radius used for items inset by the padding. Ensures they visually have the same curvature\n  // as the menu.\n  static let cornerRadius: CGFloat = if #available(macOS 26.0, *) {\n    7\n  } else {\n    4\n  }\n\n  static let itemHeight: CGFloat = if #available(macOS 26.0, *) {\n    24\n  } else {\n    22\n  }\n\n  var needsResize = false\n  var height: CGFloat = 0\n  var headerHeight: CGFloat = 0\n  var extraTopHeight: CGFloat = 0\n  var extraBottomHeight: CGFloat = 0\n  var footerHeight: CGFloat = 0\n\n  private var eventsMonitor: Any?\n\n  private var state: PopupState = .toggle\n\n  init() {\n    KeyboardShortcuts.onKeyDown(for: .popup, action: handleFirstKeyDown)\n    initEventsMonitor()\n  }\n\n  deinit {\n    deinitEventsMonitor()\n  }\n\n  func initEventsMonitor() {\n    guard eventsMonitor == nil else { return }\n\n    self.eventsMonitor = NSEvent.addLocalMonitorForEvents(\n      matching: [.flagsChanged, .keyDown],\n      handler: handleEvent\n    )\n  }\n\n  func deinitEventsMonitor() {\n    guard let eventsMonitor else { return }\n\n    NSEvent.removeMonitor(eventsMonitor)\n  }\n\n  func open(height: CGFloat, at popupPosition: PopupPosition = Defaults[.popupPosition]) {\n    AppState.shared.appDelegate?.panel.open(height: height, at: popupPosition)\n  }\n\n  func reset() {\n    state = .toggle\n    KeyboardShortcuts.enable(.popup)\n  }\n\n  func close() {\n    AppState.shared.appDelegate?.panel.close()  // close() calls reset\n  }\n\n  func isClosed() -> Bool {\n    AppState.shared.appDelegate?.panel.isPresented != true\n  }\n\n  func preferredHeight(for newHeight: CGFloat) -> CGFloat {\n    var height = newHeight\n\n    var minimumHeight = 0.0\n    // If the preview is non-empty make sure the window accomodates for it to be visible.\n    if AppState.shared.preview.state.isOpen && AppState.shared.navigator.leadSelection != nil {\n      minimumHeight += Self.minimumPreviewHeight\n    }\n    minimumHeight = max(headerHeight + Self.verticalPadding, minimumHeight)\n\n    height = max(height, minimumHeight)\n    height = min(height, Defaults[.windowSize].height)\n    return height\n  }\n\n  func resize(height: CGFloat) {\n    self.height = height + headerHeight + extraTopHeight + extraBottomHeight + footerHeight\n    AppState.shared.appDelegate?.panel.verticallyResize(to: preferredHeight(for: self.height))\n    needsResize = false\n  }\n\n  private func handleFirstKeyDown() {\n    if isClosed() {\n      open(height: height)\n      state = .opening\n      KeyboardShortcuts.disable(.popup)  // Handle events via eventsMonitor. Re-enable on popup close\n      return\n    }\n\n    // Maccy was not opened via shortcut. We assume toggle mode and close it\n    close()\n  }\n\n  private func handleEvent(_ event: NSEvent) -> NSEvent? {\n    switch event.type {\n    case .keyDown:\n      return handleKeyDown(event)\n    case .flagsChanged:\n      return handleFlagsChanged(event)\n    default:\n      return event\n    }\n  }\n\n  private func handleKeyDown(_ event: NSEvent) -> NSEvent? {\n    if isHotKeyCode(Int(event.keyCode)) {\n      if let item = History.shared.pressedShortcutItem {\n        AppState.shared.navigator.select(item: item)\n        Task { @MainActor in\n          AppState.shared.history.select(item)\n        }\n        return nil\n      }\n\n      if state == .opening {\n        state = .cycle\n        // Next 'if' will highlight next item and then return nil\n      }\n\n      if state == .cycle {\n        AppState.shared.navigator.highlightNext(allowCycle: true)\n        return nil\n      }\n\n      if state == .toggle && isHotKeyModifiers(event.modifierFlags) {\n        close()\n        return nil\n      }\n    }\n\n    return event\n  }\n\n  private func handleFlagsChanged(_ event: NSEvent) -> NSEvent? {\n    // If we are in cycle mode, releasing modifiers triggers a selection\n    if state == .cycle && allModifiersReleased(event) {\n      DispatchQueue.main.async {\n        AppState.shared.select()\n      }\n      return nil\n    }\n\n    // Otherwise if in opening mode, enter toggle mode\n    if state == .opening && allModifiersReleased(event) {\n      state = .toggle\n      return event\n    }\n\n    return event\n  }\n\n  private func isHotKeyCode(_ keyCode: Int) -> Bool {\n    guard let shortcut = KeyboardShortcuts.Name.popup.shortcut else {\n      return false\n    }\n\n    return shortcut.key?.rawValue == keyCode\n  }\n\n  private func isHotKeyModifiers(_ modifiers: NSEvent.ModifierFlags) -> Bool {\n    guard let shortcut = KeyboardShortcuts.Name.popup.shortcut else {\n      return false\n    }\n\n    return modifiers.intersection(.deviceIndependentFlagsMask) ==\n      shortcut.modifiers.intersection(.deviceIndependentFlagsMask)\n  }\n\n  private func allModifiersReleased(_ event: NSEvent) -> Bool {\n    return event.modifierFlags.isDisjoint(with: .deviceIndependentFlagsMask)\n  }\n}\n"
  },
  {
    "path": "Maccy/Observables/SlideoutController.swift",
    "content": "import Defaults\nimport Logging\nimport Observation\nimport SwiftUI\n\nenum SlideoutState {\n  case opening\n  case closing\n  case open\n  case closed\n\n  var isAnimating: Bool {\n    switch self {\n    case .closed, .open:\n      return false\n    case .opening, .closing:\n      return true\n    }\n  }\n\n  var isOpen: Bool {\n    switch self {\n    case .open, .opening:\n      return true\n    case .closed, .closing:\n      return false\n    }\n  }\n\n  fileprivate func toggleWithAnimation() -> SlideoutState {\n    switch self {\n    case .open, .opening:\n      return .closing\n    case .closed, .closing:\n      return .opening\n    }\n  }\n\n  func animationDone() -> SlideoutState {\n    switch self {\n    case .open, .opening:\n      return .open\n    case .closed, .closing:\n      return .closed\n    }\n  }\n}\n\nenum SlideoutPlacement {\n  case left\n  case right\n}\n\nenum SlideoutToggleTrigger {\n  case autoOpen\n  case manual\n}\n\nenum ResizingMode {\n  case none\n  case content\n  case slideout\n}\n\n@Observable\nclass SlideoutController {\n  let logger = Logger(label: \"org.p0deje.Maccy\")\n  private static let animationDuration = 0.25\n\n  let onContentResize: (CGFloat) -> Void\n  let onSlideoutResize: (CGFloat) -> Void\n\n  let minimumContentWidth: CGFloat = 200\n  var contentResizeWidth: CGFloat = 0\n  var contentAnimationWidth: CGFloat?\n\n  let minimumSlideoutWidth: CGFloat = 200\n  var slideoutResizeWidth: CGFloat = 0\n\n  private var _contentWidth: CGFloat = 0\n  var contentWidth: CGFloat {\n    get { return _contentWidth }\n    set {\n      _contentWidth = max(minimumContentWidth, newValue).rounded()\n      onContentResize(_contentWidth)\n    }\n  }\n  private var _slideoutWidth: CGFloat = 400\n  var slideoutWidth: CGFloat {\n    get { return _slideoutWidth }\n    set {\n      _slideoutWidth = max(minimumSlideoutWidth, newValue).rounded()\n      onSlideoutResize(_slideoutWidth)\n    }\n  }\n\n  var placement: SlideoutPlacement = .right\n  var state: SlideoutState = .closed\n  var resizingMode: ResizingMode = .none\n\n  var nswindow: NSWindow? {\n    return AppState.shared.appDelegate?.panel\n  }\n\n  private var windowAnimationOrigin: CGPoint?\n  private var windowAnimationOriginBaseState: SlideoutState = .closed\n\n  private var autoOpenTask: Task<Void, Never>?\n  private var autoOpenSuppressed = false\n  private var autoOpenEnabled = true\n\n  init(onContentResize: @escaping (CGFloat) -> Void, onSlideoutResize: @escaping (CGFloat) -> Void) {\n    self.onContentResize = onContentResize\n    self.onSlideoutResize = onSlideoutResize\n  }\n\n  private func togglePreviewStateWithAnimation(windowFrame: NSRect) {\n    let newValue = state.toggleWithAnimation()\n    if !state.isAnimating && newValue.isAnimating {\n      contentAnimationWidth = contentWidth\n      windowAnimationOrigin = windowFrame.origin\n      windowAnimationOriginBaseState = state\n    }\n    state = newValue\n  }\n\n  func computePlacement(window: NSWindow, for size: NSSize) -> SlideoutPlacement {\n    guard let screen = window.screen?.frame else { return placement }\n    let windowFrame = window.frame\n    if windowFrame.minX + size.width > screen.maxX {\n      return .left\n    } else {\n      return .right\n    }\n  }\n\n  func computeSizeWithPreview(_ size: NSSize, state newState: SlideoutState) -> NSSize {\n    var newSize = size\n    if newState.isOpen {\n      newSize.width += slideoutWidth\n    }\n    let popup = AppState.shared.popup\n    newSize.height = popup.preferredHeight(for: popup.height)\n    return newSize\n  }\n\n  func togglePreview(trigger: SlideoutToggleTrigger = .manual) {\n    if !state.isOpen {\n      let navigator = AppState.shared.navigator\n      guard navigator.leadHistoryItem != nil || navigator.pasteStackSelected else { return }\n    }\n\n    if trigger == .manual {\n      if state.isOpen {\n        autoOpenSuppressed = true\n      } else {\n        autoOpenSuppressed = false\n      }\n    }\n\n    cancelAutoOpen()\n    withAnimation(.easeInOut(duration: Self.animationDuration), completionCriteria: .removed) {\n      if let window = nswindow {\n        togglePreviewStateWithAnimation(windowFrame: window.frame)\n        var newSize = window.frame.size\n        newSize.width = contentWidth\n        newSize = computeSizeWithPreview(newSize, state: self.state)\n        if state.isOpen {\n          placement = computePlacement(window: window, for: newSize)\n        }\n\n        let expectedAnimationState = state\n        NSAnimationContext.runAnimationGroup { (context) in\n          var newOrigin = windowAnimationOrigin ?? window.frame.origin\n          newOrigin.y += (window.frame.height - newSize.height)\n\n          if placement == .left {\n            if windowAnimationOriginBaseState == .closed && state.isOpen {\n              newOrigin.x -= slideoutWidth\n            } else if windowAnimationOriginBaseState == .open\n              && !state.isOpen {\n              newOrigin.x += slideoutWidth\n            }\n            // Otherwise the base is the desired position\n          }\n          context.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)\n          context.completionHandler = {\n            if self.state == expectedAnimationState {\n              self.state = expectedAnimationState.animationDone()\n            }\n          }\n          context.duration = Self.animationDuration\n          window.animator().setFrame(\n            NSRect(origin: newOrigin, size: newSize),\n            display: true\n          )\n        }\n      }\n    } completion: {\n    }\n  }\n\n  func startResize(mode: ResizingMode) {\n    logger.info(\"Starting resize with mode \\(mode)\")\n    resizingMode = mode\n    contentWidth = contentResizeWidth\n    slideoutWidth = slideoutResizeWidth\n  }\n\n  func endResize() {\n    logger.info(\"Ended resize. Mode was \\(resizingMode)\")\n    switch resizingMode {\n    case .none:\n      return\n    case .content:\n      contentWidth = contentResizeWidth\n    case .slideout:\n      slideoutWidth = slideoutResizeWidth\n    }\n    resizingMode = .none\n  }\n\n  func startAutoOpen() {\n    cancelAutoOpen()\n\n    guard autoOpenEnabled else { return }\n    guard !autoOpenSuppressed else { return }\n    guard !state.isOpen else { return }\n\n    autoOpenTask = Task { @MainActor in\n      try? await Task.sleep(for: .milliseconds(Defaults[.previewDelay]))\n      guard !Task.isCancelled else { return }\n\n      if !state.isOpen {\n        togglePreview(trigger: .autoOpen)\n      }\n    }\n  }\n\n  func cancelAutoOpen() {\n    autoOpenTask?.cancel()\n    autoOpenTask = nil\n  }\n\n  func enableAutoOpen() {\n    autoOpenEnabled = true\n  }\n\n  func disableAutoOpen() {\n    autoOpenEnabled = false\n    cancelAutoOpen()\n  }\n\n  func resetAutoOpenSuppression() {\n    autoOpenSuppressed = false\n  }\n}\n"
  },
  {
    "path": "Maccy/PasteStack.swift",
    "content": "import Foundation\nimport AppKit\n\n@Observable\nclass PasteStack: Identifiable, Hashable {\n  private static var listener: Any?\n\n  static func initializeIfNeeded() {\n    guard listener == nil else { return }\n    Accessibility.check()\n\n    var pasteDown: Bool = false\n    listener = NSEvent.addGlobalMonitorForEvents(matching: [.keyUp, .keyDown]) { event in\n      switch event.type {\n      case .keyDown:\n        if event.keyCode == KeyChord.pasteKey.QWERTYKeyCode\n           && event.modifierFlags.intersection(.deviceIndependentFlagsMask) == [.command] {\n          pasteDown = true\n        }\n      case .keyUp:\n        if pasteDown && event.keyCode == KeyChord.pasteKey.QWERTYKeyCode {\n          pasteDown = false\n          AppState.shared.history.handlePasteStack()\n        }\n      default:\n        break\n      }\n    }\n  }\n\n  var id: UUID = UUID()\n  var items: [HistoryItemDecorator] = []\n  var modifierFlags: NSEvent.ModifierFlags\n\n  init(items: [HistoryItemDecorator], modifierFlags: NSEvent.ModifierFlags) {\n    self.items = items\n    self.modifierFlags = modifierFlags\n  }\n\n  static func == (lhs: PasteStack, rhs: PasteStack) -> Bool {\n    return lhs.id == rhs.id\n      && lhs.items == rhs.items\n      && lhs.modifierFlags.rawValue == rhs.modifierFlags.rawValue\n  }\n\n  func hash(into hasher: inout Hasher) {\n    hasher.combine(id)\n    hasher.combine(items)\n    hasher.combine(modifierFlags.rawValue)\n  }\n\n}\n"
  },
  {
    "path": "Maccy/PinsPosition.swift",
    "content": "import Foundation\nimport Defaults\n\nenum PinsPosition: String, CaseIterable, Identifiable, CustomStringConvertible, Defaults.Serializable {\n  case top\n  case bottom\n\n  var id: Self { self }\n\n  var description: String {\n    switch self {\n    case .top:\n      return NSLocalizedString(\"PinToTop\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .bottom:\n      return NSLocalizedString(\"PinToBottom\", tableName: \"AppearanceSettings\", comment: \"\")\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/PopupPosition.swift",
    "content": "import AppKit.NSEvent\nimport Defaults\nimport Foundation\n\nenum PopupPosition: String, CaseIterable, Identifiable, CustomStringConvertible, Defaults.Serializable {\n  case cursor\n  case statusItem\n  case window\n  case center\n  case lastPosition\n\n  var id: Self { self }\n\n  var description: String {\n    switch self {\n    case .cursor:\n      return NSLocalizedString(\"PopupAtCursor\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .statusItem:\n      return NSLocalizedString(\"PopupAtMenuBarIcon\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .window:\n      return NSLocalizedString(\"PopupAtWindowCenter\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .center:\n      return NSLocalizedString(\"PopupAtScreenCenter\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .lastPosition:\n      return NSLocalizedString(\"PopupAtLastPosition\", tableName: \"AppearanceSettings\", comment: \"\")\n    }\n  }\n\n  // swiftlint:disable:next cyclomatic_complexity\n  func origin(size: NSSize, statusBarButton: NSStatusBarButton?) -> NSPoint {\n    switch self {\n    case .center:\n      if let frame = NSScreen.forPopup?.visibleFrame {\n        return NSRect.centered(ofSize: size, in: frame).origin\n      }\n    case .window:\n      if let frame = NSWorkspace.shared.frontmostApplication?.windowFrame {\n        return NSRect.centered(ofSize: size, in: frame).origin\n      }\n    case .statusItem:\n      if let statusBarButton, let screen = NSScreen.main {\n        let rectInWindow = statusBarButton.convert(statusBarButton.bounds, to: nil)\n        if let screenRect = statusBarButton.window?.convertToScreen(rectInWindow) {\n          var topLeftPoint = NSPoint(x: screenRect.minX, y: screenRect.minY - size.height)\n          // Ensure that window doesn't spill over to the right screen.\n          if (topLeftPoint.x + size.width) > screen.frame.maxX {\n            topLeftPoint.x = screen.frame.maxX - size.width\n          }\n\n          return topLeftPoint\n        }\n      }\n    case .lastPosition:\n      if let frame = NSScreen.forPopup?.visibleFrame {\n        let relativePos = Defaults[.windowPosition]\n        let anchorX = frame.minX + frame.width * relativePos.x\n        let anchorY = frame.minY + frame.height * relativePos.y\n        // Anchor is top middle of frame\n        return NSPoint(x: anchorX - size.width / 2, y: anchorY - size.height)\n      }\n    default:\n      break\n    }\n\n    var point = NSEvent.mouseLocation\n    point.y -= size.height\n    return point\n  }\n}\n"
  },
  {
    "path": "Maccy/Search.swift",
    "content": "import AppKit\nimport Defaults\nimport Fuse\n\nclass Search {\n  enum Mode: String, CaseIterable, Identifiable, CustomStringConvertible, Defaults.Serializable {\n    case exact\n    case fuzzy\n    case regexp\n    case mixed\n\n    var id: Self { self }\n\n    var description: String {\n      switch self {\n      case .exact:\n        return NSLocalizedString(\"Exact\", tableName: \"GeneralSettings\", comment: \"\")\n      case .fuzzy:\n        return NSLocalizedString(\"Fuzzy\", tableName: \"GeneralSettings\", comment: \"\")\n      case .regexp:\n        return NSLocalizedString(\"Regex\", tableName: \"GeneralSettings\", comment: \"\")\n      case .mixed:\n        return NSLocalizedString(\"Mixed\", tableName: \"GeneralSettings\", comment: \"\")\n      }\n    }\n  }\n\n  struct SearchResult: Equatable {\n    var score: Double?\n    var object: Searchable\n    var ranges: [Range<String.Index>] = []\n  }\n\n  typealias Searchable = HistoryItemDecorator\n\n  private let fuse = Fuse(threshold: 0.7) // threshold found by trial-and-error\n  private let fuzzySearchLimit = 5_000\n\n  func search(string: String, within: [Searchable]) -> [SearchResult] {\n    guard !string.isEmpty else {\n      return within.map { SearchResult(object: $0) }\n    }\n\n    switch Defaults[.searchMode] {\n    case .mixed:\n      return mixedSearch(string: string, within: within)\n    case .regexp:\n      return simpleSearch(string: string, within: within, options: .regularExpression)\n    case .fuzzy:\n      return fuzzySearch(string: string, within: within)\n    default:\n      return simpleSearch(string: string, within: within, options: .caseInsensitive)\n    }\n  }\n\n  private func fuzzySearch(string: String, within: [Searchable]) -> [SearchResult] {\n    let pattern = fuse.createPattern(from: string)\n    let searchResults: [SearchResult] = within.compactMap { item in\n      fuzzySearch(for: pattern, in: item.title, of: item)\n    }\n    let sortedResults = searchResults.sorted(by: { ($0.score ?? 0) < ($1.score ?? 0) })\n    return sortedResults\n  }\n\n  private func fuzzySearch(\n    for pattern: Fuse.Pattern?,\n    in searchString: String,\n    of item: Searchable\n  ) -> SearchResult? {\n    var searchString = searchString\n    if searchString.count > fuzzySearchLimit {\n      // shortcut to avoid slow search\n      let stopIndex = searchString.index(searchString.startIndex, offsetBy: fuzzySearchLimit)\n      searchString = \"\\(searchString[...stopIndex])\"\n    }\n\n    if let fuzzyResult = fuse.search(pattern, in: searchString) {\n      return SearchResult(\n        score: fuzzyResult.score,\n        object: item,\n        ranges: fuzzyResult.ranges.map {\n          let startIndex = searchString.startIndex\n          let lowerBound = searchString.index(startIndex, offsetBy: $0.lowerBound)\n          let upperBound = searchString.index(startIndex, offsetBy: $0.upperBound + 1)\n\n          return lowerBound..<upperBound\n        }\n      )\n    } else {\n      return nil\n    }\n  }\n\n  private func simpleSearch(\n    string: String,\n    within: [Searchable],\n    options: NSString.CompareOptions\n  ) -> [SearchResult] {\n    return within.compactMap { simpleSearch(for: string, in: $0.title, of: $0, options: options) }\n  }\n\n  private func simpleSearch(\n    for string: String,\n    in searchString: String,\n    of item: Searchable,\n    options: NSString.CompareOptions\n  ) -> SearchResult? {\n    if let range = searchString.range(of: string, options: options, range: nil, locale: nil) {\n      return SearchResult(object: item, ranges: [range])\n    } else {\n      return nil\n    }\n  }\n\n  private func mixedSearch(string: String, within: [Searchable]) -> [SearchResult] {\n    var results = simpleSearch(string: string, within: within, options: .caseInsensitive)\n    guard results.isEmpty else {\n      return results\n    }\n\n    results = simpleSearch(string: string, within: within, options: .regularExpression)\n    guard results.isEmpty else {\n      return results\n    }\n\n    results = fuzzySearch(string: string, within: within)\n    guard results.isEmpty else {\n      return results\n    }\n\n    return []\n  }\n}\n"
  },
  {
    "path": "Maccy/SearchVisibility.swift",
    "content": "import Defaults\nimport Foundation\n\nenum SearchVisibility: String, CaseIterable, Identifiable, CustomStringConvertible, Defaults.Serializable {\n  case always\n  case duringSearch\n\n  var id: Self { self }\n\n  var description: String {\n    switch self {\n    case .always:\n      return NSLocalizedString(\"SearchVisibilityAlways\", tableName: \"AppearanceSettings\", comment: \"\")\n    case .duringSearch:\n      return NSLocalizedString(\"SearchVisibilityDuringSearch\", tableName: \"AppearanceSettings\", comment: \"\")\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Selection.swift",
    "content": "import AppKit\n\nstruct Selection<Item: Equatable> {\n  var items: [Item]\n\n  init(items: [Item] = []) {\n    self.items = items\n  }\n\n  var isEmpty: Bool {\n    return items.isEmpty\n  }\n\n  var count: Int {\n    return items.count\n  }\n\n  var first: Item? {\n    return items.first\n  }\n\n  func first(where condition: (Item) -> Bool) -> Item? {\n    return items.first(where: condition)\n  }\n\n  func forEach(_ body: (Int, Item) throws -> Void) rethrows {\n    try items.enumerated().forEach(body)\n  }\n\n  mutating func remove(_ item: Item) {\n    items.removeAll { $0 == item }\n  }\n\n  mutating func add(_ item: Item) {\n    items.append(item)\n  }\n}\n"
  },
  {
    "path": "Maccy/Settings/AdvancedSettingsPane.swift",
    "content": "import SwiftUI\nimport Defaults\n\nstruct AdvancedSettingsPane: View {\n  var body: some View {\n    VStack(alignment: .leading) {\n      Defaults.Toggle(key: .ignoreEvents) {\n        Text(\"TurnOff\", tableName: \"AdvancedSettings\")\n      }\n      Text(\"TurnOffDescription\", tableName: \"AdvancedSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n      Text(\"TurnOffShellScript\", tableName: \"AdvancedSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .font(.system(size: 11, design: .monospaced))\n        .controlSize(.small)\n        .padding(.vertical, 2)\n      Text(\"TurnOffViaMenuIconDescription\", tableName: \"AdvancedSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n      Text(\"TurnOffNextShellScript\", tableName: \"AdvancedSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .font(.system(size: 11, design: .monospaced))\n        .controlSize(.small)\n        .padding(.vertical, 2)\n\n      Divider()\n\n      Defaults.Toggle(key: .clearOnQuit) {\n        Text(\"ClearHistoryOnQuit\", tableName: \"AdvancedSettings\")\n      }.help(Text(\"ClearHistoryOnQuitTooltip\", tableName: \"AdvancedSettings\"))\n\n      Defaults.Toggle(key: .clearSystemClipboard) {\n        Text(\"ClearSystemClipboard\", tableName: \"AdvancedSettings\")\n      }.help(Text(\"ClearSystemClipboardTooltip\", tableName: \"AdvancedSettings\"))\n    }\n    .frame(minWidth: 350, maxWidth: 450)\n    .padding()\n  }\n}\n\n#Preview {\n  AdvancedSettingsPane()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/AppearanceSettingsPane.swift",
    "content": "import AppKit\nimport SwiftUI\nimport Defaults\nimport Settings\n\nstruct AppearanceSettingsPane: View {\n  @Default(.popupPosition) private var popupAt\n  @Default(.popupScreen) private var popupScreen\n  @Default(.pinTo) private var pinTo\n  @Default(.imageMaxHeight) private var imageHeight\n  @Default(.previewDelay) private var previewDelay\n  @Default(.highlightMatch) private var highlightMatch\n  @Default(.menuIcon) private var menuIcon\n  @Default(.showInStatusBar) private var showInStatusBar\n  @Default(.showSearch) private var showSearch\n  @Default(.searchVisibility) private var searchVisibility\n  @Default(.showFooter) private var showFooter\n  @Default(.windowPosition) private var windowPosition\n  @Default(.showApplicationIcons) private var showApplicationIcons\n\n  @State private var screens = NSScreen.screens\n\n  private let imageHeightFormatter: NumberFormatter = {\n    let formatter = NumberFormatter()\n    formatter.minimum = 1\n    formatter.maximum = 200\n    return formatter\n  }()\n\n  private let numberOfItemsFormatter: NumberFormatter = {\n    let formatter = NumberFormatter()\n    formatter.minimum = 0\n    formatter.maximum = 100\n    return formatter\n  }()\n\n  private let titleLengthFormatter: NumberFormatter = {\n    let formatter = NumberFormatter()\n    formatter.minimum = 30\n    formatter.maximum = 200\n    return formatter\n  }()\n\n  private let previewDelayFormatter: NumberFormatter = {\n    let formatter = NumberFormatter()\n    formatter.minimum = 200\n    formatter.maximum = 100_000\n    return formatter\n  }()\n\n  var body: some View {\n    Settings.Container(contentWidth: 650) {\n      Settings.Section(label: { Text(\"PopupAt\", tableName: \"AppearanceSettings\") }) {\n        HStack {\n          Picker(\"\", selection: $popupAt) {\n            ForEach(PopupPosition.allCases) { position in\n              if position == .center || position == .lastPosition, screens.count > 1 {\n                screenPicker(for: position)\n              } else {\n                Text(position.description)\n              }\n            }\n          }\n          .labelsHidden()\n          .frame(width: 141, alignment: .leading)\n          .help(Text(\"PopupAtTooltip\", tableName: \"AppearanceSettings\"))\n\n          if popupAt == .lastPosition {\n            Button {\n              _windowPosition.reset()\n            } label: {\n              Image(systemName: \"arrow.uturn.backward.circle.fill\")\n                .imageScale(.large)\n            }\n            .buttonStyle(.borderless)\n            .help(Text(\"PopupAtLastLocationReset\", tableName: \"AppearanceSettings\"))\n            .disabled(windowPosition == _windowPosition.defaultValue)\n          }\n        }\n      }\n\n      Settings.Section(label: { Text(\"PinTo\", tableName: \"AppearanceSettings\") }) {\n        Picker(\"\", selection: $pinTo) {\n          ForEach(PinsPosition.allCases) { position in\n            Text(position.description)\n          }\n        }\n        .labelsHidden()\n        .frame(width: 141, alignment: .leading)\n        .help(Text(\"PinToTooltip\", tableName: \"AppearanceSettings\"))\n      }\n\n      Settings.Section(label: { Text(\"ImageHeight\", tableName: \"AppearanceSettings\") }) {\n        HStack {\n          TextField(\"\", value: $imageHeight, formatter: imageHeightFormatter)\n            .frame(width: 120)\n            .help(Text(\"ImageHeightTooltip\", tableName: \"AppearanceSettings\"))\n          Stepper(\"\", value: $imageHeight, in: 1...200)\n            .labelsHidden()\n        }\n      }\n\n      Settings.Section(label: { Text(\"PreviewDelay\", tableName: \"AppearanceSettings\") }) {\n        HStack {\n          TextField(\"\", value: $previewDelay, formatter: previewDelayFormatter)\n            .frame(width: 120)\n            .help(Text(\"PreviewDelayTooltip\", tableName: \"AppearanceSettings\"))\n          Stepper(\"\", value: $previewDelay, in: 200...100_000)\n            .labelsHidden()\n        }\n      }\n\n      Settings.Section(\n        bottomDivider: true,\n        label: { Text(\"HighlightMatches\", tableName: \"AppearanceSettings\") }\n      ) {\n        Picker(\"\", selection: $highlightMatch) {\n          ForEach(HighlightMatch.allCases) { match in\n            Text(match.description)\n          }\n        }\n        .labelsHidden()\n        .frame(width: 141, alignment: .leading)\n        .help(Text(\"HighlightMatchesTooltip\", tableName: \"AppearanceSettings\"))\n      }\n\n      Settings.Section(title: \"\") {\n        Defaults.Toggle(key: .showSpecialSymbols) {\n          Text(\"ShowSpecialSymbols\", tableName: \"AppearanceSettings\")\n        }\n        .help(Text(\"ShowSpecialSymbolsTooltip\", tableName: \"AppearanceSettings\"))\n\n        HStack {\n          Defaults.Toggle(key: .showInStatusBar) {\n            Text(\"ShowMenuIcon\", tableName: \"AppearanceSettings\")\n          }\n\n          Picker(\"\", selection: $menuIcon) {\n            ForEach(MenuIcon.allCases) { icon in\n              Image(nsImage: icon.image)\n            }\n          }\n          .labelsHidden()\n          .scaledToFit()\n          .disabled(!showInStatusBar)\n          .controlSize(.small)\n        }\n\n        Defaults.Toggle(key: .showRecentCopyInMenuBar) {\n          Text(\"ShowRecentCopyInMenuBar\", tableName: \"AppearanceSettings\")\n        }\n        HStack {\n          Defaults.Toggle(key: .showSearch) {\n            Text(\"ShowSearchField\", tableName: \"AppearanceSettings\")\n          }\n\n          Picker(\"\", selection: $searchVisibility) {\n            ForEach(SearchVisibility.allCases) { type in\n              Text(type.description)\n            }\n          }\n          .labelsHidden()\n          .scaledToFit()\n          .disabled(!showSearch)\n          .controlSize(.small)\n        }\n        Defaults.Toggle(key: .showTitle) {\n          Text(\"ShowTitleBeforeSearchField\", tableName: \"AppearanceSettings\")\n        }\n        Defaults.Toggle(key: .showApplicationIcons) {\n          Text(\"ShowApplicationIcons\", tableName: \"AppearanceSettings\")\n        }\n\n        Defaults.Toggle(key: .showFooter) {\n          Text(\"ShowFooter\", tableName: \"AppearanceSettings\")\n        }\n        Text(\"OpenPreferencesWarning\", tableName: \"AppearanceSettings\")\n          .opacity(showFooter ? 0 : 1)\n          .controlSize(.small)\n          .foregroundStyle(.gray)\n      }\n    }\n    .onReceive(NotificationCenter.default.publisher(for: NSApplication.didChangeScreenParametersNotification)) { _ in\n      screens = NSScreen.screens\n    }\n  }\n\n  @ViewBuilder\n  private func screenPicker(for position: PopupPosition) -> some View {\n    let screenBinding: Binding<Int> = Binding {\n      return popupScreen\n    } set: {\n      popupScreen = $0\n      popupAt = position\n    }\n\n    Picker(selection: screenBinding) {\n      Text(labelForScreen(index: 0))\n        .tag(0)\n\n      ForEach(screens.indices, id: \\.self) { index in\n        Text(labelForScreen(index: index + 1))\n          .tag(index + 1)\n      }\n    } label: {\n      if popupAt == position {\n        Text(\"\\(position.description) (\\(labelForScreen(index: popupScreen)))\")\n      } else {\n        Text(position.description)\n      }\n    }\n  }\n\n  private func labelForScreen(index screenIndex: Int) -> String {\n    switch screenIndex {\n    case 0:\n      return String(localized: \"ActiveScreen\", table: \"AppearanceSettings\")\n    case _:\n      return screens[screenIndex - 1].localizedName\n    }\n  }\n}\n\n#Preview {\n  AppearanceSettingsPane()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/GeneralSettingsPane.swift",
    "content": "import SwiftUI\nimport Defaults\nimport KeyboardShortcuts\nimport LaunchAtLogin\nimport Settings\n\nstruct GeneralSettingsPane: View {\n  private let notificationsURL = URL(\n    string: \"x-apple.systempreferences:com.apple.preference.notifications?id=\\(Bundle.main.bundleIdentifier ?? \"\")\"\n  )\n\n  @Default(.searchMode) private var searchMode\n\n  @State private var copyModifier = HistoryItemAction.copy.modifierFlags.description\n  @State private var pasteModifier = HistoryItemAction.paste.modifierFlags.description\n  @State private var pasteWithoutFormatting = HistoryItemAction.pasteWithoutFormatting.modifierFlags.description\n\n  @State private var updater = SoftwareUpdater()\n\n  var body: some View {\n    Settings.Container(contentWidth: 450) {\n      Settings.Section(title: \"\", bottomDivider: true) {\n        LaunchAtLogin.Toggle {\n          Text(\"LaunchAtLogin\", tableName: \"GeneralSettings\")\n        }\n        Toggle(isOn: $updater.automaticallyChecksForUpdates) {\n          Text(\"CheckForUpdates\", tableName: \"GeneralSettings\")\n        }\n        Button(\n          action: { updater.checkForUpdates() },\n          label: { Text(\"CheckNow\", tableName: \"GeneralSettings\") }\n        )\n      }\n\n      Settings.Section(label: { Text(\"Open\", tableName: \"GeneralSettings\") }) {\n        KeyboardShortcuts.Recorder(for: .popup, onChange: { newShortcut in\n          if newShortcut == nil {\n            // No shortcut is recorded. Remove keys monitor\n            AppState.shared.popup.deinitEventsMonitor()\n          } else {\n            // User is using shortcut. Ensure keys monitor is initialized\n            AppState.shared.popup.initEventsMonitor()\n          }\n        })\n          .help(Text(\"OpenTooltip\", tableName: \"GeneralSettings\"))\n      }\n\n      Settings.Section(label: { Text(\"Pin\", tableName: \"GeneralSettings\") }) {\n        KeyboardShortcuts.Recorder(for: .pin)\n          .help(Text(\"PinTooltip\", tableName: \"GeneralSettings\"))\n      }\n      Settings.Section(label: { Text(\"Delete\", tableName: \"GeneralSettings\") }\n      ) {\n        KeyboardShortcuts.Recorder(for: .delete)\n          .help(Text(\"DeleteTooltip\", tableName: \"GeneralSettings\"))\n      }\n      Settings.Section(\n        bottomDivider: true,\n        label: { Text(\"ShowPreview\", tableName: \"GeneralSettings\") }\n      ) {\n        KeyboardShortcuts.Recorder(for: .togglePreview)\n          .help(Text(\"ShowPreviewTooltip\", tableName: \"GeneralSettings\"))\n      }\n\n      Settings.Section(\n        bottomDivider: true,\n        label: { Text(\"Search\", tableName: \"GeneralSettings\") }\n      ) {\n        Picker(\"\", selection: $searchMode) {\n          ForEach(Search.Mode.allCases) { mode in\n            Text(mode.description)\n          }\n        }\n        .labelsHidden()\n        .frame(width: 180, alignment: .leading)\n      }\n\n      Settings.Section(\n        bottomDivider: true,\n        label: { Text(\"Behavior\", tableName: \"GeneralSettings\") }\n      ) {\n        Defaults.Toggle(key: .pasteByDefault) {\n          Text(\"PasteAutomatically\", tableName: \"GeneralSettings\")\n        }\n        .onChange(refreshModifiers)\n        .fixedSize()\n\n        Defaults.Toggle(key: .removeFormattingByDefault) {\n          Text(\"PasteWithoutFormatting\", tableName: \"GeneralSettings\")\n        }\n        .onChange(refreshModifiers)\n        .fixedSize()\n\n        Text(String(\n          format: NSLocalizedString(\"Modifiers\", tableName: \"GeneralSettings\", comment: \"\"),\n          copyModifier, pasteModifier, pasteWithoutFormatting\n        ))\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n      }\n\n      Settings.Section(title: \"\") {\n        if let notificationsURL = notificationsURL {\n          Link(destination: notificationsURL, label: {\n            Text(\"NotificationsAndSounds\", tableName: \"GeneralSettings\")\n          })\n        }\n      }\n    }\n  }\n\n  private func refreshModifiers(_ sender: Sendable) {\n    copyModifier = HistoryItemAction.copy.modifierFlags.description\n    pasteModifier = HistoryItemAction.paste.modifierFlags.description\n    pasteWithoutFormatting = HistoryItemAction.pasteWithoutFormatting.modifierFlags.description\n  }\n}\n\n#Preview {\n  GeneralSettingsPane()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/IgnoreSettingsPane/IgnoreApplicationsSettingsView.swift",
    "content": "import SwiftUI\nimport Defaults\n\nstruct IgnoreApplicationsSettingsView: View {\n  @Default(.ignoredApps) private var ignoredApps\n\n  @State private var isAdding = false\n  @State private var selection = \"\"\n\n  var body: some View {\n    VStack(alignment: .leading) {\n      List(selection: $selection) {\n        ForEach($ignoredApps) { $app in\n          if let url = NSWorkspace.shared.urlForApplication(withBundleIdentifier: app) {\n            Label(\n              title: {\n                Text(NSWorkspace.shared.applicationName(url: url))\n                  .padding(.horizontal, 5)\n              },\n              icon: {\n                Image(nsImage: NSWorkspace.shared.icon(forFile: url.path))\n              }\n            ).frame(height: 32).padding(.horizontal, 5)\n          } else {\n            Label(\n              title: { Text(app).padding(.horizontal, 5) },\n              icon: { Image(systemName: \"questionmark.circle\").imageScale(.large) }\n            ).frame(height: 32).padding(.horizontal, 5)\n          }\n        }\n      }.onDeleteCommand {\n        remove(selection)\n      }\n\n      HStack {\n        ControlGroup {\n          Button(\"\", systemImage: \"plus\") {\n            isAdding = true\n          }\n\n          Button(\"\", systemImage: \"minus\") {\n            remove(selection)\n          }\n        }\n        .frame(width: 50)\n        .fileDialogDefaultDirectory(URL(string: \"/Applications\"))\n        .fileImporter(\n          isPresented: $isAdding,\n          allowedContentTypes: [.application]\n        ) { result in\n          switch result {\n          case .success(let appUrl):\n            if let bundle = Bundle(path: appUrl.path),\n               let bundleIdentifier = bundle.bundleIdentifier,\n               !ignoredApps.contains(bundleIdentifier) {\n              ignoredApps.append(bundleIdentifier)\n            }\n          case .failure(let error):\n            print(\"Failed to select application: \\(error)\")\n          }\n        }\n\n        Defaults.Toggle(key: .ignoreAllAppsExceptListed) {\n          Text(\"IgnoredAllAppsExceptListed\", tableName: \"IgnoreSettings\")\n        }\n      }\n\n      Text(\"IgnoredAppsDescription\", tableName: \"IgnoreSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n    }.padding()\n  }\n\n  private func remove(_ app: String?) {\n    guard let app else { return }\n\n    ignoredApps.removeAll(where: { $0 == app })\n  }\n}\n\n#Preview {\n  IgnoreApplicationsSettingsView()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/IgnoreSettingsPane/IgnorePasteboardTypesSettingsView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nstruct IgnorePasteboardTypesSettingsView: View {\n  @Default(.ignoredPasteboardTypes) private var ignoredPasteboardTypes\n\n  @FocusState private var focus: String.ID?\n  @State private var edit = \"\"\n  @State private var selection = \"\"\n\n  var body: some View {\n    VStack(alignment: .leading) {\n      List(selection: $selection) {\n        ForEach(ignoredPasteboardTypes.sorted()) { type in\n          TextField(\"\", text: Binding(\n            get: { type },\n            set: {\n              guard !$0.isEmpty, type != $0 else { return }\n              edit = $0\n            })\n          )\n          .onSubmit {\n            remove(type)\n            ignoredPasteboardTypes.insert(edit)\n          }\n          .focused($focus, equals: type)\n        }\n      }\n      .onDeleteCommand {\n        remove(selection)\n      }\n\n      HStack {\n        ControlGroup {\n          Button(\"\", systemImage: \"plus\") {\n            ignoredPasteboardTypes.insert(\"xxx.yyy.zzz\")\n            focus = \"xxx.yyy.zzz\"\n          }\n          Button(\"\", systemImage: \"minus\") {\n            remove(selection)\n          }\n        }\n        .frame(width: 50)\n\n        Spacer()\n\n        Button {\n          Defaults.reset(.ignoredPasteboardTypes)\n        } label: {\n          Text(\"IgnoredPasteboardTypesReset\", tableName: \"IgnoreSettings\")\n        }\n      }\n\n      Text(\"IgnoredPasteboardTypesDescription\", tableName: \"IgnoreSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n    }\n    .padding()\n  }\n\n  private func remove(_ type: String?) {\n    guard let type else { return }\n\n    ignoredPasteboardTypes.remove(type)\n  }\n}\n\n#Preview {\n  IgnorePasteboardTypesSettingsView()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/IgnoreSettingsPane/IgnoreRegexpsSettingsView.swift",
    "content": "import SwiftUI\nimport Defaults\n\nstruct IgnoreRegexpsSettingsView: View {\n  @Default(.ignoreRegexp) private var ignoredRegexps\n\n  @FocusState private var focus: String.ID?\n  @State private var edit = \"\"\n  @State private var selection = \"\"\n\n  var body: some View {\n    VStack(alignment: .leading) {\n      List(selection: $selection) {\n        ForEach(ignoredRegexps) { regexp in\n          TextField(\"\", text: Binding(\n            get: { regexp },\n            set: {\n              guard !$0.isEmpty, regexp != $0 else { return }\n              edit = $0\n            })\n          ).onSubmit {\n            remove(regexp)\n            ignoredRegexps.append(edit)\n          }.focused($focus, equals: regexp)\n        }\n      }.onDeleteCommand {\n        remove(selection)\n      }\n\n      ControlGroup {\n        Button(\"\", systemImage: \"plus\") {\n          ignoredRegexps.append(\"^[a-zA-Z0-9]{50}$\")\n          focus = \"^[a-zA-Z0-9]{50}$\"\n        }\n        Button(\"\", systemImage: \"minus\") {\n          remove(selection)\n        }\n      }.frame(width: 50)\n\n      Text(\"IgnoredRegexpsDescription\", tableName: \"IgnoreSettings\")\n        .fixedSize(horizontal: false, vertical: true)\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n    }.padding()\n  }\n\n  private func remove(_ regexp: String?) {\n    guard let regexp else { return }\n\n    ignoredRegexps.removeAll(where: { $0 == regexp })\n  }\n}\n\n#Preview {\n  IgnoreRegexpsSettingsView()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/IgnoreSettingsPane.swift",
    "content": "import SwiftUI\n\nstruct IgnoreSettingsPane: View {\n  var body: some View {\n    TabView {\n      IgnoreApplicationsSettingsView()\n        .tabItem {\n          Text(\"ApplicationsTab\", tableName: \"IgnoreSettings\")\n        }\n      IgnorePasteboardTypesSettingsView()\n        .tabItem {\n          Text(\"PasteboardTypesTab\", tableName: \"IgnoreSettings\")\n        }\n      IgnoreRegexpsSettingsView()\n        .tabItem {\n          Text(\"RegexpTab\", tableName: \"IgnoreSettings\")\n        }\n    }\n    .frame(maxWidth: 500, minHeight: 400)\n    .padding()\n  }\n}\n\n#Preview {\n  IgnoreSettingsPane()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/PinsSettingsPane.swift",
    "content": "import SwiftData\nimport SwiftUI\n\nstruct PinPickerView: View {\n  @Bindable var item: HistoryItem\n  var availablePins: [String]\n\n  var body: some View {\n    if let pin = item.pin {\n      // Ensure unique pins for ForEach\n      let uniquePins = Array(Set(availablePins + [pin])).sorted()\n      Picker(\"\", selection: $item.pin) {\n        ForEach(uniquePins, id: \\.self) { pin in\n          Text(pin)\n            .tag(pin as String?)\n        }\n      }\n      .controlSize(.small)\n      .labelsHidden()\n    }\n  }\n}\n\nstruct PinTitleView: View {\n  @Bindable var item: HistoryItem\n\n  var body: some View {\n    TextField(\"\", text: $item.title)\n  }\n}\n\nstruct PinValueView: View {\n  @Bindable var item: HistoryItem\n  @State private var editableValue: String\n  @State private var isTextContent: Bool\n  @State private var isRichText: Bool\n  @FocusState private var isEditing: Bool\n  @State private var showWarningPopover: Bool = false\n\n  init(item: HistoryItem) {\n    self.item = item\n    self._editableValue = State(initialValue: item.previewableText)\n\n    // Check if this item has editable text content\n    let hasPlainText = item.text != nil\n    let hasImage = item.image != nil\n    let hasFileURLs = !item.fileURLs.isEmpty\n    let hasRichText = item.rtf != nil || item.html != nil\n\n    // Consider it text content only if it has plain text and doesn't have images or file URLs\n    self._isTextContent = State(initialValue: hasPlainText && !hasImage && !hasFileURLs)\n    self._isRichText = State(initialValue: hasRichText && !hasImage && !hasFileURLs)\n  }\n\n  var body: some View {\n    Group {\n      if isTextContent || isRichText {\n        ZStack(alignment: .trailing) {\n          TextField(\"\", text: $editableValue)\n            .focused($isEditing)\n            .onSubmit {\n              updateItemContent()\n            }\n            .onChange(of: editableValue) { _, _ in\n              updateItemContent()\n            }\n            .padding(.trailing, isRichText ? 40 : 0) // increased space for icon\n\n          if isRichText && isEditing {\n            HStack(spacing: 0) {\n              Spacer(minLength: 0)\n              Image(systemName: \"exclamationmark.triangle.fill\")\n                .foregroundColor(.orange)\n                .help(Text(\"RichTextEditWarning\", tableName: \"PinsSettings\"))\n              Spacer().frame(width: 4)\n            }\n            .frame(maxHeight: .infinity, alignment: .center)\n            .padding(.trailing, 4)\n          }\n        }\n      } else {\n        // Non-editable display for non-text content\n        Text(\"ContentIsNotText\", tableName: \"PinsSettings\")\n          .foregroundStyle(.secondary)\n          .italic()\n      }\n    }\n  }\n\n  private func updateItemContent() {\n    // Only update if we're dealing with text or rich text content\n    guard isTextContent || isRichText else { return }\n\n    // Remove all non-plain-text content\n    let stringType = NSPasteboard.PasteboardType.string.rawValue\n    item.contents.removeAll { $0.type != stringType }\n\n    // Update or add the plain text content\n    if let index = item.contents.firstIndex(where: { $0.type == stringType }) {\n      if let data = editableValue.data(using: .utf8) {\n        item.contents[index].value = data\n      }\n    } else {\n      if let data = editableValue.data(using: .utf8) {\n        let newContent = HistoryItemContent(type: stringType, value: data)\n        item.contents.append(newContent)\n      }\n    }\n    // We don't automatically update title here since we want to preserve\n    // OCR-extracted titles for images and other non-text content\n  }\n}\n\nstruct PinsSettingsPane: View {\n  @Environment(AppState.self) private var appState\n  @Environment(\\.modelContext) private var modelContext\n\n  @Query(filter: #Predicate<HistoryItem> { $0.pin != nil }, sort: \\.firstCopiedAt)\n  private var items: [HistoryItem]\n\n  @State private var availablePins: [String] = []\n  @State private var selection: PersistentIdentifier?\n\n  var body: some View {\n    VStack(alignment: .leading) {\n      Table(items, selection: $selection) {\n        TableColumn(Text(\"Key\", tableName: \"PinsSettings\")) { item in\n          PinPickerView(item: item, availablePins: availablePins)\n            .onChange(of: item.pin) {\n              availablePins = HistoryItem.availablePins\n            }\n        }\n        .width(60)\n\n        TableColumn(Text(\"Alias\", tableName: \"PinsSettings\")) { item in\n          PinTitleView(item: item)\n        }\n\n        TableColumn(Text(\"Content\", tableName: \"PinsSettings\")) { item in\n          PinValueView(item: item)\n        }\n      }\n      .onAppear {\n        availablePins = HistoryItem.availablePins\n      }\n      .onDeleteCommand {\n        guard let selection,\n              let item = appState.history.items.first(where: { $0.item.id == selection }) else {\n          return\n        }\n\n        appState.history.delete(item)\n      }\n\n      Text(\"PinCustomizationDescription\", tableName: \"PinsSettings\")\n        .foregroundStyle(.gray)\n        .controlSize(.small)\n    }\n    .frame(minWidth: 500, minHeight: 400)\n    .padding()\n  }\n}\n\n#Preview {\n  return PinsSettingsPane()\n    .environment(\\.locale, .init(identifier: \"en\"))\n    .modelContainer(Storage.shared.container)\n}\n"
  },
  {
    "path": "Maccy/Settings/StorageSettingsPane.swift",
    "content": "import SwiftUI\nimport Defaults\nimport Settings\n\nstruct StorageSettingsPane: View {\n  @Observable\n  class ViewModel {\n    var saveFiles = false {\n      didSet {\n        Defaults.withoutPropagation {\n          if saveFiles {\n            Defaults[.enabledPasteboardTypes].formUnion(StorageType.files.types)\n          } else {\n            Defaults[.enabledPasteboardTypes].subtract(StorageType.files.types)\n          }\n        }\n      }\n    }\n\n    var saveImages = false {\n      didSet {\n        Defaults.withoutPropagation {\n          if saveImages {\n            Defaults[.enabledPasteboardTypes].formUnion(StorageType.images.types)\n          } else {\n            Defaults[.enabledPasteboardTypes].subtract(StorageType.images.types)\n          }\n        }\n      }\n    }\n\n    var saveText = false {\n      didSet {\n        Defaults.withoutPropagation {\n          if saveText {\n            Defaults[.enabledPasteboardTypes].formUnion(StorageType.text.types)\n          } else {\n            Defaults[.enabledPasteboardTypes].subtract(StorageType.text.types)\n          }\n        }\n      }\n    }\n\n    private var observer: Defaults.Observation?\n\n    init() {\n      observer = Defaults.observe(.enabledPasteboardTypes) { change in\n        self.saveFiles = change.newValue.isSuperset(of: StorageType.files.types)\n        self.saveImages = change.newValue.isSuperset(of: StorageType.images.types)\n        self.saveText = change.newValue.isSuperset(of: StorageType.text.types)\n      }\n    }\n\n    deinit {\n      observer?.invalidate()\n    }\n  }\n\n  @Default(.size) private var size\n  @Default(.sortBy) private var sortBy\n\n  @State private var viewModel = ViewModel()\n  @State private var storageSize = Storage.shared.size\n\n  private let sizeFormatter: NumberFormatter = {\n    let formatter = NumberFormatter()\n    formatter.minimum = 1\n    formatter.maximum = 999\n    return formatter\n  }()\n\n  var body: some View {\n    Settings.Container(contentWidth: 450) {\n      Settings.Section(\n        bottomDivider: true,\n        label: { Text(\"Save\", tableName: \"StorageSettings\") }\n      ) {\n        Toggle(\n          isOn: $viewModel.saveFiles,\n          label: { Text(\"Files\", tableName: \"StorageSettings\") }\n        )\n        Toggle(\n          isOn: $viewModel.saveImages,\n          label: { Text(\"Images\", tableName: \"StorageSettings\") }\n        )\n        Toggle(\n          isOn: $viewModel.saveText,\n          label: { Text(\"Text\", tableName: \"StorageSettings\") }\n        )\n        Text(\"SaveDescription\", tableName: \"StorageSettings\")\n          .controlSize(.small)\n          .foregroundStyle(.gray)\n      }\n\n      Settings.Section(label: { Text(\"Size\", tableName: \"StorageSettings\") }) {\n        HStack {\n          TextField(\"\", value: $size, formatter: sizeFormatter)\n            .frame(width: 80)\n            .help(Text(\"SizeTooltip\", tableName: \"StorageSettings\"))\n          Stepper(\"\", value: $size, in: 1...999)\n            .labelsHidden()\n          Text(storageSize)\n            .controlSize(.small)\n            .foregroundStyle(.gray)\n            .help(Text(\"CurrentSizeTooltip\", tableName: \"StorageSettings\"))\n            .onAppear {\n              storageSize = Storage.shared.size\n            }\n        }\n      }\n\n      Settings.Section(label: { Text(\"SortBy\", tableName: \"StorageSettings\") }) {\n        Picker(\"\", selection: $sortBy) {\n          ForEach(Sorter.By.allCases) { mode in\n            Text(mode.description)\n          }\n        }\n        .labelsHidden()\n        .frame(width: 160, alignment: .leading)\n        .help(Text(\"SortByTooltip\", tableName: \"StorageSettings\"))\n      }\n    }\n  }\n}\n\n#Preview {\n  StorageSettingsPane()\n    .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Settings/ar.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"متقدم\";\n\"TurnOff\" = \"إيقاف\";\n\"TurnOffDescription\" = \"تجاهل جميع النسخ الجديدة مؤقتًا.\\nمن المرجح أن تستخدمه برمجيًا وتعطل التطبيق أثناء نسخ البيانات الحساسة.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\nنسخ البيانات #\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"يمكنك أيضًا النقر على أيقونة القائمة مع ⌥ مضغوط.\\nلتجاهل النسخة التالية فقط، انقر بـ ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\nنسخ البيانات #\";\n\"ClearHistoryOnQuit\" = \"مسح السجل عند الخروج\";\n\"ClearHistoryOnQuitTooltip\" = \"إزالة جميع العناصر غير المثبتة تلقائيًا قبل إغلاق التطبيق.\";\n\"ClearSystemClipboard\" = \"مسح حافظة النظام أيضًا\";\n\"ClearSystemClipboardTooltip\" = \"عند التمكين، سيؤدي مسح السجل أيضًا إلى مسح حافظة النظام الحالية.\";\n"
  },
  {
    "path": "Maccy/Settings/ar.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"المظهر\";\n\"PopupAt\" = \"ظهور الإنبثاق عند:\";\n\"PopupAtCursor\" = \"المؤشر\";\n\"PopupAtMenuBarIcon\" = \"أيقونة القائمة\";\n\"PopupAtWindowCenter\" = \"مركز النافذة\";\n\"PopupAtScreenCenter\" = \"مركز الشاشة\";\n\"PopupAtLastPosition\" = \"الموضع الأخير\";\n\"PopupAtLastLocationReset\" = \"إعادة تعيين الموضع\";\n\"PopupAtTooltip\" = \"تغيير موقع ظهور الإنبثاق.\\nالافتراضي: المؤشر.\";\n\"SearchVisibilityAlways\" = \"دائمًا\";\n\"SearchVisibilityDuringSearch\" = \"أثناء البحث\";\n\"ActiveScreen\" = \"شاشة نشطة\";\n\"PinTo\" = \"تثبيت إلى:\";\n\"PinToTop\" = \"الأعلى\";\n\"PinToBottom\" = \"الأسفل\";\n\"PinToTooltip\" = \"تغيير موقع العناصر المثبتة.\\nالافتراضي: الأعلى.\";\n\"ImageHeight\" = \"ارتفاع الصورة:\";\n\"ImageHeightTooltip\" = \"أقصى ارتفاع معاينة الصورة.\\nالافتراضي: 40.\\nتلميح: قم بتعيينه إلى 16 ليبدو مثل عناصر النص.\";\n\"PreviewDelay\" = \"تأخير المعاينة:\";\n\"PreviewDelayTooltip\" = \"التأخير بالميللي ثانية حتى يتم عرض معاينة النافذة المنبثقة.\\nالافتراضي: 1500.\";\n\"HighlightMatches\" = \"تسليط الضوء على التطابقات:\";\n\"HighlightMatchColor\" = \"اللون\";\n\"HighlightMatchBold\" = \"عريض\";\n\"HighlightMatchItalic\" = \"مائل\";\n\"HighlightMatchUnderline\" = \"تسطير\";\n\"HighlightMatchesTooltip\" = \"تغيير نمط التميز للبحث عن المطابقات.\\nالافتراضي: عريض.\";\n\"ShowSpecialSymbols\" = \"إظهار الرموز الخاصة\";\n\"ShowSpecialSymbolsTooltip\" = \"إظهار الأسطر الجديدة، علامات التبويب، المسافات الأمامية والخلفية عبر الرموز الخاصة.\";\n\"ShowMenuIcon\" = \"إظهار أيقونة القائمة\";\n\"ShowRecentCopyInMenuBar\" = \"إظهار النسخة الأخيرة بجوار أيقونة القائمة\";\n\"ShowSearchField\" = \"إظهار حقل البحث\";\n\"ShowTitleBeforeSearchField\" = \"إظهار العنوان قبل حقل البحث\";\n\"ShowFooter\" = \"إظهار التذييل\";\n\"ShowApplicationIcons\" = \"إظهار أيقونات التطبيقات\";\n\"OpenPreferencesWarning\" = \"⚠️ اضغط على ⌘، (command+comma) لفتح التفضيلات عندما يكون التذييل مخفيًا.\";\n"
  },
  {
    "path": "Maccy/Settings/ar.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"عام\";\n\"LaunchAtLogin\" = \"التشغيل عند تسجيل الدخول\";\n\"CheckForUpdates\" = \"التحقق من التحديثات تلقائيًا\";\n\"CheckNow\" = \"التحقق الآن\";\n\"Open\" = \"فتح:\";\n\"OpenTooltip\" = \"مفتاح الاختصار العام لفتح التطبيق.\\nسيؤدي الضغط المتكرر على المفتاح الرئيسي أثناء الضغط باستمرار على مفاتيح التعديل إلى تحديد العنصر التالي في القائمة. في هذا الوضع، سيؤدي تحرير مفاتيح التعديل إلى تأكيد التحديد وإغلاق النافذة المنبثقة.\\nالوضع الافتراضي: ⇧⌘C.\";\n\"Pin\" = \"تثبيت:\";\n\"PinTooltip\" = \"مفتاح الاختصار لتثبيت عنصر السجل.\\nالافتراضي: %@P.\";\n\"Delete\" = \"حذف:\";\n\"DeleteTooltip\" = \"مفتاح الاختصار لحذف عنصر السجل.\\nالافتراضي: %@⌫.\";\n\"ShowPreview\" = \"معاينة:\";\n\"ShowPreviewTooltip\" = \"إظهار المعاينة مع معلومات إضافية.\\nالافتراضي: ⌃Space.\";\n\"Behavior\" = \"الإجراء:\";\n\"PasteAutomatically\" = \"لصق تلقائيًا\";\n\"PasteWithoutFormatting\" = \"لصق بدون تنسيق\";\n\"Modifiers\" = \"تخصيص الإجراء عند تحديد العنصر:\\n• حدد مع %@ ضغط لنسخ العنصر.\\n• حدد مع %@ ضغط لنسخ ولصق العنصر.\\n• حدد مع %@ ضغط لنسخ، مسح التنسيق ولصق العنصر.\";\n\"Search\" = \"البحث:\";\n\"Exact\" = \"دقيق\";\n\"Fuzzy\" = \"غامض\";\n\"Regex\" = \"التعبيرات العادية\";\n\"Mixed\" = \"مختلط\";\n\"NotificationsAndSounds\" = \"الإشعارات والأصوات 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/ar.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"تجاهل\";\n\"ApplicationsTab\" = \"التطبيقات\";\n\"IgnoredAppsDescription\" = \"من الممكن تجاهل النسخ القادمة من بعض التطبيقات.\\nيرجى ملاحظة أن الطريقة التي تعمل بها ليست مضمونة بنسبة 100٪، لذا من الأفضل استخدام أنواع الحافظة عند الإمكان.\";\n\"IgnoredAllAppsExceptListed\" = \"تجاهل جميع التطبيقات ما عدا المُدرجة\";\n\"PasteboardTypesTab\" = \"أنواع الحافظة\";\n\"IgnoredPasteboardTypesDescription\" = \"من الممكن تجاهل بعض أنواع عناصر الحافظة من التذكر.\\nبشكل افتراضي، تم تحديد بعض الأنواع المعروفة المحددة للتطبيق. يمكنك إزالتها وإضافة أي أنواع مخصصة ترغب فيها.\";\n\"IgnoredPasteboardTypesReset\" = \"إعادة تعيين\";\n\"RegexpTab\" = \"التعبيرات العادية\";\n\"IgnoredRegexpsDescription\" = \"من الممكن تجاهل بعض النسخ من التذكر استنادًا إلى التعبيرات العادية المحددة.\";\n"
  },
  {
    "path": "Maccy/Settings/ar.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"مثبتة\";\n\"Key\" = \"المفتاح\";\n\"Alias\" = \"العنوان\";\n\"Content\" = \"المحتوى\";\n\"ContentIsNotText\" = \"محتوى غير قابل للتحرير (صورة أو ملف)\";\n\"RichTextEditWarning\" = \"سيؤدي التحرير إلى تجاهل جميع التنسيقات.\";\n\"PinCustomizationDescription\" = \"يمكنك تخصيص مفتاح الاختصار، والعنوان، ومحتوى أي عنصر مثبت. للتعديل، انقر نقرًا مزدوجًا فوق العنصر وأدخل قيمة جديدة.\\nيرجى ملاحظة أنه يمكن تغيير النص العادي فقط.\";\n"
  },
  {
    "path": "Maccy/Settings/ar.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"التخزين\";\n\"Save\" = \"حفظ:\";\n\"Files\" = \"الملفات\";\n\"Images\" = \"الصور\";\n\"Text\" = \"النصوص\";\n\"SaveDescription\" = \"تغيير أنواع المحتوى المنسوخة التي يجب حفظها.\";\n\"Size\" = \"الحجم:\";\n\"SizeTooltip\" = \"عدد عناصر التاريخ للحفاظ عليها.\\nالافتراضي: 200.\";\n\"CurrentSizeTooltip\" = \"الحجم الحالي على القرص.\";\n\"SortBy\" = \"الترتيب حسب:\";\n\"LastCopiedAt\" = \"وقت النسخة الأخيرة\";\n\"FirstCopiedAt\" = \"وقت النسخة الأولى\";\n\"NumberOfCopies\" = \"عدد النسخ\";\n\"SortByTooltip\" = \"الافتراضي: وقت النسخة الأخيرة.\";\n"
  },
  {
    "path": "Maccy/Settings/be.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Прасунутыя\";\n\"TurnOff\" = \"Выключыць\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# капіяваць дадзеныя\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# капіяваць дадзеныя\";\n\"ClearHistoryOnQuit\" = \"Ачысціць гісторыю пры зачыненні\";\n\"ClearSystemClipboard\" = \"Таксама ачысціць сістэмны буфер абмену\";\n\"ClearSystemClipboardTooltip\" = \"Калі гэты параметр улучаны, ачыстка гісторыі таксама ачысціць бягучы сістэмны буфер абмену.\";\n\"TurnOffDescription\" = \"Часова ігнараваць усе новыя капіяванні.\\nВы можаце скарыстаць гэту наладу праграмна і адключыць дадатак на час капіявання прыватных дадзеных.\";\n\"TurnOffViaMenuIconDescription\" = \"Вы таксама можаце клікнуць значок меню з націснутым ⌥.\\nКаб ігнараваць толькі наступную копію, клікніце з ⌥⇧.\";\n\"ClearHistoryOnQuitTooltip\" = \"Аўтаматычна падаляць усе незамацаваныя запісы перад зачыненнем дадатку.\";\n"
  },
  {
    "path": "Maccy/Settings/be.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Выгляд\";\n\"PopupAtMenuBarIcon\" = \"Значка меню\";\n\"PopupAtWindowCenter\" = \"Цэнтра акна\";\n\"PopupAtScreenCenter\" = \"Цэнтра экрану\";\n\"PopupAtLastLocationReset\" = \"Скінуць пазіцыю\";\n\"PopupAtLastPosition\" = \"Апошняй пазіцыіі\";\n\"SearchVisibilityDuringSearch\" = \"Падчас пошуку\";\n\"ActiveScreen\" = \"Актыўны экран\";\n\"PinToTop\" = \"Верху\";\n\"PinToBottom\" = \"Нізу\";\n\"ImageHeight\" = \"Вышыня выяў:\";\n\"PreviewDelay\" = \"Затрымка прадпрагляду:\";\n\"HighlightMatches\" = \"Вылучыць супадзенні:\";\n\"HighlightMatchBold\" = \"Тоўсты\";\n\"HighlightMatchItalic\" = \"Курсіў\";\n\"HighlightMatchUnderline\" = \"Падкрэслены\";\n\"ShowSpecialSymbols\" = \"Паказваць адмысловыя знакі\";\n\"ShowMenuIcon\" = \"Паказваць значок меню\";\n\"ShowRecentCopyInMenuBar\" = \"Паказваць апошні элемент поруч з значком меню\";\n\"ShowFooter\" = \"Паказваць ніжні калонтытул\";\n\"PopupAt\" = \"Усплываць каля:\";\n\"PopupAtCursor\" = \"Курсору\";\n\"SearchVisibilityAlways\" = \"Заўсёды\";\n\"PinTo\" = \"Замацаваць да:\";\n\"PinToTooltip\" = \"Змяніць месца замацаваных элементаў.\\nПадставова: Верх.\";\n\"HighlightMatchColor\" = \"Колер\";\n\"OpenPreferencesWarning\" = \"⚠️ Націсніце ⌘, (command+comma) каб адкрыць налады калі ніжні калонтытул утоены.\";\n\"ShowSpecialSymbolsTooltip\" = \"Паказваць знакі новага радка, табуляцыі, пачатковыя і канчатковыя прабелы з дапамогай адмысловых знакаў.\";\n\"ShowSearchField\" = \"Паказваць поле пошуку\";\n\"ShowTitleBeforeSearchField\" = \"Паказваць назву перад пошукам\";\n\"ImageHeightTooltip\" = \"Максімальная вышыня прадпрагляду выяў.\\nПадставова: 40.\\nПадказка: Пастаўце 16 для падабенства з тэкставымі запісамі.\";\n\"HighlightMatchesTooltip\" = \"Змяніце стыль вылучэння для супадзенняў пры пошуку.\\nПадставова: Тоўсты.\";\n\"PreviewDelayTooltip\" = \"Затрымка ў мілісекундах да з'яўлення ўсплыўнога акна прадпрагляду.\\nПадставова: 1500.\";\n\"PopupAtTooltip\" = \"Змяніць месца для з'яўлення ўсплыўнога акна.\\nПадставова: Курсор.\";\n\"ShowApplicationIcons\" = \"Паказаць значкі прыкладанняў\";\n"
  },
  {
    "path": "Maccy/Settings/be.lproj/GeneralSettings.strings",
    "content": "\"LaunchAtLogin\" = \"Запускаць пры логіне\";\n\"CheckNow\" = \"Праверыць зараз\";\n\"Open\" = \"Адчыніць:\";\n\"PinTooltip\" = \"Гарачая клавіша для замацавання элементу.\\nПадставова: %@P.\";\n\"Delete\" = \"Выдаліць:\";\n\"DeleteTooltip\" = \"Гарачая клавіша для выдалення элементу.\\nПадставова: ⌥⌫.\";\n\"ShowPreview\" = \"Перадпрагляд:\";\n\"ShowPreviewTooltip\" = \"Паказаць перадпрагляд з дадатковай інфармацыяй.\\nПадставова: ⌃Space.\";\n\"Behavior\" = \"Паводзіны:\";\n\"PasteAutomatically\" = \"Аўтаматычна ўстаўляць\";\n\"PasteWithoutFormatting\" = \"Устаўляць без фарматавання\";\n\"Modifiers\" = \"Наладзіць паводзіны пры выбары элемента:\\n• Выберыце з %@, каб скапіяваць элемент.\\n• Выберыце з %@, каб скапіяваць і ўставіць элемент.\\n• Выберыце з %@, каб скапіяваць, ачысціць фарматаванне і ўставіць элемент.\";\n\"Exact\" = \"Дакладны\";\n\"Fuzzy\" = \"Недакладны\";\n\"Regex\" = \"Рэгулярныя выразы\";\n\"Mixed\" = \"Змяшаны\";\n\"NotificationsAndSounds\" = \"Паведамленні і гукі 􀱁\";\n\"Title\" = \"Асноўныя\";\n\"CheckForUpdates\" = \"Аўтаматычна правяраць абнаўленні\";\n\"OpenTooltip\" = \"Глабальная камбінацыя клавіш для адкрыцця праграмы.\\nПаўторнае націсканне асноўнай клавішы з утрыманнем мадыфікатараў выбера наступны элемент у спісе. У гэтым рэжыме адпусканне клавіш-мадыфікатараў пацвердзіць выбар і закрые ўсплывальнае акно.\\nПа змаўчанні: ⇧⌘C.\";\n\"Search\" = \"Пошук:\";\n\"Pin\" = \"Замацаваць:\";\n"
  },
  {
    "path": "Maccy/Settings/be.lproj/IgnoreSettings.strings",
    "content": "\"IgnoredAppsDescription\" = \"Капіяванні з пэўных дадаткаў можна ігнараваць.\\nКалі ласка ўлічвайце, што гэтае вырашэнне не гарантуе стаадсадковага выніку, таму, па-магчымасці, рэкамендавана карыстацца з ігнараваных тыпаў.\";\n\"ApplicationsTab\" = \"Дадаткі\";\n\"Title\" = \"Ігнараванне\";\n\"IgnoredAllAppsExceptListed\" = \"Ігнараваць усе дадаткі, апроч пералічаных\";\n\"PasteboardTypesTab\" = \"Тыпы капіяваных дадзеных\";\n\"IgnoredPasteboardTypesDescription\" = \"Капіяванні пэўных тыпаў капіяваных дадзеных можна ігнараваць.\\nПа змаўчанні паказаны некаторыя вядомыя тыпы, спецыфічныя для некаторых дадаткаў. Вы можаце іх выдаліць і дадаць свае тыпы.\";\n\"IgnoredPasteboardTypesReset\" = \"Скід\";\n\"RegexpTab\" = \"Рэгулярныя выразы\";\n\"IgnoredRegexpsDescription\" = \"Капіяванні, якія адпавядаюць некаторым рэгулярным выразам, можна ігнараваць.\";\n"
  },
  {
    "path": "Maccy/Settings/be.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Замацаваныя\";\n\"Key\" = \"Клавіша\";\n\"Alias\" = \"Назва\";\n\"Content\" = \"Кантэнт\";\n\"ContentIsNotText\" = \"Нерэдагавальны кантэнт (малюнак або файл)\";\n\"RichTextEditWarning\" = \"Рэдагаванне адменіць усё фарматаванне.\";\n\"PinCustomizationDescription\" = \"Вы можаце наладзіць гарачую клавішу, назву і змест любога замацаванага элемента. Каб рэдагаваць, двойчы пстрыкніце па элеменце і ўвядзіце новае значэнне.\\nЗвярніце ўвагу, што змяніць можна толькі звычайны тэкст.\";\n"
  },
  {
    "path": "Maccy/Settings/be.lproj/StorageSettings.strings",
    "content": "\"Save\" = \"Захоўваць:\";\n\"Files\" = \"Файлы\";\n\"Images\" = \"Выявы\";\n\"Text\" = \"Тэкст\";\n\"SaveDescription\" = \"Змяніць тыпы элементаў, якія павінны захоўвацца.\";\n\"Size\" = \"Памер:\";\n\"FirstCopiedAt\" = \"Час першага капіявання\";\n\"NumberOfCopies\" = \"Колькасць копій\";\n\"LastCopiedAt\" = \"Час апошняга капіявання\";\n\"SortByTooltip\" = \"Падставова: час апошняга капіявання.\";\n\"Title\" = \"Захоўванне\";\n\"SizeTooltip\" = \"Колькасць элементаў, якія будуць захоўвацца.\\nПадставова: 200.\";\n\"SortBy\" = \"Сартаваць па:\";\n\"CurrentSizeTooltip\" = \"Бягучы памер на дыску.\";\n"
  },
  {
    "path": "Maccy/Settings/bn.lproj/AdvancedSettings.strings",
    "content": "\"ClearHistoryOnQuit\" = \"বন্ধ করে ছেড়ে যাওয়ার সময় ইতিহাস সাফ করুন\";\n\"ClearHistoryOnQuitTooltip\" = \"অ্যাপ্লিকেশনটি ছাড়ার আগে সমস্ত আনপিন করা আইটেম স্বয়ংক্রিয়ভাবে সরিয়ে ফেলুন।\";\n\"Title\" = \"অত্যাধুনিক উন্নত\";\n\"TurnOff\" = \"বন্ধ করো\";\n\"TurnOffDescription\" = \"সমস্ত নতুন কপি সাময়িকভাবে উপেক্ষা করুন।\\nআপনি এটি সম্ভবত প্রোগ্রাম্যাটিকভাবে ব্যবহার করবেন এবং সংবেদনশীল ডেটা কপি করার সময় অ্যাপ্লিকেশনটি অক্ষম করতে পারেন।\";\n\"TurnOffShellScript\" = \"ডিফল্ট লিখুন org.p0deje.Maccy ignoreEvents true\\n# ডেটা কপি করুন\\nডিফল্ট লিখুন org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"আপনি ⌥ চেপে মেনু আইকনেও ক্লিক করতে পারেন।\\nশুধুমাত্র পরবর্তী কপিটি উপেক্ষা করতে, ⌥⇧ চেপে ধরে ক্লিক করুন।\";\n\"TurnOffNextShellScript\" = \"ডিফল্ট লিখুন org.p0deje.Maccy ignoreOnlyNextEvent true\\n# ডেটা কপি করুন\";\n\"ClearSystemClipboard\" = \"সিস্টেম ক্লিপবোর্ডটিও সাফ করুন\";\n\"ClearSystemClipboardTooltip\" = \"সক্রিয় থাকাকালীন, ইতিহাস সাফ করলে বর্তমান সিস্টেম ক্লিপবোর্ডও সাফ হয়ে যাবে।\";\n"
  },
  {
    "path": "Maccy/Settings/bn.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"\";\n\"PopupAt\" = \"\";\n\"PopupAtCursor\" = \"\";\n\"PopupAtMenuBarIcon\" = \"\";\n\"PopupAtWindowCenter\" = \"\";\n\"PopupAtScreenCenter\" = \"\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/bn.lproj/GeneralSettings.strings",
    "content": "\"CheckForUpdates\" = \"স্বয়ংক্রিয়ভাবে আপডেটের জন্য সন্ধান করুন\";\n\"Title\" = \"সাধারণ\";\n\"LaunchAtLogin\" = \"লগইন করার সময় চালু করুন\";\n\"CheckNow\" = \"এখনই খুঁজুন\";\n\"Open\" = \"খুলুন:\";\n\"Pin\" = \"আলপিন:\";\n\"PinTooltip\" = \"ইতিহাসের আইটেম আলপিন করার শর্টকাট চাবি।\\nডিফল্ট: ⌥P।\";\n\"Delete\" = \"মুছে ফেলুন:\";\n\"Behavior\" = \"আচরণ:\";\n\"PasteAutomatically\" = \"স্বয়ংক্রিয়ভাবে পেস্ট করুন\";\n\"PasteWithoutFormatting\" = \"ফর্ম্যাটিং ছাড়াই পেস্ট করুন\";\n\"Search\" = \"অনুসন্ধান:\";\n\"Exact\" = \"হুবহু\";\n\"Fuzzy\" = \"ঝাপসা\";\n\"Regex\" = \"স্বাভাবিক অভিব্যক্তি\";\n\"Mixed\" = \"মিশ্রিত\";\n\"NotificationsAndSounds\" = \"বিজ্ঞপ্তি এবং শব্দ 􀱁\";\n\"OpenTooltip\" = \"অ্যাপ্লিকেশন খোলার জন্য গ্লোবাল শর্টকাট চাবি।\\nডিফল্ট: ⇧⌘C।\";\n\"DeleteTooltip\" = \"ইতিহাসের আইটেম মুছে ফেলার শর্টকাট চাবি।\\nডিফল্ট: ⌥⌫।\";\n\"ShowPreview\" = \"পূর্বরূপ:\";\n\"ShowPreviewTooltip\" = \"অতিরিক্ত তথ্য সহ পূর্বরূপ দেখান।\\nডিফল্ট: ⌃Space।\";\n\"Behavior\" = \"আচরণ:\";\n\"Modifiers\" = \"আইটেম নির্বাচন করার সময় আচরণটি কাস্টমাইজ করুন:\\n• আইটেমটি কপি করতে %@ টিপে নির্বাচন করুন।\\n• আইটেমটি কপি এবং পেস্ট করতে %@ টিপে নির্বাচন করুন।\\n• কপি করতে %@ টিপে নির্বাচন করুন, ফর্ম্যাটিং সাফ করুন এবং আইটেমটি পেস্ট করুন।\";\n"
  },
  {
    "path": "Maccy/Settings/bn.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"উপেক্ষা করুন\";\n\"ApplicationsTab\" = \"অ্যাপ্লিকেশন\";\n\"IgnoredAppsDescription\" = \"নির্দিষ্ট অ্যাপ্লিকেশন থেকে আসা কপিগুলি উপেক্ষা করা সম্ভব।\\nদয়া করে মনে রাখবেন যে এটি যেভাবে কাজ করে তা বুলেট-প্রুফ নয়, তাই সম্ভব হলে পেস্টবোর্ড ধরণের ব্যবহার করা ভাল।\";\n\"IgnoredAllAppsExceptListed\" = \"তালিকাভুক্ত ছাড়া সকল অ্যাপ্লিকেশন উপেক্ষা করুন\";\n\"PasteboardTypesTab\" = \"পেস্টবোর্ডের ধরণ\";\n\"IgnoredPasteboardTypesReset\" = \"পুন:স্থাপন করুন\";\n\"RegexpTab\" = \"নিয়মিত অভিব্যক্তি\";\n\"IgnoredRegexpsDescription\" = \"সংজ্ঞায়িত নিয়মিত অভিব্যক্তির উপর ভিত্তি করে কিছু কপি মনে রাখা থেকে উপেক্ষা করা সম্ভব।\";\n\"IgnoredPasteboardTypesDescription\" = \"কিছু পেস্টবোর্ড আইটেমের ধরণ মনে রাখা থেকে উপেক্ষা করা সম্ভব।\\nডিফল্টরূপে, কিছু পরিচিত অ্যাপ্লিকেশন-নির্দিষ্ট প্রকার সংজ্ঞায়িত করা হয়। আপনি সেগুলি সরাতে পারেন এবং আপনার পছন্দসই যেকোনো ধরণের যোগ করতে পারেন।\";\n"
  },
  {
    "path": "Maccy/Settings/bn.lproj/PinsSettings.strings",
    "content": "\"Key\" = \"মূল শব্দ\";\n\"Alias\" = \"শিরোনাম\";\n\"PinCustomizationDescription\" = \"আপনি প্রতিটি আলপিন করা আইটেমের শিরোনাম এবং হটকি কাস্টমাইজ করতে পারেন।\\nসম্পাদনা করতে, এটিতে ডাবল-ক্লিক করুন এবং নতুন মান লিখুন।\";\n\"Title\" = \"আলপিনগুলো\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/bn.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"\";\n\"Save\" = \"\";\n\"Files\" = \"\";\n\"Images\" = \"\";\n\"Text\" = \"\";\n\"SaveDescription\" = \"\";\n\"Size\" = \"\";\n\"SizeTooltip\" = \"\";\n\"CurrentSizeTooltip\" = \"\";\n\"SortBy\" = \"\";\n\"LastCopiedAt\" = \"\";\n\"FirstCopiedAt\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"SortByTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/bs.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Napredno\";\n\"TurnOff\" = \"Ugasi\";\n\"TurnOffDescription\" = \"Privremeno zanemari sve nove kopije.\\nKoristi programski i onemogućiti aplikaciju dok kopirate osjetljive podatke.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopirati podatke\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Takođe možeš kliknuti na ikonu menija sa pritisnutim ⌥.\\nDa zanemariš samo sljedeću kopiju, kliknite sa ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopirati podatke\";\n\"ClearHistoryOnQuit\" = \"Očisti historiju pri izlasku iz aplikacije\";\n\"ClearHistoryOnQuitTooltip\" = \"Automatski ukloni sve zakačene stavke prije zatvaranja aplikacije.\";\n\"ClearSystemClipboard\" = \"Očistite i sistemski međuspremnik\";\n\"ClearSystemClipboardTooltip\" = \"Kada je omogućeno, brisanje historije će također izbrisati trenutni sistemski međuspremnik.\";\n"
  },
  {
    "path": "Maccy/Settings/bs.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Izgled\";\n\"PopupAt\" = \"Popup na:\";\n\"PopupAtCursor\" = \"Kursor\";\n\"PopupAtMenuBarIcon\" = \"Meni ikona\";\n\"PopupAtWindowCenter\" = \"Centar prozora\";\n\"PopupAtScreenCenter\" = \"Centar zaslona\";\n\"PopupAtLastPosition\" = \"Poslednja pozicija\";\n\"PopupAtLastLocationReset\" = \"Resetuj poziciju\";\n\"PopupAtTooltip\" = \"Promijeni lokaciju na kojoj se pojavljuje priručni prozor.\\nZadano: Kursor.\";\n\"SearchVisibilityAlways\" = \"Uvijek\";\n\"SearchVisibilityDuringSearch\" = \"Tokom pretrage\";\n\"ActiveScreen\" = \"Aktivni zaslon\";\n\"PinTo\" = \"Zakači na:\";\n\"PinToTop\" = \"Vrh\";\n\"PinToBottom\" = \"Dno\";\n\"PinToTooltip\" = \"Promjeni lokaciju zakačenih stavki.\\nZadano: Vrh.\";\n\"ImageHeight\" = \"Visina slike:\";\n\"ImageHeightTooltip\" = \"Maksimalna visina pregleda slike.\\nZadano: 40.\\nSavjet: Postavite na 16 da izgledaju kao tekstualne stavke.\";\n\"PreviewDelay\" = \"Kašnjenje pregleda:\";\n\"PreviewDelayTooltip\" = \"Kašnjenje u milisekundama dok se ne prikaže skočni prozor za pregled.\\nZadano: 1500.\";\n\"HighlightMatches\" = \"Istaknite utakmice:\";\n\"HighlightMatchColor\" = \"Boja\";\n\"HighlightMatchBold\" = \"Podebljano\";\n\"HighlightMatchItalic\" = \"Kurziv\";\n\"HighlightMatchUnderline\" = \"Podvući\";\n\"HighlightMatchesTooltip\" = \"Promijenite stil isticanja za podudaranja pretraživanja.\\nZadano: Podebljano.\";\n\"ShowSpecialSymbols\" = \"Prikaži posebne simbole\";\n\"ShowSpecialSymbolsTooltip\" = \"Prikaži nove redove, tabulatore, početne i zadnje razmake pomoću posebnih simbola.\";\n\"ShowMenuIcon\" = \"Prikaži meni ikonu\";\n\"ShowRecentCopyInMenuBar\" = \"Prikaži nedavnu kopiju pored ikone menija\";\n\"ShowSearchField\" = \"Prikaži polje za pretragu\";\n\"ShowTitleBeforeSearchField\" = \"Prikaži naslov prije polja za pretraživanje\";\n\"ShowFooter\" = \"Prikaži footer\";\n\"OpenPreferencesWarning\" = \"⚠️ Pritisni ⌘, (command+comma) da otvorite postavke kada je podnožje skriveno.\";\n\"ShowApplicationIcons\" = \"Prikaži ikone aplikacija\";\n"
  },
  {
    "path": "Maccy/Settings/bs.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Opšte\";\n\"LaunchAtLogin\" = \"Započni aplikacjiu pri prijavi\";\n\"CheckForUpdates\" = \"Provjeri dostupna ažuriranja\";\n\"CheckNow\" = \"Provjeri sada\";\n\"Open\" = \"Obrisati:\";\n\"OpenTooltip\" = \"Globalna prečica za otvaranje aplikacije.\\nPonovljeni pritisak na glavnu tipku dok držite modifikatore odabrat će sljedeću stavku na listi. U ovom načinu rada, otpuštanje modifikatorskih tipki potvrdit će odabir i zatvoriti skočni prozor.\\nZadano: ⇧⌘C.\";\n\"Pin\" = \"Zakačiti:\";\n\"PinTooltip\" = \"Prečica za zakačenje stavke istorije.\\nStandardno: %@P.\";\n\"Delete\" = \"Brisaniti:\";\n\"DeleteTooltip\" = \"Prečica za brisanje stavke historije.\\nStandardno: %@⌫.\";\n\"ShowPreview\" = \"Pregled:\";\n\"ShowPreviewTooltip\" = \"Prikaži pregled sa dodatnim informacijama.\\nStandardno: ⌃Space.\";\n\"Behavior\" = \"Ponašanje:\";\n\"PasteAutomatically\" = \"Zalijepi automatski\";\n\"PasteWithoutFormatting\" = \"Zalijepi bez formatiranja\";\n\"Modifiers\" = \"Prilagodi ponašanje prilikom odabira stavke:\\n• Označi sa %@ da kopiraš stavku.\\n• Označi sa %@ da kopiraš i zalijepiš stavku.\\n• Označi sa %@ kopiraš, očistiš formatiranje i zalijepiš stavku.\";\n\"Search\" = \"Pretraga:\";\n\"Exact\" = \"Tačno\";\n\"Fuzzy\" = \"Fuzzy\";\n\"Regex\" = \"Regularni izrazi\";\n\"Mixed\" = \"Miješano\";\n\"NotificationsAndSounds\" = \"Obavještenja i zvukovi 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/bs.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignoriši\";\n\"ApplicationsTab\" = \"Aplikacije\";\n\"IgnoredAppsDescription\" = \"Moguće je zanemariti kopije koje dolaze iz određenih aplikacija.\\nNapominjemo da način na koji radi nije u potpunosti precizan, pa je bolje koristiti tipove zalijepljenih stavki kada je to moguće.\";\n\"IgnoredAllAppsExceptListed\" = \"Zanemarite sve aplikacije osim navedenih\";\n\"PasteboardTypesTab\" = \"Vrste zalijepljenih stavki\";\n\"IgnoredPasteboardTypesDescription\" = \"Moguće je zanemariti određene tipove zalijepljenih stavki iz memorije.\\nZadano, neki poznati tipovi specifični za aplikaciju su definirani. Možeš ih ukloniti i dodati bilo koje prilagođene tipove koje želite.\";\n\"IgnoredPasteboardTypesReset\" = \"Reset\";\n\"RegexpTab\" = \"Regularni izrazi\";\n\"IgnoredRegexpsDescription\" = \"Moguće je zanemariti određene kopije od pamćenja na osnovu definisanih regularnih izraza.\";\n"
  },
  {
    "path": "Maccy/Settings/bs.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Zakačke\";\n\"Key\" = \"Dugme\";\n\"Alias\" = \"Naziv\";\n\"Content\" = \"Sadržaj\";\n\"ContentIsNotText\" = \"Sadržaj koji se ne može uređivati (slika ili datoteka)\";\n\"RichTextEditWarning\" = \"Uređivanjem će se odbaciti svo formatiranje.\";\n\"PinCustomizationDescription\" = \"Možete prilagoditi prečicu, naslov i sadržaj bilo koje prikvačene stavke. Za uređivanje, dvaput kliknite na stavku i unesite novu vrijednost.\\nImajte na umu da se može mijenjati samo običan tekst.\";\n"
  },
  {
    "path": "Maccy/Settings/bs.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Pohrana\";\n\"Save\" = \"Snimi:\";\n\"Files\" = \"Datoteke\";\n\"Images\" = \"Slike\";\n\"Text\" = \"Tekst\";\n\"SaveDescription\" = \"Promjeni koji tipovi sadržaja trebaju biti snimljeni.\";\n\"Size\" = \"Veličina:\";\n\"SizeTooltip\" = \"Broj stavki u zadržanih u historiji.\\nStandardno: 200.\";\n\"SortBy\" = \"Poredaj po:\";\n\"LastCopiedAt\" = \"Vrijeme zadnje kopije\";\n\"FirstCopiedAt\" = \"Vrijeme prve kopije\";\n\"NumberOfCopies\" = \"Broj kopija\";\n\"SortByTooltip\" = \"Standardno: Vrijeme zadnje kopije.\";\n\"CurrentSizeTooltip\" = \"Trenutna veličina na disku.\";\n"
  },
  {
    "path": "Maccy/Settings/ca.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"\";\n\"TurnOff\" = \"\";\n\"TurnOffDescription\" = \"\";\n\"TurnOffShellScript\" = \"\";\n\"TurnOffViaMenuIconDescription\" = \"\";\n\"TurnOffNextShellScript\" = \"\";\n\"ClearHistoryOnQuit\" = \"\";\n\"ClearHistoryOnQuitTooltip\" = \"\";\n\"ClearSystemClipboard\" = \"\";\n\"ClearSystemClipboardTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ca.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"\";\n\"PopupAt\" = \"\";\n\"PopupAtCursor\" = \"\";\n\"PopupAtMenuBarIcon\" = \"\";\n\"PopupAtWindowCenter\" = \"\";\n\"PopupAtScreenCenter\" = \"\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ca.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"\";\n\"LaunchAtLogin\" = \"\";\n\"CheckForUpdates\" = \"\";\n\"CheckNow\" = \"\";\n\"Open\" = \"\";\n\"OpenTooltip\" = \"\";\n\"Pin\" = \"\";\n\"PinTooltip\" = \"\";\n\"Delete\" = \"\";\n\"DeleteTooltip\" = \"\";\n\"ShowPreview\" = \"\";\n\"ShowPreviewTooltip\" = \"\";\n\"Behavior\" = \"\";\n\"PasteAutomatically\" = \"\";\n\"PasteWithoutFormatting\" = \"\";\n\"Modifiers\" = \"\";\n\"Search\" = \"\";\n\"Exact\" = \"\";\n\"Fuzzy\" = \"\";\n\"Regex\" = \"\";\n\"Mixed\" = \"\";\n\"NotificationsAndSounds\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ca.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"\";\n\"ApplicationsTab\" = \"\";\n\"IgnoredAppsDescription\" = \"\";\n\"IgnoredAllAppsExceptListed\" = \"\";\n\"PasteboardTypesTab\" = \"\";\n\"IgnoredPasteboardTypesDescription\" = \"\";\n\"IgnoredPasteboardTypesReset\" = \"\";\n\"RegexpTab\" = \"\";\n\"IgnoredRegexpsDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ca.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"\";\n\"Key\" = \"\";\n\"Alias\" = \"\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n\"PinCustomizationDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ca.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Emmagatzematge\";\n\"Save\" = \"Desa:\";\n\"Files\" = \"Arxius\";\n\"Images\" = \"Imatges\";\n\"Text\" = \"Text\";\n\"FirstCopiedAt\" = \"Temps de la primera còpia\";\n\"NumberOfCopies\" = \"Nombre de còpies\";\n\"SortByTooltip\" = \"Per defecte: Temps de l'última còpia.\";\n\"SaveDescription\" = \"Canvia quins tipus de contingut copiat ha de ser guardat.\";\n\"Size\" = \"Mida:\";\n\"SortBy\" = \"Ordenar per:\";\n\"SizeTooltip\" = \"Nombre d'elements guardats a l'històric.\\nPer defecte: 200.\";\n\"LastCopiedAt\" = \"Temps de l'última còpia\";\n\"CurrentSizeTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ckb.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"پێشکەوتوو\";\n\"TurnOff\" = \"ناچالاککردن\";\n\"TurnOffDescription\" = \"پشتگوێخستنی کاتیی هەموو کۆپییە نوێیەکان.\\nئەگەری هەیە ئەمە بەشێوەی پرۆگرامی بەکاربهێنیت و بەرنامەکە ناچالاک بکەیت لەکati کۆپیکردنی داتای هەستیاردا.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copy data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"هەروەها دەتوانیت کلیک لەسەر ئایکۆنی مێنوەکە بکەیت بە داگرتنی دوگمەی ⌥.\\nبۆ پشتگوێخستنی تەنها کۆپیی داهاتوو، کلیک بکە لەگەڵ داگرتنی ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copy data\";\n\"ClearHistoryOnQuit\" = \"سڕینەوەی مێژوو لەکاتی داخستندا\";\n\"ClearHistoryOnQuitTooltip\" = \"بەشێوەیەکی خۆکارانە هەموو ئایتەمە نەچەسپێنراوەکان لادەبات پێش داخستنی بەرنامەکە.\";\n\"ClearSystemClipboard\" = \"سڕینەوەی کلیپبۆردی سیستەمیش\";\n\"ClearSystemClipboardTooltip\" = \"کاتێک کارا دەکرێت، سڕینەوەی مێژوو، کلیپبۆردی ئێستای سیستەمیش دەسڕێتەوە.\";\n"
  },
  {
    "path": "Maccy/Settings/ckb.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"ڕووکار\";\n\"PopupAt\" = \"شوێنی دەرکەوتنی پۆپئەپ:\";\n\"PopupAtCursor\" = \"نیشاندەر\";\n\"PopupAtMenuBarIcon\" = \"ئایکۆنی مێنو\";\n\"PopupAtWindowCenter\" = \"ناوەڕاستی پەنجەرە\";\n\"PopupAtScreenCenter\" = \"ناوەڕاستی شاشە\";\n\"PopupAtLastPosition\" = \"دوایین شوێن\";\n\"PopupAtLastLocationReset\" = \"ڕێکخستنەوەی شوێن\";\n\"PopupAtTooltip\" = \"شوێنی دەرکەوتنی پۆپئەپەکە بگۆڕە.\\nبنەڕەت: نیشاندەر.\";\n\"SearchVisibilityAlways\" = \"هەمیشە\";\n\"SearchVisibilityDuringSearch\" = \"لەکاتی گەڕاندا\";\n\"ActiveScreen\" = \"شاشەی چالاک\";\n\"PinTo\" = \"چەسپاندن بۆ:\";\n\"PinToTop\" = \"سەرەوە\";\n\"PinToBottom\" = \"خوارەوە\";\n\"PinToTooltip\" = \"شوێنی ئایتەمە چەسپێنراوەکان بگۆڕە.\\nبنەڕەت: سەرەوە.\";\n\"ImageHeight\" = \"بەرزیی وێنە:\";\n\"ImageHeightTooltip\" = \"بەرزترین بەرزیی پێشبینیی وێنە.\\nبنەڕەت: ٤٠.\\nئاماژە: بیکە بە ١٦ بۆ ئەوەی لە ئایتەمی دەقی بچێت.\";\n\"PreviewDelay\" = \"دواکەوتنی پێشبینی:\";\n\"PreviewDelayTooltip\" = \"دواکەوتن بە میلی چرکە تاوەکو پۆپئەپی پێشبینی پیشان دەدرێت.\\nبنەڕەت: ١٥٠٠.\";\n\"HighlightMatches\" = \"دیاریکردنی هاوشێوەکان:\";\n\"HighlightMatchColor\" = \"ڕەنگ\";\n\"HighlightMatchBold\" = \"تۆخ\";\n\"HighlightMatchItalic\" = \"لار\";\n\"HighlightMatchUnderline\" = \"ژێرهێڵ\";\n\"HighlightMatchesTooltip\" = \"شێوازی دیاریکردنی ئەنجامە هاوشێوەکانی گەڕان بگۆڕە.\\nبنەڕەت: تۆخ.\";\n\"ShowSpecialSymbols\" = \"پیشاندانی هێما تایبەتەکان\";\n\"ShowSpecialSymbolsTooltip\" = \"پیشاندانی دێڕی نوێ، تاب، و بۆشاییە سەرەتا و کۆتاییەکان لەرێگەی هێمای تایبەتەوە.\";\n\"ShowMenuIcon\" = \"پیشاندانی ئایکۆنی مێنو\";\n\"ShowRecentCopyInMenuBar\" = \"پیشاندانی دوایین کۆپی لەتەنیشت ئایکۆنی مێنووەوە\";\n\"ShowSearchField\" = \"پیشاندانی خانەی گەڕان\";\n\"ShowTitleBeforeSearchField\" = \"پیشاندانی ناونیشان پێش خانەی گەڕان\";\n\"ShowApplicationIcons\" = \"پیشاندانی ئایکۆنی بەرنامەکان\";\n\"ShowFooter\" = \"پیشاندانی فووتەر\";\n\"OpenPreferencesWarning\" = \"⚠️ دوگمەی ⌘, (کۆماند+کۆما) دابگرە بۆ کردنەوەی هەڵبژاردەکان کاتێک فووتەر شاراوەیە.\";\n"
  },
  {
    "path": "Maccy/Settings/ckb.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"گشتی\";\n\"LaunchAtLogin\" = \"کارپێکردن لەکاتی چوونەژوورەوەدا\";\n\"CheckForUpdates\" = \"پشکنینی خۆکارانە بۆ نوێکارییەکان\";\n\"CheckNow\" = \"ئێستا بپشکنە\";\n\"Open\" = \"کردنەوە:\";\n\"OpenTooltip\" = \"کورتەدوگمەی گشتی بۆ کردنەوەی بەرنامەکە.\\nداگرتنی دووبارەی دوگمە سەرەکییەکە لەکاتی هێشتنەوەی دوگمە یارمەتیدەرەکان، ئایتەمی دواتر لە لیستەکەدا دیاری دەکات. لەم حاڵەتەدا، بەردانی دوگمە یارمەتیدەرەکان دیاریکردنەکە پشتڕاست دەکاتەوە و پۆپئەپەکە دادەخات.\\nبنەڕەت: ⇧⌘C.\";\n\"Pin\" = \"چەسپاندن:\";\n\"PinTooltip\" = \"کورتەدوگمە بۆ چەسپاندنی ئایتەمی مێژوو.\\nبنەڕەت: ⌥P.\";\n\"Delete\" = \"سڕینەوە:\";\n\"DeleteTooltip\" = \"کورتەدوگمە بۆ سڕینەوەی ئایتەمی مێژوو.\\nبنەڕەت: ⌥⌫.\";\n\"ShowPreview\" = \"پێشبینین:\";\n\"ShowPreviewTooltip\" = \"پیشاندانی پێشبینین لەگەڵ زانیاری زیادە.\\nبنەڕەت: ⌃Space.\";\n\"Behavior\" = \"ڕەفتار:\";\n\"PasteAutomatically\" = \"پەیستکردنی خۆکارانە\";\n\"PasteWithoutFormatting\" = \"پەیستکردن بەبێ فۆرمات\";\n\"Modifiers\" = \"ڕەفتاری بەرنامەکە لە کاتی دیاریکردنی ئایتەمدا بگۆڕە:\\n• بە داگرتنی %@ دیاریبکە بۆ کۆپیکردنی ئایتەم.\\n• بە داگرتنی %@ دیاریبکە بۆ کۆپیکردن و پەیستکردنی ئایتەم.\\n• بە داگرتنی %@ دیاریبکە بۆ کۆپیکردن، سڕینەوەی فۆرمات، و پەیستکردنی ئایتەم.\";\n\"Search\" = \"گەڕان:\";\n\"Exact\" = \"تەواو\";\n\"Fuzzy\" = \"لێکچوو\";\n\"Regex\" = \"ڕێجێکسەکان\";\n\"Mixed\" = \"تێکەڵ\";\n\"NotificationsAndSounds\" = \"ئاگادارییەکان و دەنگەکان 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/ckb.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"پشتگوێخستن\";\n\"ApplicationsTab\" = \"بەرنامەکان\";\n\"IgnoredAppsDescription\" = \"دەکرێت ئەو کۆپیانەی لە هەندێک بەرنامەی دیاریکراوەوە دێن پشتگوێ بخرێن.\\nتکایە ئاگاداربە کە شێوازی کارکردنی بێ کێشە نییە، بۆیە باشترە جۆرەکانی پێستبۆرد بەکاربهێنیت ئەگەر بکرێت.\";\n\"IgnoredAllAppsExceptListed\" = \"پشتگوێخستنی هەموو بەرنامەکان جگە لەوانەی لیستکراون\";\n\"PasteboardTypesTab\" = \"جۆرەکانی پێستبۆرد\";\n\"IgnoredPasteboardTypesDescription\" = \"دەتوانرێت ڕێگری بکرێت لە پاشەکەوتکردنی هەندێک جۆری دیاریکراوی ئایتەمی پێستبۆرد.\\nبە شێوەی بنەڕەتی، هەندێک جۆری ناسراوی تایبەت بە بەرنامەکان پێناسە کراون. دەتوانیت بیان سڕیتەوە و هەر جۆرێکی تایبەتی خۆت کە دەتەوێت زیادی بکەیت.\";\n\"IgnoredPasteboardTypesReset\" = \"ڕێکخستنەوە\";\n\"RegexpTab\" = \"ڕێجێکسەکان\";\n\"IgnoredRegexpsDescription\" = \"دەکرێت هەندێک کۆپی دیاریکراو پشتگوێ بخرێن لە پاشەکەوتکردن، ئەمەش بەپێی ئەو ڕێجێکسانەی کە پێناسە کراون.\";\n"
  },
  {
    "path": "Maccy/Settings/ckb.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"چەسپێنراوەکان\";\n\"Key\" = \"دوگمە\";\n\"Alias\" = \"ناونیشان\";\n\"Content\" = \"ناوەڕۆک\";\n\"ContentIsNotText\" = \"ناوەڕۆکی دەستکارینەکراو (وێنە یان فایل)\";\n\"RichTextEditWarning\" = \"دەستکاریکردن هەموو فۆرماتەکە لادەبات.\";\n\"PinCustomizationDescription\" = \"تۆ دەتوانیت کورتەدوگمە، ناونیشان، و ناوەڕۆکی هەر ئایتمێکی چەسپێنراو بەدڵی خۆت بگۆڕیت. بۆ دەستکاریکردن، دوو-کلیک لەسەر ئایتمەکە بکە و بەهایەکی نوێ داغڵ بکە.\\nتکایە ئاگاداربە کە تەنها دەقی سادە دەتوانرێت بگۆڕدرێت.\";\n"
  },
  {
    "path": "Maccy/Settings/ckb.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"کۆگا\";\n\"Save\" = \"پاشەکەوتکردن:\";\n\"Files\" = \"فایلەکان\";\n\"Images\" = \"وێنەکان\";\n\"Text\" = \"دەق\";\n\"SaveDescription\" = \"دیاریبکە کام جۆرە ناوەڕۆکی کۆپیکراو پاشەکەوت بکرێت.\";\n\"Size\" = \"قەبارە:\";\n\"SizeTooltip\" = \"ژمارەی ئەو ئایتەمە مێژووییانەی کە دەهێڵرێنەوە.\\nبنەڕەت: ٢٠٠.\";\n\"CurrentSizeTooltip\" = \"قەبارەی ئێستا لەسەر دیسک.\";\n\"SortBy\" = \"ڕیزکردن بەپێی:\";\n\"LastCopiedAt\" = \"کاتی دوایین کۆپی\";\n\"FirstCopiedAt\" = \"کاتی یەکەم کۆپی\";\n\"NumberOfCopies\" = \"ژمارەی کۆپییەکان\";\n\"SortByTooltip\" = \"بنەڕەت: کاتی دوایین کۆپی.\";\n"
  },
  {
    "path": "Maccy/Settings/cs.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Pokročilé\";\n\"TurnOff\" = \"Vypnout\";\n\"TurnOffDescription\" = \"Dočasně ignorovat všechny nové kopie.\\nPravděpodobně toto použiješ programově a zakážeš aplikaci při kopírování citlivých dat.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopírovat data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Můžeš také kliknut na menu ikonu při stisknutí ⌥.\\nPro ignorování následující kopie stiskni s ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopírovat data\";\n\"ClearHistoryOnQuit\" = \"Vymazat historii při ukončení\";\n\"ClearHistoryOnQuitTooltip\" = \"Automaticky odebrat všechny nepřipnuté položky před ukončením aplikace.\";\n\"ClearSystemClipboard\" = \"Vymazat taky systémovou schránku\";\n\"ClearSystemClipboardTooltip\" = \"Pokud je povoleno, smazání historie smaže i aktuální systémovou schránku.\";\n"
  },
  {
    "path": "Maccy/Settings/cs.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Vzhled\";\n\"PopupAt\" = \"Zobrazovat popup vedle:\";\n\"PopupAtCursor\" = \"Kurzoru\";\n\"PopupAtMenuBarIcon\" = \"Menu ikony\";\n\"PopupAtWindowCenter\" = \"Středu okna\";\n\"PopupAtScreenCenter\" = \"Středu obrazovky\";\n\"PopupAtLastPosition\" = \"Poslední pozice\";\n\"PopupAtLastLocationReset\" = \"Vynulování polohy\";\n\"PopupAtTooltip\" = \"Dolů\";\n\"SearchVisibilityAlways\" = \"Vždy\";\n\"SearchVisibilityDuringSearch\" = \"Během vyhledávání\";\n\"ActiveScreen\" = \"Aktivní obrazovka\";\n\"PinTo\" = \"Připnout:\";\n\"PinToTop\" = \"Nahoru\";\n\"PinToBottom\" = \"Dolů\";\n\"PinToTooltip\" = \"Změnit umístění připnutí položek.\\nVýchozí: Nahoru.\";\n\"ImageHeight\" = \"Výška obrázku:\";\n\"ImageHeightTooltip\" = \"Maximální výška náhledu obrázku.\\nVýchozí: 40.\\nTip: Zvol 16 pro stejnou podobu jako textové položky.\";\n\"PreviewDelay\" = \"Zpoždení náhledu:\";\n\"PreviewDelayTooltip\" = \"Zpoždění v milisekundách před zobrazením popup okna.\\nVýchozí: 1500.\";\n\"HighlightMatches\" = \"Zvýraznit shody:\";\n\"HighlightMatchColor\" = \"Barva\";\n\"HighlightMatchBold\" = \"Tučně\";\n\"HighlightMatchItalic\" = \"Kurzívou\";\n\"HighlightMatchUnderline\" = \"Podtržením\";\n\"HighlightMatchesTooltip\" = \"Změnit styl zvýraznění výsledků hledání.\\nVýchozí: Tučně.\";\n\"ShowSpecialSymbols\" = \"Zobrazovat speciální znaky\";\n\"ShowSpecialSymbolsTooltip\" = \"Zobrazovat nové řádky, tabulátory, úvodní a koncové mezery pomocí speciálních znaků.\";\n\"ShowMenuIcon\" = \"Zobrazovat menu ikonu\";\n\"ShowRecentCopyInMenuBar\" = \"Ukázat poslední kopii vedle menu ikony\";\n\"ShowSearchField\" = \"Zobrazovat vyhledávací pole\";\n\"ShowTitleBeforeSearchField\" = \"Zobrazovat název aplikace před vyhledávacím polem\";\n\"ShowFooter\" = \"Zobrazovat patičku\";\n\"ShowApplicationIcons\" = \"Zobrazení ikon aplikací\";\n\"OpenPreferencesWarning\" = \"⚠️ Stiskni ⌘, (command+comma) pro otevření předvoleb, když je skrytá patička.\";\n"
  },
  {
    "path": "Maccy/Settings/cs.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Obecné\";\n\"LaunchAtLogin\" = \"Spustit při přihlášení\";\n\"CheckForUpdates\" = \"Automaticky kontrolovat aktualizace\";\n\"CheckNow\" = \"Zkontrolovat teď\";\n\"Open\" = \"Otevřít:\";\n\"OpenTooltip\" = \"Globální klávesová zkratka pro otevření aplikace.\\nPakliže opakovaně stisknete hlavní klávesu a podržíte modifikátory, vyberete další položku v seznamu. V tomto režimu uvolnění modifikátorových kláves potvrdí výběr a zavře vyskakovací okno.\\nVýchozí: ⇧⌘C.\";\n\"Pin\" = \"Připnout:\";\n\"PinTooltip\" = \"Klávesová zkratka pro připnutí položky.\\nVýchozí: ⌥P.\";\n\"Delete\" = \"Smazat:\";\n\"DeleteTooltip\" = \"Přibližné\";\n\"ShowPreview\" = \"Náhled:\";\n\"ShowPreviewTooltip\" = \"Zobrazit náhled s dodatečnými informacemi.\\nVýchozí: ⌃Space.\";\n\"Behavior\" = \"Chování:\";\n\"PasteAutomatically\" = \"Vložit automaticky\";\n\"PasteWithoutFormatting\" = \"Vložit bez formátování\";\n\"Modifiers\" = \"Přizpůsob chování při volbě položky:\\n• Vyber se stisknutím ⌘ pro zkopírování položky.\\n• Vyber se stisknutím ⌥ pro zkopírování a vložení položky.\\n• Vyber se stisknutím ⌥⇧ pro zkopírování, odstranění formátování a vložení položky.\";\n\"Search\" = \"Vyhledávání:\";\n\"Exact\" = \"Přesné\";\n\"Fuzzy\" = \"Přibližné\";\n\"Regex\" = \"Regulární výrazy\";\n\"Mixed\" = \"Smíšené\";\n\"NotificationsAndSounds\" = \"Notifikace a zvuky 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/cs.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignorovat\";\n\"ApplicationsTab\" = \"Aplikace\";\n\"IgnoredAppsDescription\" = \"Je možné ignorovat kopie z určitých aplikací.\\nPamatuj že způsob fungování této metody není neprůstřelný, pokud je to možné, je lepší použít typy schránek.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorovat všechny aplikace kromě zalistovaných\";\n\"PasteboardTypesTab\" = \"Typy schránek\";\n\"IgnoredPasteboardTypesDescription\" = \"Je možné ignorovat určité typy položek ve schránce ze zapamatování.\\nOd základu jsou definované některé typy dle aplikací. Můežeš je odstranit a přidat vlastní typy, pokud chceš.\";\n\"IgnoredPasteboardTypesReset\" = \"Obnovení\";\n\"RegexpTab\" = \"Regulární výrazy\";\n\"IgnoredRegexpsDescription\" = \"Je možné ignorovat určité kopie ze zapamatování na základě definovaných regulárních výrazů.\";\n"
  },
  {
    "path": "Maccy/Settings/cs.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Připnuté\";\n\"Key\" = \"Key\";\n\"Alias\" = \"Title\";\n\"Content\" = \"Obsah\";\n\"ContentIsNotText\" = \"Neupravitelný obsah (obrázek nebo soubor)\";\n\"RichTextEditWarning\" = \"Při úpravách se zruší veškeré formátování.\";\n\"PinCustomizationDescription\" = \"Můžete si přizpůsobit klávesovou zkratku, název a obsah každé připnuté položky. Chcete-li položku upravit, dvakrát na ni klikněte a zadejte novou hodnotu.\\nVezměte prosím na vědomí, že měnit lze pouze prostý text.\";\n"
  },
  {
    "path": "Maccy/Settings/cs.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Úložistě\";\n\"Save\" = \"Ukládat:\";\n\"Files\" = \"Soubory\";\n\"Images\" = \"Obrázky\";\n\"Text\" = \"Text\";\n\"SaveDescription\" = \"Vyber jaké typy kopírovaného obsahu mají být ukládány.\";\n\"Size\" = \"Velikost:\";\n\"SizeTooltip\" = \"Počet položek uchovávaných v historii.\\nVýchozí: 200.\";\n\"CurrentSizeTooltip\" = \"Aktuální velikost na disku.\";\n\"SortBy\" = \"Řadit podle:\";\n\"LastCopiedAt\" = \"Čas posledního kopírování\";\n\"FirstCopiedAt\" = \"Čas prvního kopírování\";\n\"NumberOfCopies\" = \"Počet kopírování\";\n\"SortByTooltip\" = \"Výchozí: Čas posledního kopírování.\";\n"
  },
  {
    "path": "Maccy/Settings/de.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Erweitert\";\n\"TurnOff\" = \"Deaktivieren\";\n\"TurnOffDescription\" = \"Vorrübergehend alle neue Einträge ignorieren. Zum Beispiel während dem Kopieren von sensiblen Daten.\\nDies kann über das Terminal aktiviert und deaktiviert werden mit.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# Einträge wieder kopieren\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Um Maccy zu deaktivieren, klicke auf das Menüleistensymbol und halte dabei ⌥ gedrückt.\\nUm nur die nächste Kopie zu ignorieren, klicke und halte ⌥⇧ gedrückt.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# Einträge wieder kopieren\";\n\"ClearHistoryOnQuit\" = \"Verlauf beim Beenden löschen\";\n\"ClearHistoryOnQuitTooltip\" = \"Alle nicht angehefteten Elemente werden vor dem Beenden der Anwendung automatisch entfernt.\";\n\"ClearSystemClipboard\" = \"Löschen Sie auch die Zwischenablage des Systems\";\n\"ClearSystemClipboardTooltip\" = \"Wenn diese Option aktiviert ist, wird durch das Löschen des Verlaufs auch die aktuelle Systemzwischenablage gelöscht.\";\n"
  },
  {
    "path": "Maccy/Settings/de.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Erscheinungsbild\";\n\"PopupAt\" = \"Position des Popup-Fensters:\";\n\"PopupAtCursor\" = \"Mauszeiger\";\n\"PopupAtMenuBarIcon\" = \"Menüleistensymbol\";\n\"PopupAtWindowCenter\" = \"Fenstermitte\";\n\"PopupAtScreenCenter\" = \"Bildschirmmitte\";\n\"PopupAtLastPosition\" = \"Letzte Position\";\n\"PopupAtLastLocationReset\" = \"Position zurücksetzen\";\n\"PopupAtTooltip\" = \"Ändere die Position des Popup-Fensters.\\nStandard: Mauszeiger.\";\n\"SearchVisibilityAlways\" = \"Immer\";\n\"SearchVisibilityDuringSearch\" = \"Während der Suche\";\n\"ActiveScreen\" = \"Aktiver Bildschirm\";\n\"PinTo\" = \"Angeheftete Einträge:\";\n\"PinToTop\" = \"Oben\";\n\"PinToBottom\" = \"Unten\";\n\"PinToTooltip\" = \"Ändere die Position der angehefteten Einträge.\\nStandard: Oben.\";\n\"ImageHeight\" = \"Bildhöhe:\";\n\"ImageHeightTooltip\" = \"Maximale Höhe für Bildvorschau in Pixel.\\nStandard: 40.\\nHinweis: Wähle 16, wenn das Bild gleich groß dargestellt werden soll, wie Text.\";\n\"PreviewDelay\" = \"Vorschauverzögerung:\";\n\"PreviewDelayTooltip\" = \"Verzögerung in Millisekunden, bis ein Vorschau-Popup angezeigt wird.\\nStandard: 1500.\";\n\"HighlightMatches\" = \"Übereinstimmungen hervorheben:\";\n\"HighlightMatchColor\" = \"Farbe\";\n\"HighlightMatchBold\" = \"Fett\";\n\"HighlightMatchItalic\" = \"Kursiv\";\n\"HighlightMatchUnderline\" = \"Unterstreichen\";\n\"HighlightMatchesTooltip\" = \"Ändern Sie den Hervorhebungsstil für Suchtreffer.\\nStandard: Fett.\";\n\"ShowSpecialSymbols\" = \"Sondersymbole anzeigen\";\n\"ShowSpecialSymbolsTooltip\" = \"Zeigen Sie Zeilenumbrüche, Tabulatoren sowie führende und nachgestellte Leerzeichen über spezielle Symbole an.\";\n\"ShowMenuIcon\" = \"In Menüleiste anzeigen\";\n\"ShowRecentCopyInMenuBar\" = \"Letzer Eintrag neben Menüleistensymbol anzeigen\";\n\"ShowSearchField\" = \"Suchfeld anzeigen\";\n\"ShowTitleBeforeSearchField\" = \"Titel neben dem Suchfeld anzeigen\";\n\"ShowFooter\" = \"Menü anzeigen\";\n\"ShowApplicationIcons\" = \"Anwendungssymbole anzeigen\";\n\"OpenPreferencesWarning\" = \"⚠️ Um die Einstellungen zu öffnen, halte ⌘, (command+comma) gedrückt.\";\n"
  },
  {
    "path": "Maccy/Settings/de.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Allgemein\";\n\"LaunchAtLogin\" = \"Beim Anmelden starten\";\n\"CheckForUpdates\" = \"Automatisch nach Updates suchen\";\n\"CheckNow\" = \"Jetzt prüfen\";\n\"Open\" = \"Öffnen:\";\n\"OpenTooltip\" = \"Globales Tastenkürzel zum Öffnen der Anwendung.\\nEin wiederholtes Drücken der Haupttaste bei gleichzeitigem Halten der Modifikatortasten wählt das nächste Element in der Liste aus. In diesem Modus wird durch Loslassen der Modifikatortasten die Auswahl bestätigt und das Popup geschlossen.\\nStandard: ⇧⌘C.\";\n\"Pin\" = \"Anheften:\";\n\"PinTooltip\" = \"Tastenkombination zum Anheften eines Verlaufselements.\\nStandard: %@P.\";\n\"Delete\" = \"Löschen:\";\n\"DeleteTooltip\" = \"Tastenkombination zum Löschen eines Verlaufselements.\\nStandard: %@⌫.\";\n\"ShowPreview\" = \"Vorschau:\";\n\"ShowPreviewTooltip\" = \"Vorschau mit zusätzlichen Informationen anzeigen.\\nStandard: ⌃Space.\";\n\"Behavior\" = \"Verhalten:\";\n\"PasteAutomatically\" = \"Automatisch einfügen\";\n\"PasteWithoutFormatting\" = \"Einfügen ohne Formatierung\";\n\"Modifiers\" = \"Verhalten bei Auswahl eines Eintrags anpassen:\\n• Drücke %@, um den gewählten Eintrag zu kopieren.\\n• Drücke %@, um den gewählten Eintrag zu kopieren und einzufügen.\\n• Drücke %@, um den gewählten Eintrag zu kopieren und unformatiert einzufügen.\";\n\"Search\" = \"Suche:\";\n\"Exact\" = \"Exakt\";\n\"Fuzzy\" = \"Fuzzy\";\n\"Regex\" = \"Reguläre Ausdrücke\";\n\"Mixed\" = \"Gemischt\";\n\"NotificationsAndSounds\" = \"Benachrichtigungen und Töne 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/de.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignorieren\";\n\"ApplicationsTab\" = \"Anwendungen\";\n\"IgnoredAppsDescription\" = \"Es ist möglich, kopierte Elemente von bestimmten Anwendungen zu ignorieren.\\nBitte beachte, dass diese Methode nicht hundertprozentig zuverlässig funktioniert. Daher ist es besser, wenn möglich Pasteboard-Typen zu verwenden.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorieren Sie alle Anwendungen außer den aufgelisteten\";\n\"PasteboardTypesTab\" = \"Pasteboard Typen\";\n\"IgnoredPasteboardTypesDescription\" = \"Es ist möglich, bestimmte Pasteboard-Typen zu ignorieren.\\nStandardmäßig sind einige bekannte anwendungsspezifische Typen definiert. Du kannst diese entfernen und beliebige benutzerdefinierte Typen hinzufügen.\";\n\"IgnoredPasteboardTypesReset\" = \"Zurücksetzen\";\n\"RegexpTab\" = \"Reguläre Ausdrücke\";\n\"IgnoredRegexpsDescription\" = \"Es ist möglich, bestimmte Kopien basierend auf definierten regulären Ausdrücken aus der Speicherung zu ignorieren.\";\n"
  },
  {
    "path": "Maccy/Settings/de.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Pins\";\n\"Key\" = \"Hotkey\";\n\"Alias\" = \"Titel\";\n\"Content\" = \"Inhalt\";\n\"ContentIsNotText\" = \"Nicht editierbarer Inhalt (Bild oder Datei)\";\n\"RichTextEditWarning\" = \"Bei der Bearbeitung werden alle Formatierungen verworfen.\";\n\"PinCustomizationDescription\" = \"Sie können den Hotkey, den Titel und den Inhalt jedes angehefteten Elements anpassen. Zum Bearbeiten doppelklicken Sie auf das Element und geben einen neuen Wert ein.\\nBitte beachten Sie, dass nur einfacher Text geändert werden kann.\";\n"
  },
  {
    "path": "Maccy/Settings/de.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Speicher\";\n\"Save\" = \"Sichern:\";\n\"Files\" = \"Dateien\";\n\"Images\" = \"Bilder\";\n\"Text\" = \"Text\";\n\"SaveDescription\" = \"Ändere, welche Dateitypen kopierter Inhalte gesichert werden sollen.\";\n\"Size\" = \"Verlauf:\";\n\"SizeTooltip\" = \"Maximale Anzahl von Einträgen.\\nStandard: 200.\";\n\"CurrentSizeTooltip\" = \"Aktuelle Größe auf der Festplatte.\";\n\"SortBy\" = \"Sortieren:\";\n\"LastCopiedAt\" = \"Zeitpunkt des letzten Eintrags\";\n\"FirstCopiedAt\" = \"Zeitpunkt des ersten Eintrags\";\n\"NumberOfCopies\" = \"Häufigkeit der Einträge\";\n\"SortByTooltip\" = \"Standard: Zeitpunkt des letzten Eintrags.\";\n"
  },
  {
    "path": "Maccy/Settings/el.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"\";\n\"TurnOff\" = \"\";\n\"TurnOffDescription\" = \"\";\n\"TurnOffShellScript\" = \"\";\n\"TurnOffViaMenuIconDescription\" = \"\";\n\"TurnOffNextShellScript\" = \"\";\n\"ClearHistoryOnQuit\" = \"\";\n\"ClearHistoryOnQuitTooltip\" = \"\";\n\"ClearSystemClipboard\" = \"\";\n\"ClearSystemClipboardTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/el.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"\";\n\"PopupAt\" = \"\";\n\"PopupAtCursor\" = \"\";\n\"PopupAtMenuBarIcon\" = \"\";\n\"PopupAtWindowCenter\" = \"\";\n\"PopupAtScreenCenter\" = \"\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/el.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"\";\n\"LaunchAtLogin\" = \"\";\n\"CheckForUpdates\" = \"\";\n\"CheckNow\" = \"\";\n\"Open\" = \"\";\n\"OpenTooltip\" = \"\";\n\"Pin\" = \"\";\n\"PinTooltip\" = \"\";\n\"Delete\" = \"\";\n\"DeleteTooltip\" = \"\";\n\"ShowPreview\" = \"\";\n\"ShowPreviewTooltip\" = \"\";\n\"Behavior\" = \"\";\n\"PasteAutomatically\" = \"\";\n\"PasteWithoutFormatting\" = \"\";\n\"Modifiers\" = \"\";\n\"Search\" = \"\";\n\"Exact\" = \"\";\n\"Fuzzy\" = \"\";\n\"Regex\" = \"\";\n\"Mixed\" = \"\";\n\"NotificationsAndSounds\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/el.lproj/IgnoreSettings.strings",
    "content": "\"ApplicationsTab\" = \"Εφαρμογές\";\n\"IgnoredAppsDescription\" = \"Υπάρχει δυνατότητα να αγνοήσεις αντιγραφές που προέρχονται από συγκεκριμένες εφαρμογές.\\nΈχε υπόψιν σου ότι ο τρόπος που λειτουργεί δεν είναι 100% σίγουρος, οπότε καλύτερα να χρησιμοποιείς τον τύπο επικόλλησης όποτε είναι αναγκαίο.\";\n\"IgnoredPasteboardTypesDescription\" = \"Υπάρχει δυνατότητα να αγνοήσεις κάποιους τύπους αντιγραφών από τη μνήμη.\\nΑπό προεπιλογή, κάποιοί γνωστοί τύποι εφαρμογών έχουν οριστεί. Μπορείς να τους αφαιρέσεις και να προσθέσεις οποιοδήποτε τύπο θέλεις.\";\n\"IgnoredAllAppsExceptListed\" = \"Αγνόησε όλες τις εφαρμογές εκτός από την λίστα\";\n\"Title\" = \"Αγνόηση\";\n\"PasteboardTypesTab\" = \"Τύποι επικόλλησης\";\n\"IgnoredPasteboardTypesReset\" = \"Επαναφορά\";\n\"RegexpTab\" = \"Τυπικές εκφράσεις\";\n\"IgnoredRegexpsDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/el.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"\";\n\"Key\" = \"\";\n\"Alias\" = \"\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n\"PinCustomizationDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/el.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"\";\n\"Save\" = \"\";\n\"Files\" = \"\";\n\"Images\" = \"\";\n\"Text\" = \"\";\n\"SaveDescription\" = \"\";\n\"Size\" = \"\";\n\"SizeTooltip\" = \"\";\n\"CurrentSizeTooltip\" = \"\";\n\"SortBy\" = \"\";\n\"LastCopiedAt\" = \"\";\n\"FirstCopiedAt\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"SortByTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/en.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Advanced\";\n\"TurnOff\" = \"Turn off\";\n\"TurnOffDescription\" = \"Temporarily ignore all new copies.\\nYou are likely to use it programmatically and disable application while copying sensitive data.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copy data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"You can also click the menu icon with ⌥ pressed.\\nTo ignore only the next copy, click with ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copy data\";\n\"ClearHistoryOnQuit\" = \"Clear history on quit\";\n\"ClearHistoryOnQuitTooltip\" = \"Automatically remove all unpinned items before quitting the application.\";\n\"ClearSystemClipboard\" = \"Clear the system clipboard too\";\n\"ClearSystemClipboardTooltip\" = \"When enabled, clearing the history would also clear the current system clipboard.\";\n"
  },
  {
    "path": "Maccy/Settings/en.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Appearance\";\n\"PopupAt\" = \"Popup at:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"Menu icon\";\n\"PopupAtWindowCenter\" = \"Window center\";\n\"PopupAtScreenCenter\" = \"Screen center\";\n\"PopupAtLastPosition\" = \"Last position\";\n\"PopupAtLastLocationReset\" = \"Reset position\";\n\"PopupAtTooltip\" = \"Change the location where popup appears.\\nDefault: Cursor.\";\n\"SearchVisibilityAlways\" = \"Always\";\n\"SearchVisibilityDuringSearch\" = \"During search\";\n\"ActiveScreen\" = \"Active screen\";\n\"PinTo\" = \"Pin to:\";\n\"PinToTop\" = \"Top\";\n\"PinToBottom\" = \"Bottom\";\n\"PinToTooltip\" = \"Change the location of pinned items.\\nDefault: Top.\";\n\"ImageHeight\" = \"Image height:\";\n\"ImageHeightTooltip\" = \"Maximum image preview height.\\nDefault: 40.\\nHint: Set to 16 to look like text items.\";\n\"PreviewDelay\" = \"Preview delay:\";\n\"PreviewDelayTooltip\" = \"Delay in milliseconds until a preview popup is shown.\\nDefault: 1500.\";\n\"HighlightMatches\" = \"Highlight matches:\";\n\"HighlightMatchColor\" = \"Color\";\n\"HighlightMatchBold\" = \"Bold\";\n\"HighlightMatchItalic\" = \"Italic\";\n\"HighlightMatchUnderline\" = \"Underline\";\n\"HighlightMatchesTooltip\" = \"Change the highlighting style for search matches.\\nDefault: Bold.\";\n\"ShowSpecialSymbols\" = \"Show special symbols\";\n\"ShowSpecialSymbolsTooltip\" = \"Show newlines, tabs, leading and trailing spaces via special symbols.\";\n\"ShowMenuIcon\" = \"Show menu icon\";\n\"ShowRecentCopyInMenuBar\" = \"Show recent copy next to menu icon\";\n\"ShowSearchField\" = \"Show search field\";\n\"ShowTitleBeforeSearchField\" = \"Show title before search field\";\n\"ShowApplicationIcons\" = \"Show application icons\";\n\"ShowFooter\" = \"Show footer\";\n\"OpenPreferencesWarning\" = \"⚠️ Press ⌘, (command+comma) to open preferences when footer is hidden.\";\n"
  },
  {
    "path": "Maccy/Settings/en.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"General\";\n\"LaunchAtLogin\" = \"Launch at login\";\n\"CheckForUpdates\" = \"Check for updates automatically\";\n\"CheckNow\" = \"Check now\";\n\"Open\" = \"Open:\";\n\"OpenTooltip\" = \"Global shortcut key to open application.\\nA repeated press of the main key while holding modifiers will select the next item in the list. In this mode, releasing modifier keys will confirm selection and close the popup.\\nDefault: ⇧⌘C.\";\n\"Pin\" = \"Pin:\";\n\"PinTooltip\" = \"Shortcut key to pin history item.\\nDefault: ⌥P.\";\n\"Delete\" = \"Delete:\";\n\"DeleteTooltip\" = \"Shortcut key to delete history item.\\nDefault: ⌥⌫.\";\n\"ShowPreview\" = \"Preview:\";\n\"ShowPreviewTooltip\" = \"Show preview with additional information.\\nDefault: ⌃Space.\";\n\"Behavior\" = \"Behavior:\";\n\"PasteAutomatically\" = \"Paste automatically\";\n\"PasteWithoutFormatting\" = \"Paste without formatting\";\n\"Modifiers\" = \"Customize the behavior when selecting item:\\n• Select with %@ pressed to copy item.\\n• Select with %@ pressed to copy and paste item.\\n• Select with %@ pressed to copy, clear formatting, and paste item.\";\n\"Search\" = \"Search:\";\n\"Exact\" = \"Exact\";\n\"Fuzzy\" = \"Fuzzy\";\n\"Regex\" = \"Regular expressions\";\n\"Mixed\" = \"Mixed\";\n\"NotificationsAndSounds\" = \"Notifications and sounds 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/en.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignore\";\n\"ApplicationsTab\" = \"Applications\";\n\"IgnoredAppsDescription\" = \"It's possible to ignore copies coming from certain applications.\\nPlease note that the way it works is not bullet-proof, so it's better to use pasteboard types when possible.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignore all applications except listed\";\n\"PasteboardTypesTab\" = \"Pasteboard types\";\n\"IgnoredPasteboardTypesDescription\" = \"It's possible to ignore certain pasteboard item types from remembering.\\nBy default, some known application-specific types are defined. You can remove them and add any custom types you want.\";\n\"IgnoredPasteboardTypesReset\" = \"Reset\";\n\"RegexpTab\" = \"Regular expressions\";\n\"IgnoredRegexpsDescription\" = \"It's possible to ignore certain copies from remembering based on defined regular expressions.\";\n"
  },
  {
    "path": "Maccy/Settings/en.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Pins\";\n\"Key\" = \"Key\";\n\"Alias\" = \"Title\";\n\"Content\" = \"Content\";\n\"ContentIsNotText\" = \"Non-editable content (image or file)\";\n\"RichTextEditWarning\" = \"Editing will discard all formatting.\";\n\"PinCustomizationDescription\" = \"You can customize the hotkey, title, and content of any pinned item. To edit, double-click the item and enter a new value.\\nPlease note that only plain text can be changed.\";\n"
  },
  {
    "path": "Maccy/Settings/en.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Storage\";\n\"Save\" = \"Save:\";\n\"Files\" = \"Files\";\n\"Images\" = \"Images\";\n\"Text\" = \"Text\";\n\"SaveDescription\" = \"Change what types of copied content should be stored.\";\n\"Size\" = \"Size:\";\n\"SizeTooltip\" = \"Number of history items to keep.\\nDefault: 200.\";\n\"CurrentSizeTooltip\" = \"Current size on disk.\";\n\"SortBy\" = \"Sort by:\";\n\"LastCopiedAt\" = \"Time of last copy\";\n\"FirstCopiedAt\" = \"Time of first copy\";\n\"NumberOfCopies\" = \"Number of copies\";\n\"SortByTooltip\" = \"Default: Time of last copy.\";\n"
  },
  {
    "path": "Maccy/Settings/eo.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Altnivelaj agordoj\";\n\"TurnOff\" = \"Malŝalti\";\n\"TurnOffDescription\" = \"Provizore ignori ĉiujn novajn kopiojn.\\nVi verŝajne uzos tion en programo kaj malŝaltos la aplikaĵon dum kopiado de tiklaj datumoj.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopii datumojn\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopii datumojn\";\n\"ClearHistoryOnQuit\" = \"Forigi la historion dum forlaso\";\n\"ClearHistoryOnQuitTooltip\" = \"Aŭtomate forigi ĉiujn nefiksitajn erojn antaŭ ol forlasi la aplikaĵon.\";\n\"ClearSystemClipboard\" = \"Forigi ankaŭ la sisteman tondujon\";\n\"ClearSystemClipboardTooltip\" = \"Kiam ŝaltita, forigo de la historio ankaŭ forigus la nunan sisteman tondujon.\";\n"
  },
  {
    "path": "Maccy/Settings/eo.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Aspekto\";\n\"PopupAtLastPosition\" = \"Lasta pozicio\";\n\"SearchVisibilityAlways\" = \"Ĉiam\";\n\"SearchVisibilityDuringSearch\" = \"Dum la serĉado\";\n\"ActiveScreen\" = \"Aktiva ekrano\";\n\"HighlightMatchColor\" = \"Koloro\";\n\"ShowSpecialSymbols\" = \"Montri specialajn simbolojn\";\n\"PopupAt\" = \"Loko de la ŝprucfenestro:\";\n\"PopupAtCursor\" = \"Musmontrilo\";\n\"PopupAtMenuBarIcon\" = \"Menua bildsimbolo\";\n\"PopupAtWindowCenter\" = \"Centro de la fenestro\";\n\"PopupAtScreenCenter\" = \"Centro de la ekrano\";\n\"PopupAtLastLocationReset\" = \"Restarigi la pozicion\";\n\"PopupAtTooltip\" = \"Ŝanĝi la aperlokon de la ŝprucfenestro.\\nDefaŭlta: Musmontrilo.\";\n\"PinTo\" = \"Fiksi al:\";\n\"PinToTop\" = \"Supro\";\n\"PinToBottom\" = \"Malsupro\";\n\"PinToTooltip\" = \"Ŝanĝi la lokon de la fiksitaj eroj.\\nDefaŭlta: Supro.\";\n\"ImageHeight\" = \"Bilda alto:\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"Antaŭrigarda prokrasto:\";\n\"PreviewDelayTooltip\" = \"Prokrasto en milisekundoj ĝis la antaŭrigarda ŝprucfenestro montriĝas.\\nDefaŭlto: 1500.\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchBold\" = \"Grasa\";\n\"HighlightMatchItalic\" = \"Kursiva\";\n\"HighlightMatchUnderline\" = \"Substrekita\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"Montri la menuan bildsimbolon\";\n\"ShowRecentCopyInMenuBar\" = \"Montri la lastan kopion apud la menua bildsimbolo\";\n\"ShowSearchField\" = \"Montri la serĉujon\";\n\"ShowTitleBeforeSearchField\" = \"Montri la titolon antaŭ la serĉujo\";\n\"ShowApplicationIcons\" = \"Montri bildsimbolojn de aplikaĵoj\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/eo.lproj/GeneralSettings.strings",
    "content": "\"CheckNow\" = \"Kontroli nun\";\n\"Open\" = \"Malfermi:\";\n\"Pin\" = \"Fiksi:\";\n\"Delete\" = \"Forigi:\";\n\"Behavior\" = \"Konduto:\";\n\"PasteAutomatically\" = \"Alglui aŭtomate\";\n\"PasteWithoutFormatting\" = \"Alglui sen tekstaranĝo\";\n\"Search\" = \"Serĉi:\";\n\"Regex\" = \"Regulaj esprimoj\";\n\"Title\" = \"Ĝenerale\";\n\"LaunchAtLogin\" = \"Lanĉi dum ensaluto\";\n\"CheckForUpdates\" = \"Serĉi ĝisdatigojn aŭtomate\";\n\"OpenTooltip\" = \"Ĝenerala fulmoklavo por malfermi la aplikaĵon.\\nRipetita premo de la ĉefa klavo dum tenado de modifaj klavoj elektos la sekvan eron en la listo. En ĉi tiu reĝimo, liberigo de la modifaj klavoj konfirmos la elekton kaj fermos la ŝprucfenestron.\\nDefaŭlta: ⇧⌘C.\";\n\"PinTooltip\" = \"Fulmoklavo por fiksi historian eron.\\nDefaŭlta: ⌥P.\";\n\"DeleteTooltip\" = \"Fulmoklavo por forigi historian eron.\\nDefaŭlta: ⌥⌫.\";\n\"ShowPreview\" = \"Antaŭrigardo:\";\n\"ShowPreviewTooltip\" = \"Montri antaŭrigardon kun aldonaj informoj.\\nDefaŭlta: ⌃Space.\";\n\"Behavior\" = \"Konduto:\";\n\"Modifiers\" = \"\";\n\"Exact\" = \"Ekzakta\";\n\"Fuzzy\" = \"Proksimuma\";\n\"Mixed\" = \"Miksita\";\n\"NotificationsAndSounds\" = \"Sciigoj kaj sonoj 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/eo.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignori\";\n\"ApplicationsTab\" = \"Aplikaĵoj\";\n\"IgnoredAppsDescription\" = \"\";\n\"IgnoredAllAppsExceptListed\" = \"Ignori ĉiujn aplikaĵojn krom la listigitajn\";\n\"PasteboardTypesTab\" = \"\";\n\"IgnoredPasteboardTypesDescription\" = \"\";\n\"IgnoredPasteboardTypesReset\" = \"Restarigi\";\n\"RegexpTab\" = \"Regulaj esprimoj\";\n\"IgnoredRegexpsDescription\" = \"Eblas ignori iujn kopiojn de la memoro surbaze de difinitaj regulaj esprimoj.\";\n"
  },
  {
    "path": "Maccy/Settings/eo.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Fiksitaj eroj\";\n\"Key\" = \"Klavo\";\n\"Alias\" = \"Titolo\";\n\"Content\" = \"Enhavo\";\n\"ContentIsNotText\" = \"Ne-redaktebla enhavo (bildo aŭ dosiero)\";\n\"RichTextEditWarning\" = \"Redaktado forigos ĉian tekstaranĝon.\";\n\"PinCustomizationDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/eo.lproj/StorageSettings.strings",
    "content": "\"Text\" = \"Teksto\";\n\"Images\" = \"Bildoj\";\n\"Files\" = \"Dosieroj\";\n\"Save\" = \"Konservi:\";\n\"SortBy\" = \"Ordigi laŭ:\";\n\"Title\" = \"Konservado\";\n\"SaveDescription\" = \"Ŝanĝi la specojn de kopiita enhavo, kiuj estu konservitaj.\";\n\"Size\" = \"Grando:\";\n\"SizeTooltip\" = \"Nombro de historiaj eroj konservotaj.\\nDefaŭlta: 200.\";\n\"CurrentSizeTooltip\" = \"Nuna grando sur disko.\";\n\"LastCopiedAt\" = \"Momento de lasta kopio\";\n\"FirstCopiedAt\" = \"Momento de unua kopio\";\n\"NumberOfCopies\" = \"Nombro de kopioj\";\n\"SortByTooltip\" = \"Defaŭlta: Momento de lasta kopio.\";\n"
  },
  {
    "path": "Maccy/Settings/es.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avanzado\";\n\"TurnOff\" = \"Desactivar\";\n\"TurnOffDescription\" = \"Ignorar temporalmente los nuevos elementos copiados.\\nTambién se puede (des)activar la opción por consola para evitar la copia de datos sensibles.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# volver a copiar elementos\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"También puede hacer clic en el icono de menú con ⌥ presionado.\\nPara ignorar solo la siguiente copia, hacer clic con ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copiar datos\";\n\"ClearHistoryOnQuit\" = \"Borrar el historial al salir\";\n\"ClearHistoryOnQuitTooltip\" = \"Elimina automáticamente todos los elementos no anclados antes de salir de la aplicación.\";\n\"ClearSystemClipboard\" = \"Limpia también el portapapeles del sistema\";\n\"ClearSystemClipboardTooltip\" = \"Cuando está habilitado, borrar el historial también borrará el portapapeles actual del sistema.\";\n"
  },
  {
    "path": "Maccy/Settings/es.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Apariencia\";\n\"PopupAt\" = \"Ventana emergente en:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"Icono del menú\";\n\"PopupAtWindowCenter\" = \"Centro de la ventana\";\n\"PopupAtScreenCenter\" = \"Centro de la pantalla\";\n\"PopupAtLastPosition\" = \"Última posición\";\n\"PopupAtLastLocationReset\" = \"Restablecer la posición\";\n\"PopupAtTooltip\" = \"Cambiar la ubicación donde aparece la ventana emergente\\nPor defecto: Cursor.\";\n\"SearchVisibilityAlways\" = \"Siempre\";\n\"SearchVisibilityDuringSearch\" = \"Durante la búsqueda\";\n\"ActiveScreen\" = \"Pantalla activa\";\n\"PinTo\" = \"Anclar a:\";\n\"PinToTop\" = \"Arriba\";\n\"PinToBottom\" = \"Abajo\";\n\"PinToTooltip\" = \"Cambiar la ubicación de los artículos anclados.\\nPor defecto: Arriba.\";\n\"ImageHeight\" = \"Altura de imagen:\";\n\"ImageHeightTooltip\" = \"Tamaño máximo de la previsualización de imágenes.\\nPor defecto: 40.\\nNota: Seleccionar 16 para igualar al tamaño del texto.\";\n\"PreviewDelay\" = \"Retraso de vista previa:\";\n\"PreviewDelayTooltip\" = \"Retraso en milisegundos hasta que se muestra una ventana emergente de vista previa.\\nPor defecto: 1500.\";\n\"HighlightMatches\" = \"Partidos destacados:\";\n\"HighlightMatchColor\" = \"Color\";\n\"HighlightMatchBold\" = \"Negrita\";\n\"HighlightMatchItalic\" = \"Cursiva\";\n\"HighlightMatchUnderline\" = \"Subrayar\";\n\"HighlightMatchesTooltip\" = \"Cambie el estilo de resaltado para las coincidencias de búsqueda.\\nPredeterminado: Negrita.\";\n\"ShowSpecialSymbols\" = \"Mostrar símbolos especiales\";\n\"ShowSpecialSymbolsTooltip\" = \"Muestre nuevas líneas, tabulaciones y espacios iniciales y finales mediante símbolos especiales.\";\n\"ShowMenuIcon\" = \"Mostrar icono en la barra de menús\";\n\"ShowRecentCopyInMenuBar\" = \"Mostrar copia reciente junto al icono de menús\";\n\"ShowSearchField\" = \"Mostrar campo de búsqueda\";\n\"ShowTitleBeforeSearchField\" = \"Mostrar título antes del buscador\";\n\"ShowFooter\" = \"Mostrar footer\";\n\"ShowApplicationIcons\" = \"Mostrar iconos de aplicaciones\";\n\"OpenPreferencesWarning\" = \"⚠️ Presionar ⌘, (command+comma) para abrir las preferencias cuando el footer esté oculto.\";\n"
  },
  {
    "path": "Maccy/Settings/es.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"General\";\n\"LaunchAtLogin\" = \"Abrir al iniciar sesión\";\n\"CheckForUpdates\" = \"Buscar actualizaciones automáticamente\";\n\"CheckNow\" = \"Comprobar ahora\";\n\"Open\" = \"Abrir:\";\n\"OpenTooltip\" = \"Tecla de acceso directo global para abrir la aplicación.\\nUna pulsación repetida de la tecla principal mientras se mantienen pulsados los modificadores seleccionará el siguiente elemento de la lista. En este modo, al soltar las teclas modificadoras se confirmará la selección y se cerrará la ventana emergente.\\nPor defecto: ⇧⌘C.\";\n\"Pin\" = \"Anclar:\";\n\"PinTooltip\" = \"Combinación de teclas para anclar un elemento del historial.\\nPor defecto: ⌥P.\";\n\"Delete\" = \"Borrar:\";\n\"DeleteTooltip\" = \"Combinación de teclas para borrar un elemento del historial.\\nPor defecto: ⌥⌫.\";\n\"ShowPreview\" = \"Vista previa:\";\n\"ShowPreviewTooltip\" = \"Mostrar vista previa con información adicional.\\nPor defecto: ⌃Space.\";\n\"Behavior\" = \"Comportamiento:\";\n\"PasteAutomatically\" = \"Pegar automáticamente\";\n\"PasteWithoutFormatting\" = \"Pegar sin formato\";\n\"Modifiers\" = \"Personalizar el comportamiento al seleccionar un elemento:\\n• Seleccionar presionando %@ para copiar el elemento.\\n• Seleccionar presionando %@ para copiar y pegar un elemento.\\n• Seleccionar presionando %@ para copiar, quitar formato y pegar un elemento.\";\n\"Search\" = \"Buscar:\";\n\"Exact\" = \"Exacta\";\n\"Fuzzy\" = \"Aproximada\";\n\"Regex\" = \"Expresiones regulares\";\n\"Mixed\" = \"Mezclada\";\n\"NotificationsAndSounds\" = \"Notificaciones y sonidos 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/es.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Exclusiones\";\n\"ApplicationsTab\" = \"Aplicaciones\";\n\"IgnoredAppsDescription\" = \"Es posible excluir la copia desde ciertas aplicaciones.\\nAún así, esta función no es a prueba de balas. Por lo que, de ser posible, se aconseja optar en su lugar por una exclusión en base a su tipo.\";\n\"IgnoredAllAppsExceptListed\" = \"Excluir todas las aplicaciones excepto las añadidas\";\n\"PasteboardTypesTab\" = \"Tipos\";\n\"IgnoredPasteboardTypesDescription\" = \"Es posible excluir la copia en base al tipo de portapapeles.\\nPor defecto, ya se excluyen ciertos tipos de portapapeles usados por algunas aplicaciones populares. Puedes borrar o añadir tantos como desees.\";\n\"IgnoredPasteboardTypesReset\" = \"Restablecer\";\n\"RegexpTab\" = \"Expresiones regulares\";\n\"IgnoredRegexpsDescription\" = \"Es posible excluir la copia en base a expresiones regulares.\";\n"
  },
  {
    "path": "Maccy/Settings/es.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Anclas\";\n\"Key\" = \"Clave\";\n\"Alias\" = \"Título\";\n\"Content\" = \"Contenido\";\n\"ContentIsNotText\" = \"Contenido no editable (imagen o archivo)\";\n\"RichTextEditWarning\" = \"La edición descartará todo el formato.\";\n\"PinCustomizationDescription\" = \"Puedes personalizar la tecla de acceso rápido, el título y el contenido de cualquier elemento anclado.\\nPara editarlo, haga doble clic en el elemento e introduzca un nuevo valor.\";\n"
  },
  {
    "path": "Maccy/Settings/es.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Almacenamiento\";\n\"Save\" = \"Almacenar:\";\n\"Files\" = \"Archivos\";\n\"Images\" = \"Imágenes\";\n\"Text\" = \"Texto\";\n\"SaveDescription\" = \"Cambiar qué tipos de contenidos deben ser almacenados.\";\n\"Size\" = \"Tamaño máximo:\";\n\"SizeTooltip\" = \"Número de elementos a almacenar en el historial.\\nPor defecto: 200.\";\n\"CurrentSizeTooltip\" = \"Tamaño actual en disco.\";\n\"SortBy\" = \"Ordenar por:\";\n\"LastCopiedAt\" = \"Más nuevos, primero\";\n\"FirstCopiedAt\" = \"Más antiguos, primero\";\n\"NumberOfCopies\" = \"Número de copias\";\n\"SortByTooltip\" = \"Por defecto: Más nuevos, primero.\";\n"
  },
  {
    "path": "Maccy/Settings/fa.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"پیشرفته\";\n\"TurnOff\" = \"خاموش کردن\";\n\"TurnOffDescription\" = \"برای مدتی همهٔ کپی‌های جدید را نادیده بگیرید.\\nاحتمالاً این گزینه را به‌صورت برنامه‌نویسی استفاده می‌کنید و برنامه را هنگام کپی کردن داده‌های حساس غیرفعال می‌کنید.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# داده‌ها را کپی کنید\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"همچنین می‌توانید با نگه داشتن کلید ⌥ روی آیکون منو کلیک کنید.\\nبرای نادیده گرفتن فقط کپی بعدی، با نگه داشتن ⌥⇧ کلیک کنید.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# داده‌ها را کپی کنید\";\n\"ClearHistoryOnQuit\" = \"\";\n\"ClearHistoryOnQuitTooltip\" = \"\";\n\"ClearSystemClipboard\" = \"\";\n\"ClearSystemClipboardTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/fa.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"ظاهر\";\n\"PopupAt\" = \"مکان باز شدن پنجره:\";\n\"PopupAtCursor\" = \"مکان‌نما (Cursor)\";\n\"PopupAtMenuBarIcon\" = \"آیکون منو\";\n\"PopupAtWindowCenter\" = \"مرکز پنجره\";\n\"PopupAtScreenCenter\" = \"مرکز صفحه نمایش\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/fa.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"عمومی\";\n\"CheckForUpdates\" = \"بررسی خودکار به روز رسانی\";\n\"CheckNow\" = \"بررسی کن\";\n\"Open\" = \"باز:\";\n\"LaunchAtLogin\" = \"باز شدن هنگام ورود\";\n\"OpenTooltip\" = \"میانبر سراسری برای باز کردن برنامه.\\nبا نگه داشتن کلیدهای تغییر (modifiers) و فشار دادن دوباره کلید اصلی، مورد بعدی در فهرست انتخاب می‌شود. در این حالت، رها کردن کلیدهای تغییر، انتخاب را تأیید کرده و پنجرهٔ بازشو را می‌بندد.\\nمقدار پیش‌فرض: ⇧⌘C.\";\n\"Pin\" = \"سنجاق:\";\n\"PinTooltip\" = \"میانبر برای سنجاق کردن مورد تاریخچه.\\nمقدار پیش‌فرض: ⌥P.\";\n\"Delete\" = \"حذف:\";\n\"DeleteTooltip\" = \"میانبر برای حذف مورد تاریخچه.\\nمقدار پیش‌فرض: ⌥⌫.\";\n\"ShowPreview\" = \"پیش‌نمایش:\";\n\"ShowPreviewTooltip\" = \"نمایش پیش‌نمایش با اطلاعات اضافی.\\nمقدار پیش‌فرض: ⌃Space.\";\n\"Behavior\" = \"رفتار:\";\n\"PasteAutomatically\" = \"چسباندن خودکار\";\n\"PasteWithoutFormatting\" = \"چسباندن بدون قالب‌بندی\";\n\"Modifiers\" = \"\";\n\"Search\" = \"جستجو:\";\n\"Exact\" = \"دقیق\";\n\"Fuzzy\" = \"تقریبی\";\n\"Regex\" = \"عبارات منظم\";\n\"Mixed\" = \"ترکیبی\";\n\"NotificationsAndSounds\" = \"اعلان‌ها و صداها 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/fa.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"نادیده گرفتن\";\n\"ApplicationsTab\" = \"اپلیکیشن\";\n\"IgnoredAppsDescription\" = \"می‌توانید کپی‌هایی را که از بعضی برنامه‌ها انجام می‌شوند نادیده بگیرید.\\nفقط توجه کنید این روش همیشه دقیق نیست، پس اگر می‌توانید از نوع‌های «Pasteboard» استفاده کنید.\";\n\"IgnoredAllAppsExceptListed\" = \"تمام برنامه‌ها را نادیده بگیر، مگر آن‌هایی که در لیست هستند\";\n\"PasteboardTypesTab\" = \"نوع‌های «پیست‌بورد» (Pasteboard)\";\n\"IgnoredPasteboardTypesDescription\" = \"امکان نادیده گرفتن بعضی نوع‌های آیتمِ پیست‌بورد وجود دارد.\\nبه‌طور پیش‌فرض چند نوع مخصوص برنامه‌های مختلف تعریف شده‌اند. می‌توانید آن‌ها را حذف کنید یا نوع‌های دلخواه خودتان را اضافه کنید.\";\n\"IgnoredPasteboardTypesReset\" = \"Reset\";\n\"RegexpTab\" = \"عبارت‌های منظم (Regular expressions)\";\n\"IgnoredRegexpsDescription\" = \"می‌توان بعضی کپی‌ها را بر اساس عبارت‌های منظم تعریف‌شده نادیده گرفت.\";\n"
  },
  {
    "path": "Maccy/Settings/fa.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"\";\n\"Key\" = \"\";\n\"Alias\" = \"\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n\"PinCustomizationDescription\" = \"\";"
  },
  {
    "path": "Maccy/Settings/fa.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"حافظه\";\n\"Save\" = \"ذخیره:\";\n\"Files\" = \"فایل‌ها\";\n\"Images\" = \"تصاویر\";\n\"Text\" = \"متن\";\n\"SaveDescription\" = \"تعیین کنید کدام نوع از محتوای کپی‌شده باید ذخیره شود.\";\n\"Size\" = \"\";\n\"SizeTooltip\" = \"\";\n\"CurrentSizeTooltip\" = \"\";\n\"SortBy\" = \"\";\n\"LastCopiedAt\" = \"\";\n\"FirstCopiedAt\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"SortByTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/fr.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avancé\";\n\"TurnOff\" = \"Désactiver\";\n\"TurnOffDescription\" = \"Ignorer temporairement toute nouvelle copie.\\nVous êtes susceptible de l’utiliser pour le développement ou lors de la copie de données sensibles.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copier des données\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Vous pouvez également cliquer sur l’icône du menu en appuyant sur ⌥.\\nPour ignorer uniquement la copie suivante, cliquez avec ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copier des données\";\n\"ClearHistoryOnQuit\" = \"Effacer l’historique en quittant\";\n\"ClearHistoryOnQuitTooltip\" = \"Supprimez automatiquement tous les éléments non épinglés avant de quitter l’application.\";\n\"ClearSystemClipboard\" = \"Effacer également le presse-papiers du système\";\n\"ClearSystemClipboardTooltip\" = \"Lorsqu’elle est activée, l’effacement de l’historique effacera également le presse-papiers du système actuel.\";\n"
  },
  {
    "path": "Maccy/Settings/fr.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Apparence\";\n\"PopupAt\" = \"Popup sur :\";\n\"PopupAtCursor\" = \"Curseur\";\n\"PopupAtMenuBarIcon\" = \"Icône du menu\";\n\"PopupAtWindowCenter\" = \"Centre de la fenêtre\";\n\"PopupAtScreenCenter\" = \"Centre de l’écran\";\n\"PopupAtLastPosition\" = \"Dernière position\";\n\"PopupAtLastLocationReset\" = \"Réinitialiser la position\";\n\"PopupAtTooltip\" = \"Changer la localisation de l’apparition du popup.\\nPar défaut : Curseur.\";\n\"SearchVisibilityAlways\" = \"Toujours\";\n\"SearchVisibilityDuringSearch\" = \"Pendant la recherche\";\n\"ActiveScreen\" = \"Écran actif\";\n\"PinTo\" = \"Épingler à :\";\n\"PinToTop\" = \"Haut\";\n\"PinToBottom\" = \"Bas\";\n\"PinToTooltip\" = \"Change la localisation des éléments épinglés.\\nPar défaut : Haut.\";\n\"ImageHeight\" = \"Hauteur de l'image :\";\n\"ImageHeightTooltip\" = \"Hauteur maximale de l’aperçu de l’image.\\nPar défaut : 40.\\nAstuce : réglez sur 16 pour qu’ils ressemblent à des éléments de texte.\";\n\"PreviewDelay\" = \"Délai de prévisualisation :\";\n\"PreviewDelayTooltip\" = \"Délai en millisecondes jusqu’à ce qu’une fenêtre d’aperçu s'affiche.\\nPar défaut : 1500.\";\n\"HighlightMatches\" = \"Format des termes trouvés :\";\n\"HighlightMatchColor\" = \"Couleur\";\n\"HighlightMatchBold\" = \"Gras\";\n\"HighlightMatchItalic\" = \"Italique\";\n\"HighlightMatchUnderline\" = \"Souligner\";\n\"HighlightMatchesTooltip\" = \"Modifiez le style de surbrillance des correspondances de recherche.\\nPar défaut : Gras.\";\n\"ShowSpecialSymbols\" = \"Afficher les symboles spéciaux\";\n\"ShowSpecialSymbolsTooltip\" = \"Afficher les nouvelles lignes, les tabulations, les espaces de début et de fin via des symboles spéciaux.\";\n\"ShowMenuIcon\" = \"Afficher l’icône du menu\";\n\"ShowRecentCopyInMenuBar\" = \"Afficher la copie récente à côté de l’icône du menu\";\n\"ShowSearchField\" = \"Afficher le champ de recherche\";\n\"ShowTitleBeforeSearchField\" = \"Afficher le titre avant la barre de recherche\";\n\"ShowFooter\" = \"Afficher le bas de l’application\";\n\"ShowApplicationIcons\" = \"Afficher les icônes des applications\";\n\"OpenPreferencesWarning\" = \"⚠️ Pressez ⌘, (command+comma) pour ouvrir les préférences quand le bas de l’application est caché.\";\n"
  },
  {
    "path": "Maccy/Settings/fr.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Général\";\n\"LaunchAtLogin\" = \"Lancer au démarrage\";\n\"CheckForUpdates\" = \"Vérifier les mises à jour automatiquement\";\n\"CheckNow\" = \"Vérifier maintenant\";\n\"Open\" = \"Ouvrir :\";\n\"OpenTooltip\" = \"Touche de raccourci globale pour ouvrir l'application.\\nUne pression répétée sur la touche principale tout en maintenant les modificateurs enfoncés permet de sélectionner l'élément suivant dans la liste. Dans ce mode, le relâchement des touches de modification confirmera la sélection et fermera la fenêtre contextuelle.\\nPar défaut : %@C.\";\n\"Pin\" = \"Épingler :\";\n\"PinTooltip\" = \"Touche de raccourci pour épingler un élément de l’historique.\\nPar défaut : %@P.\";\n\"Delete\" = \"Supprimer :\";\n\"DeleteTooltip\" = \"Touche de raccourci pour supprimer un élément de l’historique.\\nPar défaut : %@⌫.\";\n\"ShowPreview\" = \"Aperçu :\";\n\"ShowPreviewTooltip\" = \"Afficher l'aperçu avec des informations supplémentaires.\\nPar défaut : ⌃Space.\";\n\"Behavior\" = \"Comportement :\";\n\"PasteAutomatically\" = \"Coller automatiquement\";\n\"PasteWithoutFormatting\" = \"Coller sans formatage\";\n\"Modifiers\" = \"Personnaliser le comportement lors de la sélection de l’élément :\\n— sélectionnez avec %@ pressé pour copier un élément ;\\n— sélectionnez avec %@ pressé pour copier et coller l’élément ;\\n— sélectionnez avec %@ pressé pour copier, reformater et coller l’élément.\";\n\"Search\" = \"Recherche :\";\n\"Exact\" = \"Exacte\";\n\"Fuzzy\" = \"Approximative\";\n\"Regex\" = \"Expressions régulières\";\n\"Mixed\" = \"Mixte\";\n\"NotificationsAndSounds\" = \"Notifications et sons 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/fr.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignorer\";\n\"ApplicationsTab\" = \"Applications\";\n\"IgnoredAppsDescription\" = \"Il est possible d’ignorer les copies provenant de certaines applications.\\nVeuillez noter que la façon dont cela fonctionne n’est pas infaillible, il est donc préférable de filtrer le type de presse-papier lorsque cela est possible.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorer toutes les applications sauf celles listées\";\n\"PasteboardTypesTab\" = \"Types\";\n\"IgnoredPasteboardTypesDescription\" = \"Il est possible d’ignorer certains types de presse-papiers.\\nPar défaut, certains types spécifiques à l’application sont définis. Vous pouvez les supprimer et ajouter tous les types personnalisés que vous souhaitez.\";\n\"IgnoredPasteboardTypesReset\" = \"Remise à zéro\";\n\"RegexpTab\" = \"Expressions régulières\";\n\"IgnoredRegexpsDescription\" = \"Il est possible d’ignorer certaines copies de la mémorisation en fonction d’expressions régulières définies.\";\n"
  },
  {
    "path": "Maccy/Settings/fr.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Épingles\";\n\"Key\" = \"Clé\";\n\"Alias\" = \"Titre\";\n\"Content\" = \"Contenu\";\n\"ContentIsNotText\" = \"Contenu non modifiable (image ou fichier)\";\n\"RichTextEditWarning\" = \"L'édition ne tient pas compte de la mise en forme.\";\n\"PinCustomizationDescription\" = \"Vous pouvez personnaliser le raccourci clavier, le titre et le contenu de tout élément épinglé.\\nPour les modifier, double-cliquez sur l'élément et entrez une nouvelle valeur. Veuillez noter que seul le texte en clair peut être modifié.\";\n"
  },
  {
    "path": "Maccy/Settings/fr.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Stockage\";\n\"Save\" = \"Sauver :\";\n\"Files\" = \"Fichiers\";\n\"Images\" = \"Images\";\n\"Text\" = \"Textes\";\n\"SaveDescription\" = \"Modifiez les types de contenu copié à stocker.\";\n\"Size\" = \"Taille :\";\n\"SizeTooltip\" = \"Nombre d'éléments à garder dans l'historique.\\nPar défaut : 200.\";\n\"CurrentSizeTooltip\" = \"Taille actuelle sur le disque.\";\n\"SortBy\" = \"Trier par :\";\n\"LastCopiedAt\" = \"Date de dernière copie\";\n\"FirstCopiedAt\" = \"Date de première copie\";\n\"NumberOfCopies\" = \"Nombre de copies\";\n\"SortByTooltip\" = \"Par défaut : Date de dernière copie.\";\n"
  },
  {
    "path": "Maccy/Settings/he.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"מתקדם\";\n\"TurnOff\" = \"כיבוי\";\n\"TurnOffDescription\" = \"להתעלם זמנית מכל העותקים החדשים.\\nכנראה שזה ישמש אותך במהלך פיתוח ולהשבית יישום במהלך העתקת נתונים רגישים.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# העתקת נתונים\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"אפשר ללחוץ על סמל התפריט תוך הזחקה של ⌥.\\nכדי להתעלם רק מהעותק הבא, יש ללחוץ עם העכבר תוך החזקה של ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# העתקת נתונים\";\n\"ClearHistoryOnQuit\" = \"פינוי היסטוריה עם היציאה\";\n\"ClearHistoryOnQuitTooltip\" = \"להסיר את כל הפריטים שאינם נעוצים בטרם יציאה מהיישום.\";\n\"ClearSystemClipboard\" = \"פינוי לוח הגזירים של המערכת בנוסף\";\n\"ClearSystemClipboardTooltip\" = \"כאשר ההגדרה פעילה, פינוי ההיסטוריה יפנה גם את לוח הגזירים הנוכחי של המערכת.\";\n"
  },
  {
    "path": "Maccy/Settings/he.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"מראה\";\n\"PopupAt\" = \"הקפצת חלונית ב־:\";\n\"PopupAtCursor\" = \"סמן\";\n\"PopupAtMenuBarIcon\" = \"סמל תפריט\";\n\"PopupAtWindowCenter\" = \"מרכז החלון\";\n\"PopupAtScreenCenter\" = \"מרכז המסך\";\n\"PopupAtLastPosition\" = \"תפקיד אחרון\";\n\"PopupAtLastLocationReset\" = \"אפס את המיקום\";\n\"PopupAtTooltip\" = \"החלפת מקום הופעת החלונית הצצה.\\nברירת מחדל: סמן.\";\n\"SearchVisibilityAlways\" = \"תָמִיד\";\n\"SearchVisibilityDuringSearch\" = \"במהלך החיפוש\";\n\"ActiveScreen\" = \"מסך פעיל\";\n\"PinTo\" = \"הצמדה אל:\";\n\"PinToTop\" = \"למעלה\";\n\"PinToBottom\" = \"למטה\";\n\"PinToTooltip\" = \"החלפת מקום הפריטים הנעוצים.\\nברירת מחדל: למעלה.\";\n\"ImageHeight\" = \"גובה תמונה::\";\n\"ImageHeightTooltip\" = \"גודל מרבי לתצוגה מקדימה של תמונות.\\nברירת מחדל: 40.\\nעצה: יש להגדיר ל־16 כדי שייראו כמו פריטי טקסט.\";\n\"PreviewDelay\" = \"השהיית תצוגה מקדימה:\";\n\"PreviewDelayTooltip\" = \"השהיה באלפיות השנייה עד להופעת חלונית תצוגה מקדימה.\\nברירת מחדל: 1500.\";\n\"HighlightMatches\" = \"הדגשת תוצאות:\";\n\"HighlightMatchColor\" = \"צֶבַע\";\n\"HighlightMatchBold\" = \"מודגש\";\n\"HighlightMatchItalic\" = \"נטוי\";\n\"HighlightMatchUnderline\" = \"קו תחתי\";\n\"HighlightMatchesTooltip\" = \"החלפת סגנון ההדגשה לתוצאות החיפוש.\\nברירת המחדל: מודגש.\";\n\"ShowSpecialSymbols\" = \"הצגת סימנים מיוחדים\";\n\"ShowSpecialSymbolsTooltip\" = \"הצגת שורות חדשות, טאבים, רווחים פותחים וסוגרים דרך סימנים מיוחדים.\";\n\"ShowMenuIcon\" = \"הצגת סמל תפריט\";\n\"ShowRecentCopyInMenuBar\" = \"הצגת עותק עדכני ליד סמל התפריט\";\n\"ShowSearchField\" = \"הצגת שדה חיפוש\";\n\"ShowTitleBeforeSearchField\" = \"הצגת כותרת לפני שדה החיפוש\";\n\"ShowFooter\" = \"הצגת כותרת תחתונה\";\n\"OpenPreferencesWarning\" = \"⚠️ לחצו ⌘, (command+פסיק) כדי לפתוח את ההעדפות כאשר הכותרת התחתונה מוסתרת.\";\n\"ShowApplicationIcons\" = \"הצג סמלי יישומים\";\n"
  },
  {
    "path": "Maccy/Settings/he.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"כללי\";\n\"LaunchAtLogin\" = \"להפעיל עם הכניסה למערכת\";\n\"CheckForUpdates\" = \"לבדוק אוטומטית אם יש עדכונים\";\n\"CheckNow\" = \"לבדוק עכשיו\";\n\"Open\" = \"פתיחה:\";\n\"OpenTooltip\" = \"מקש קיצור גלובלי לפתיחת היישום.\\nלחיצה חוזרת על המקש הראשי תוך החזקת מקשי השינוי תבחר את הפריט הבא ברשימה. במצב זה, שחרור מקשי השינוי יאשר את הבחירה ויסגור את החלון הקופץ.\\nברירת מחדל: ⇧⌘C.\";\n\"Pin\" = \"נעיצה:\";\n\"PinTooltip\" = \"צירוף מקשים לנעיצת פריט.\\nברירת מחדל: %@P.\";\n\"Delete\" = \"מחיקה:\";\n\"DeleteTooltip\" = \"צירוף מקשים למחיקת פריט מההיסטוריה.\\nברירת מחדל: %@⌫.\";\n\"ShowPreview\" = \"תצוגה מקדימה:\";\n\"ShowPreviewTooltip\" = \"הצג תצוגה מקדימה עם מידע נוסף.\\nברירת מחדל: ⌃Space.\";\n\"Behavior\" = \"התנהגות:\";\n\"PasteAutomatically\" = \"להדביק אוטומטית\";\n\"PasteWithoutFormatting\" = \"להדביק בלי עיצוב\";\n\"Modifiers\" = \"התאמת ההתנהגות בעת בחירת פריט:\\n• יש לבחור תוך החזקה של %@ כדי להעתיק פריט.\\n• יש לבחור תוך החזקה של %@ כדי להעתיק ולהדביק פריט.\\n• יש לבחור תוך החזקה של %@ כדי להעתיק, להסיר את העיצוב ולהדביק.\";\n\"Search\" = \"חיפוש:\";\n\"Exact\" = \"מדויק\";\n\"Fuzzy\" = \"מעורפל\";\n\"Regex\" = \"ביטויים רגולריים\";\n\"Mixed\" = \"מעורבב\";\n\"NotificationsAndSounds\" = \"התראות וצלילים 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/he.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"התעלמות\";\n\"ApplicationsTab\" = \"יישומים\";\n\"IgnoredAppsDescription\" = \"אפשר להתעלם מעותקים שמגיעים מיישומים מסוימים\\nנא לשים לב שזה לא המימוש הכי אמין, עדיף להשתמש בסוגים שבלוח ההדבקה אם אפשר.\";\n\"IgnoredAllAppsExceptListed\" = \"התעלמות מכל היישומים חוץ מאלו הרשומים\";\n\"PasteboardTypesTab\" = \"סוגי לוחות הדבקה\";\n\"IgnoredPasteboardTypesDescription\" = \"אפשר להתעלם מזכירת סוגי פריטים מסוימים בלוח ההדבקה.\\nכברירת מחדל, מספר סוגים נקודתיים ליישומים מוגדרים. אפשר להסיר אותם ולהוסיף איזה סוג מותאם משלך שנחוץ לך.\";\n\"IgnoredPasteboardTypesReset\" = \"אִתחוּל\";\n\"RegexpTab\" = \"ביטויים רגולריים\";\n\"IgnoredRegexpsDescription\" = \"אפשר להתעלם מזכירת עותקים מסוימים לפי ביטויים רגולריים מוגדרים.\";\n"
  },
  {
    "path": "Maccy/Settings/he.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"נעוצים\";\n\"Key\" = \"מקש קישור\";\n\"Alias\" = \"כותרת\";\n\"Content\" = \"תוכן\";\n\"ContentIsNotText\" = \"תוכן שאינו ניתן לעריכה (תמונה או קובץ)\";\n\"RichTextEditWarning\" = \"העריכה תבטל את כל העיצוב.\";\n\"PinCustomizationDescription\" = \"ניתן להתאים אישית את מקש הקיצור, הכותרת והתוכן של כל פריט מוצמד. כדי לערוך, לחץ פעמיים על הפריט והזן ערך חדש.\\nשימו לב שניתן לשנות רק טקסט רגיל.\";\n"
  },
  {
    "path": "Maccy/Settings/he.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"אחסון\";\n\"Save\" = \"שמירה:\";\n\"Files\" = \"קבצים\";\n\"Images\" = \"תמונות\";\n\"Text\" = \"טקסט\";\n\"SaveDescription\" = \"לשנות אילו סוגים של תוכן מועתק יאוחסנו.\";\n\"Size\" = \"גודל:\";\n\"SizeTooltip\" = \"מספר פריטי ההיסטוריה לשמירה.\\nברירת מחדל: 200.\";\n\"SortBy\" = \"סידור לפי:\";\n\"LastCopiedAt\" = \"מועד העותק האחרון\";\n\"FirstCopiedAt\" = \"מועד העותק הראשון\";\n\"NumberOfCopies\" = \"מספר עותקים\";\n\"SortByTooltip\" = \"ברירת מחדל: מועד העותק האחרון.\";\n\"CurrentSizeTooltip\" = \"גודל נוכחי בדיסק.\";\n"
  },
  {
    "path": "Maccy/Settings/hi.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"\";\n\"TurnOff\" = \"\";\n\"TurnOffDescription\" = \"\";\n\"TurnOffShellScript\" = \"\";\n\"TurnOffViaMenuIconDescription\" = \"\";\n\"TurnOffNextShellScript\" = \"\";\n\"ClearHistoryOnQuit\" = \"\";\n\"ClearHistoryOnQuitTooltip\" = \"\";\n\"ClearSystemClipboard\" = \"\";\n\"ClearSystemClipboardTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/hi.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"\";\n\"PopupAt\" = \"\";\n\"PopupAtCursor\" = \"\";\n\"PopupAtMenuBarIcon\" = \"\";\n\"PopupAtWindowCenter\" = \"\";\n\"PopupAtScreenCenter\" = \"\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/hi.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"सामान्य\";\n\"LaunchAtLogin\" = \"\";\n\"CheckForUpdates\" = \"\";\n\"CheckNow\" = \"\";\n\"Open\" = \"\";\n\"OpenTooltip\" = \"\";\n\"Pin\" = \"\";\n\"PinTooltip\" = \"\";\n\"Delete\" = \"\";\n\"DeleteTooltip\" = \"\";\n\"ShowPreview\" = \"\";\n\"ShowPreviewTooltip\" = \"\";\n\"Behavior\" = \"\";\n\"PasteAutomatically\" = \"\";\n\"PasteWithoutFormatting\" = \"\";\n\"Modifiers\" = \"\";\n\"Search\" = \"\";\n\"Exact\" = \"\";\n\"Fuzzy\" = \"\";\n\"Regex\" = \"\";\n\"Mixed\" = \"\";\n\"NotificationsAndSounds\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/hi.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"\";\n\"ApplicationsTab\" = \"\";\n\"IgnoredAppsDescription\" = \"\";\n\"IgnoredAllAppsExceptListed\" = \"\";\n\"PasteboardTypesTab\" = \"\";\n\"IgnoredPasteboardTypesDescription\" = \"\";\n\"IgnoredPasteboardTypesReset\" = \"\";\n\"RegexpTab\" = \"\";\n\"IgnoredRegexpsDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/hi.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"\";\n\"Key\" = \"\";\n\"Alias\" = \"\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n\"PinCustomizationDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/hi.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"\";\n\"Save\" = \"\";\n\"Files\" = \"\";\n\"Images\" = \"\";\n\"Text\" = \"\";\n\"SaveDescription\" = \"\";\n\"Size\" = \"\";\n\"SizeTooltip\" = \"\";\n\"CurrentSizeTooltip\" = \"\";\n\"SortBy\" = \"\";\n\"LastCopiedAt\" = \"\";\n\"FirstCopiedAt\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"SortByTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/hr.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Napredno\";\n\"TurnOff\" = \"Isključi\";\n\"TurnOffDescription\" = \"Privremeno zanemari sve nove kopije.\\nVjerojatno ćeš ga koristiti tijekom programiranja i deaktivirati tijekom kopiranja osjetljivih podataka.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopiraj podatke\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Također možete kliknuti ikonu izbornika s pritisnutim ⌥.\\nZa ignoriranje samo sljedeće kopije kliknite s ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopiraj podatke\";\n\"ClearHistoryOnQuit\" = \"Izbriši povijest prilikom zatvaranja programa\";\n\"ClearHistoryOnQuitTooltip\" = \"Automatski ukloni sve otkvačene elemente prije zatvaranja programa.\";\n\"ClearSystemClipboard\" = \"Očistite i međuspremnik sustava\";\n\"ClearSystemClipboardTooltip\" = \"Kada je omogućeno, brisanje povijesti također bi izbrisalo trenutni sistemski međuspremnik.\";\n"
  },
  {
    "path": "Maccy/Settings/hr.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Izgled\";\n\"PopupAt\" = \"Skočni prozor:\";\n\"PopupAtCursor\" = \"Kursor\";\n\"PopupAtMenuBarIcon\" = \"Ikona u izborniku\";\n\"PopupAtWindowCenter\" = \"Središte prozora\";\n\"PopupAtScreenCenter\" = \"Sredina ekrana\";\n\"PopupAtLastPosition\" = \"Zadnja pozicija\";\n\"PopupAtLastLocationReset\" = \"Resetiraj položaj\";\n\"PopupAtTooltip\" = \"Promijeni mjesto gdje će se skočni prozor pojaviti.\\nStandardno: Kursor.\";\n\"SearchVisibilityAlways\" = \"Uvijek\";\n\"SearchVisibilityDuringSearch\" = \"Tijekom pretrage\";\n\"ActiveScreen\" = \"Aktivni ekran\";\n\"PinTo\" = \"Prikvači:\";\n\"PinToTop\" = \"Gore\";\n\"PinToBottom\" = \"Dolje\";\n\"PinToTooltip\" = \"Promijeni mjesto prikvačenih elemenata.\\nStandardno: Gore.\";\n\"ImageHeight\" = \"Visina slike:\";\n\"ImageHeightTooltip\" = \"Maksimalna visina slike pregleda.\\nStandardno: 40.\\nSavjet: Postavi na 16 da bi sličilo tekstu.\";\n\"PreviewDelay\" = \"Odgoda pregleda:\";\n\"PreviewDelayTooltip\" = \"Odgoda u milisekundama dok se ne prikaže skočni prozor za pregled.\\nStandardno: 1500.\";\n\"HighlightMatches\" = \"Označite podudaranja:\";\n\"HighlightMatchColor\" = \"Boja\";\n\"HighlightMatchBold\" = \"Podebljano\";\n\"HighlightMatchItalic\" = \"Kurziv\";\n\"HighlightMatchUnderline\" = \"Naglasiti\";\n\"HighlightMatchesTooltip\" = \"Promijenite stil isticanja za podudaranja pretraživanja.\\nStandardno: Podebljano.\";\n\"ShowSpecialSymbols\" = \"Prikaži posebne simbole\";\n\"ShowSpecialSymbolsTooltip\" = \"Prikažite nove retke, kartice, razmake na početku i na kraju pomoću posebnih simbola.\";\n\"ShowMenuIcon\" = \"Prikaži ikonu u izborniku\";\n\"ShowRecentCopyInMenuBar\" = \"Prikaži nedavnu kopiju pored ikone u izborniku\";\n\"ShowSearchField\" = \"Prikaži polje pretrage\";\n\"ShowTitleBeforeSearchField\" = \"Prikaži naslov prije polja pretrage\";\n\"ShowFooter\" = \"Prikaži podnožje\";\n\"OpenPreferencesWarning\" = \"⚠️ Za otvaranje postavaka kad je podnožje skriveno, pritisni ⌘, (command+comma).\";\n\"ShowApplicationIcons\" = \"Prikaži ikone aplikacija\";\n"
  },
  {
    "path": "Maccy/Settings/hr.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Opće\";\n\"LaunchAtLogin\" = \"Pokreni nakon prijave\";\n\"CheckForUpdates\" = \"Automatski provjeri aktualnost\";\n\"CheckNow\" = \"Provjeri sada\";\n\"Open\" = \"Otvoriti:\";\n\"OpenTooltip\" = \"Globalna tipkovnica prečaca za otvaranje aplikacije.\\nPonovljenim pritiskom na glavnu tipku dok držite modifikatore odabrat ćete sljedeću stavku na popisu. U ovom načinu rada, otpuštanjem modifikatorskih tipki potvrdit ćete odabir i zatvoriti skočni prozor.\\nZadano: ⇧⌘C.\";\n\"Pin\" = \"Prikačiti:\";\n\"PinTooltip\" = \"Tipka prečaca za prikvačivanje stavke povijesti.\\nStandardno: %@P.\";\n\"Delete\" = \"Izbrisati:\";\n\"DeleteTooltip\" = \"Tipka prečaca za brisanje stavke povijesti.\\nStandardno: %@⌫.\";\n\"ShowPreview\" = \"Pregled:\";\n\"ShowPreviewTooltip\" = \"Prikaži pregled s dodatnim informacijama.\\nStandardno: ⌃Space.\";\n\"Behavior\" = \"Ponašanje:\";\n\"PasteAutomatically\" = \"Umetni automatski\";\n\"PasteWithoutFormatting\" = \"Umetni neformatirano\";\n\"Modifiers\" = \"Prilagodi ponašanje pri biranju elemenata:\\n• Za kopiranje elementa odaberi zajedno s pritisnutom tipkom %@.\\n• Za kopiranje i umetanje elementa odaberi zajedno s pritisnutom tipkom %@.\\n• Za kopiranje, uklanjanje formata i umetanje elementa odaberi zajedno s pritisnutom tipkom %@.\";\n\"Search\" = \"Traži:\";\n\"Exact\" = \"Točno\";\n\"Fuzzy\" = \"Netočno\";\n\"Regex\" = \"Regularni izrazi\";\n\"Mixed\" = \"Mješoviti\";\n\"NotificationsAndSounds\" = \"Obavijesti i zvukovi 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/hr.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Zanemari\";\n\"ApplicationsTab\" = \"Programi\";\n\"IgnoredAppsDescription\" = \"Moguće je zanemariti kopije koje dolaze iz određenih programa.\\nNapominjemo da taj način rada nije sto posto siguran, pa je bolje koristiti vrste međuspremnika kad je to moguće.\";\n\"IgnoredAllAppsExceptListed\" = \"Zanemarite sve aplikacije osim navedenih\";\n\"PasteboardTypesTab\" = \"Vrste međuspremnika\";\n\"IgnoredPasteboardTypesDescription\" = \"Moguće je zanemariti pamćenje određenih vrsta elemenata međuspremnika.\\nNeke poznate vrste specifične za programe su definirane. Možeš ih ukloniti i dodati bilo koje prilagođene vrste koje želiš.\";\n\"IgnoredPasteboardTypesReset\" = \"Resetiraj\";\n\"RegexpTab\" = \"Regularni izrazi\";\n\"IgnoredRegexpsDescription\" = \"Moguće je ignorirati određene kopije iz pamćenja na temelju definiranih regularnih izraza.\";\n"
  },
  {
    "path": "Maccy/Settings/hr.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Pribadače\";\n\"Key\" = \"Tipka\";\n\"Alias\" = \"Naslov\";\n\"Content\" = \"Sadržaj\";\n\"ContentIsNotText\" = \"Sadržaj koji se ne može uređivati (slika ili datoteka)\";\n\"RichTextEditWarning\" = \"Uređivanjem će se odbaciti svo formatiranje.\";\n\"PinCustomizationDescription\" = \"Možete prilagoditi prečac, naslov i sadržaj bilo koje prikvačene stavke. Za uređivanje dvaput kliknite stavku i unesite novu vrijednost.\\nImajte na umu da se može promijeniti samo običan tekst.\";\n"
  },
  {
    "path": "Maccy/Settings/hr.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Skladištenje\";\n\"Save\" = \"Spremi:\";\n\"Files\" = \"Datoteke\";\n\"Images\" = \"Slike\";\n\"Text\" = \"Tekst\";\n\"SaveDescription\" = \"Promijeni vrstu kopiranog sadržaja koji će se spremati.\";\n\"Size\" = \"Veličina:\";\n\"SizeTooltip\" = \"Broj elemenata koji se čuvaju u povijesti.\\nStandardno: 200.\";\n\"SortBy\" = \"Redoslijed:\";\n\"LastCopiedAt\" = \"Vrijeme zadnje kopije\";\n\"FirstCopiedAt\" = \"Vrijeme prve kopije\";\n\"NumberOfCopies\" = \"Broj kopija\";\n\"SortByTooltip\" = \"Standardno: Vrijeme zadnje kopije.\";\n\"CurrentSizeTooltip\" = \"Trenutna veličina na disku.\";\n"
  },
  {
    "path": "Maccy/Settings/hu.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Haladó\";\n\"TurnOffViaMenuIconDescription\" = \"A menü ikonra is kattinthatsz a ⌥ gomb lenyomása közben.\\nCsak a következő másolás figyelmen kívül hagyásához, kattints a ⌥⇧ gombokat lenyomva.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# adatok másolása\";\n\"ClearHistoryOnQuit\" = \"Előzmények törlése kilépésnél\";\n\"ClearHistoryOnQuitTooltip\" = \"Az összes kitűzetlen elem automatikus törlése mielőtt az alkalmazás bezáródik.\";\n\"ClearSystemClipboard\" = \"A rendszer vágólapjának is a törlése\";\n\"ClearSystemClipboardTooltip\" = \"Ha be van kapcsolva, az előzmények törlésével a rendszer aktuális vágólapját is törli.\";\n\"TurnOff\" = \"Kikapcsolás\";\n\"TurnOffDescription\" = \"Az összes új másolás figyelmen kívül hagyása.\\nValószínűleg programozottan használod, és kikapcsolod az alkalmazást bizalmas adatok másolása közben.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# adatok másolása\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n"
  },
  {
    "path": "Maccy/Settings/hu.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Megjelenés\";\n\"PopupAt\" = \"Felugrás helye:\";\n\"PopupAtCursor\" = \"Kurzor\";\n\"PopupAtMenuBarIcon\" = \"Menü ikon\";\n\"PopupAtWindowCenter\" = \"Ablak közepe\";\n\"PopupAtScreenCenter\" = \"Képernyő közepe\";\n\"PopupAtLastPosition\" = \"Legutóbbi pozíció\";\n\"PopupAtLastLocationReset\" = \"Pozíció visszaállítása\";\n\"PopupAtTooltip\" = \"Változtasd meg a felugrás helyét.\\nAlapértelmezett: Kurzor.\";\n\"SearchVisibilityAlways\" = \"Mindig\";\n\"SearchVisibilityDuringSearch\" = \"A keresés során\";\n\"ActiveScreen\" = \"Aktív képernyő\";\n\"PinTo\" = \"Kitűzés:\";\n\"PinToTop\" = \"Fent\";\n\"PinToBottom\" = \"Lent\";\n\"PinToTooltip\" = \"Változtasd meg a kitűzött elemek helyét.\\nAlapértelmezett: Fent.\";\n\"ImageHeight\" = \"Kép magassága:\";\n\"ImageHeightTooltip\" = \"Az előnézeti kép maximum magassága.\\nAlapértelmezett: 40.\\nTipp: Allítsd 16-ra, hogy akkora legyen, mint a szövegek.\";\n\"PreviewDelay\" = \"Előnézet késleltetése:\";\n\"PreviewDelayTooltip\" = \"A késleltetés milliszekundumokban mielőtt a felugró előnézet megjelenik.\\nAlapértelmezett: 1500.\";\n\"HighlightMatches\" = \"Egyezések kiemelése:\";\n\"HighlightMatchColor\" = \"Szín\";\n\"HighlightMatchBold\" = \"Vastag\";\n\"HighlightMatchItalic\" = \"Dőlt\";\n\"HighlightMatchUnderline\" = \"Aláhúzott\";\n\"HighlightMatchesTooltip\" = \"Változtasd meg a keresési találatok kiemelésének a stílusát.\\nAlapértelmezett: Vastag.\";\n\"ShowSpecialSymbols\" = \"Speciális karakterek megjelenítése\";\n\"ShowSpecialSymbolsTooltip\" = \"Az újsorok, tabulátorok, kezdő és záró szóközök megjelenítése speciális szimbólumokkal.\";\n\"ShowMenuIcon\" = \"Menü ikon megjelenítése\";\n\"ShowRecentCopyInMenuBar\" = \"Legutóbbi másolás megjelenítése a menü ikon mellett\";\n\"ShowSearchField\" = \"Keresőmező megjelenítése\";\n\"ShowTitleBeforeSearchField\" = \"Cím megjelenítése a keresőmező előtt\";\n\"ShowFooter\" = \"Lábléc megjelenítése\";\n\"ShowApplicationIcons\" = \"Alkalmazás ikonok megjelenítése\";\n\"OpenPreferencesWarning\" = \"⚠️ Nyomd meg a ⌘, (command+comma) gombot a Preferenciák megnyitásához, ha a lábléc el van rejtve.\";\n"
  },
  {
    "path": "Maccy/Settings/hu.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Általános\";\n\"LaunchAtLogin\" = \"Indítás a bejelentkezéssel együtt\";\n\"CheckForUpdates\" = \"Frissítések automatikus keresése\";\n\"CheckNow\" = \"Ellenőrzés most\";\n\"Open\" = \"Megnyitás:\";\n\"OpenTooltip\" = \"Globális gyorsbillentyű az alkalmazás megnyitásához.\\nA fő billentyű ismételt lenyomása a módosítók lenyomva tartása mellett a következő elemet választja ki a listában. Ebben az üzemmódban a módosító billentyűk elengedése megerősíti a kiválasztást és bezárja a felugró ablakot.\\nEgyértelmezett: ⇧⌘C.\";\n\"Pin\" = \"Kitűzés:\";\n\"PinTooltip\" = \"Gyorsbillentyű az előzmény elem kitűzéséhez.\\nAlapértelmezett: ⌥P.\";\n\"Delete\" = \"Törlés:\";\n\"DeleteTooltip\" = \"Gyorsbillentyű az előzmény elem törléséhez.\\nAlapértelmezett: ⌥⌫.\";\n\"ShowPreview\" = \"Előnézet:\";\n\"ShowPreviewTooltip\" = \"Előnézet megjelenítése további információkkal.\\nAlapértelmezett: ⌃Space.\";\n\"Behavior\" = \"Viselkedés:\";\n\"PasteAutomatically\" = \"Automatikus beillesztés\";\n\"PasteWithoutFormatting\" = \"Beillesztés formázások nélkül\";\n\"Modifiers\" = \"Viselkedés testreszabása az elem kiválasztásakor:\\n• Tartsd nyomva a %@ gombot és válaszd ki az elemet a másoláshoz.\\n• Tartsd nyomva a %@ gombot és válaszd ki az elemet a másoláshoz es a beillesztéshez.\\n• Tartsd nyomva a %@ gombot és válaszd ki az elemet a másoláshoz, a formázások törléséhez és a beillesztéshez.\";\n\"Search\" = \"Keresés:\";\n\"Exact\" = \"Egyező\";\n\"Fuzzy\" = \"Hasonló\";\n\"Regex\" = \"Reguláris kifejezés\";\n\"Mixed\" = \"Kevert\";\n\"NotificationsAndSounds\" = \"Értesítések és hangok 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/hu.lproj/IgnoreSettings.strings",
    "content": "\"PasteboardTypesTab\" = \"Vágólap típusok\";\n\"Title\" = \"Mellőzés\";\n\"ApplicationsTab\" = \"Alkalmazások\";\n\"IgnoredAppsDescription\" = \"Lehetőséged van bizonyos alkalmazásokban a másolások figyelmen kívül hagyására.\\nVedd figyelembe, hogy ez nem mindennel működik, tehát jobb ha a vágólap típusokat használod.\";\n\"IgnoredAllAppsExceptListed\" = \"Az összes alkalmazás figyelmen kívül hagyása kivéve a listázottakat\";\n\"IgnoredPasteboardTypesDescription\" = \"Lehetőséged van vágólap elem típusok megjegyzésének a figyelmen kívül hagyására.\\nNéhány ismert alkalmazásspecifikus lista alapértelmezetten létre van hozva. Kitörölheted őket és hozzáadhatsz bármilyen személyreszabott típust.\";\n\"IgnoredPasteboardTypesReset\" = \"Visszaállítás\";\n\"RegexpTab\" = \"Reguláris kifejezések\";\n\"IgnoredRegexpsDescription\" = \"Meghatározott reguláris kifejezések alapján figyelmen kívül lehet hagyni bizonyos másolásokat.\";\n"
  },
  {
    "path": "Maccy/Settings/hu.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Kitűzések\";\n\"Key\" = \"Gomb\";\n\"Alias\" = \"Cím\";\n\"Content\" = \"Tartalom\";\n\"ContentIsNotText\" = \"Nem szerkeszthető tartalom (kép vagy fájl)\";\n\"RichTextEditWarning\" = \"A szerkesztés elveti az összes formázást.\";\n\"PinCustomizationDescription\" = \"Testre szabhatja bármelyik kitűzött elem gyorsbillentyűjét, címét és tartalmát. A szerkesztéshez kattintson duplán az elemre, és írja be az új értéket.\\nFigyeljen arra, hogy csak egyszerű szöveg módosítható.\";\n"
  },
  {
    "path": "Maccy/Settings/hu.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Tárhely\";\n\"Save\" = \"Mentés:\";\n\"Files\" = \"Fájlok\";\n\"Images\" = \"Képek\";\n\"Text\" = \"Szöveg\";\n\"SaveDescription\" = \"Válaszd ki, milyen típusú másolt tartalom legyen tárolva.\";\n\"Size\" = \"Méret:\";\n\"SizeTooltip\" = \"A megtartott előzmények száma.\\nAlapértelmezett: 200.\";\n\"CurrentSizeTooltip\" = \"Jelenlegi méret a lemezen.\";\n\"SortBy\" = \"Rendezés:\";\n\"LastCopiedAt\" = \"Utolsó másolás ideje\";\n\"FirstCopiedAt\" = \"Első másolás ideje\";\n\"NumberOfCopies\" = \"Másolások száma\";\n\"SortByTooltip\" = \"Alapértelmezett: Utolsó másolás ideje.\";\n"
  },
  {
    "path": "Maccy/Settings/id.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Lanjutan\";\n\"TurnOff\" = \"Matikan\";\n\"TurnOffDescription\" = \"Abaikan sementara semua salinan baru.\\nKemungkinan Anda menggunakannya secara terprogram dan menonaktifkan aplikasi saat menyalin data sensitif.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# salin data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Anda juga dapat mengklik ikon menu dengan menekan ⌥.\\nUntuk mengabaikan hanya salinan berikutnya, klik dengan menekan ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# salin data\";\n\"ClearHistoryOnQuit\" = \"Hapus riwayat saat keluar\";\n\"ClearHistoryOnQuitTooltip\" = \"Hapus otomatis semua item yang tidak dipin sebelum keluar dari aplikasi.\";\n\"ClearSystemClipboard\" = \"Hapus juga clipboard sistem\";\n\"ClearSystemClipboardTooltip\" = \"Ketika diaktifkan, menghapus riwayat juga akan menghapus clipboard sistem saat ini.\";\n"
  },
  {
    "path": "Maccy/Settings/id.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Tampilan\";\n\"PopupAt\" = \"Muncul lewat:\";\n\"PopupAtCursor\" = \"Kursor\";\n\"PopupAtMenuBarIcon\" = \"Ikon Menu\";\n\"PopupAtWindowCenter\" = \"Pusat jendela\";\n\"PopupAtScreenCenter\" = \"Pusat layar\";\n\"PopupAtLastPosition\" = \"Posisi akhir\";\n\"PopupAtLastLocationReset\" = \"Atur ulang posisi\";\n\"ImageHeight\" = \"Tinggi gambar:\";\n\"ImageHeightTooltip\" = \"Tinggi maksimum pratinjau gambar.\\nBawaan: 40.\\nPetunjuk: Atur ke 16 agar tampil seperti item teks.\";\n\"PopupAtTooltip\" = \"Mengubah lokasi popup muncul.\\nDefault: Kursor.\";\n\"SearchVisibilityAlways\" = \"Selalu\";\n\"SearchVisibilityDuringSearch\" = \"Saat pencarian\";\n\"ActiveScreen\" = \"Layar aktif\";\n\"PinTo\" = \"Sematkan ke:\";\n\"PinToTop\" = \"Atas\";\n\"PinToBottom\" = \"Bawah\";\n\"PinToTooltip\" = \"Mengubah lokasi item tersemat.\\nDefault: Atas.\";\n\"PreviewDelay\" = \"Jeda pratinjau:\";\n\"PreviewDelayTooltip\" = \"Jeda (dalam milidetik) sampai pop-up pratinjau ditampilkan.\\nDefault: 1500.\";\n\"HighlightMatches\" = \"Sorot pencarian:\";\n\"HighlightMatchColor\" = \"Warna\";\n\"HighlightMatchBold\" = \"Tebal\";\n\"HighlightMatchItalic\" = \"Miring\";\n\"HighlightMatchUnderline\" = \"Garis bawah\";\n\"HighlightMatchesTooltip\" = \"Mengubah gaya sorot untuk hasil pencarian.\\nDefault: Tebal.\";\n\"ShowSpecialSymbols\" = \"Tampilkan simbol khusus\";\n\"ShowSpecialSymbolsTooltip\" = \"Menampilkan baris baru, tab, spasi awal, dan spasi akhir dengan simbol khusus.\";\n\"ShowMenuIcon\" = \"Tampilkan ikon menu\";\n\"ShowRecentCopyInMenuBar\" = \"Tampilkan salinan terakhir di sebelah ikon menu\";\n\"ShowSearchField\" = \"Tampilkan kolom pencarian\";\n\"ShowTitleBeforeSearchField\" = \"Tampilkan judul sebelum kolom pencarian\";\n\"ShowApplicationIcons\" = \"Tampilkan ikon aplikasi\";\n\"ShowFooter\" = \"Tampilkan footer\";\n\"OpenPreferencesWarning\" = \"⚠️ Tekan ⌘ untuk buka preferensi ketika footer tersembunyi.\";\n"
  },
  {
    "path": "Maccy/Settings/id.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Umum\";\n\"LaunchAtLogin\" = \"Luncurkan saat login\";\n\"CheckForUpdates\" = \"Cek pembaruan secara otomatis\";\n\"CheckNow\" = \"Periksa sekarang\";\n\"Open\" = \"Buka:\";\n\"OpenTooltip\" = \"Tombol pintasan global untuk membuka aplikasi.\\nTekan berulang kali tombol utama sambil menahan tombol modifikasi akan memilih item berikutnya dalam daftar. Dalam mode ini, melepaskan tombol modifikasi akan mengonfirmasi pemilihan dan menutup popup.\\nDefault: ⇧⌘C.\";\n\"Pin\" = \"Semat:\";\n\"PinTooltip\" = \"Tombol pintasan untuk menyematkan item riwayat.\\nDefault: ⌥P.\";\n\"Delete\" = \"Hapus:\";\n\"DeleteTooltip\" = \"Tombol pintasan untuk hapus item riwayat.\\nDefault: ⌥⌫.\";\n\"ShowPreview\" = \"Pratinjau:\";\n\"ShowPreviewTooltip\" = \"Tampilkan pratinjau dengan informasi tambahan.\\nDefault: ⌃Space.\";\n\"Behavior\" = \"Perilaku:\";\n\"PasteAutomatically\" = \"Salin otomatis\";\n\"PasteWithoutFormatting\" = \"\";\n\"Modifiers\" = \"\";\n\"Search\" = \"\";\n\"Exact\" = \"\";\n\"Fuzzy\" = \"\";\n\"Regex\" = \"\";\n\"Mixed\" = \"\";\n\"NotificationsAndSounds\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/id.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Abaikan\";\n\"ApplicationsTab\" = \"Aplikasi\";\n\"IgnoredAppsDescription\" = \"Mengabaikan salinan yang berasal dari aplikasi tertentu mungkin dilakukan.\\nHarap dicatat bahwa cara itu tidak selalu bekerja, lebih baik gunakan tipe papan tempel jika mungkin.\";\n\"IgnoredAllAppsExceptListed\" = \"Abaikan semua aplikasi kecuali yang terdaftar\";\n\"PasteboardTypesTab\" = \"Jenis papan tempel\";\n\"IgnoredPasteboardTypesDescription\" = \"Anda dapat mengabaikan jenis item papan klip tertentu agar tidak disimpan.\\nSecara default, beberapa jenis aplikasi tertentu yang sudah dikenal telah didefinisikan. Anda dapat menghapusnya dan menambahkan jenis kustom apa pun yang Anda inginkan.\";\n\"IgnoredPasteboardTypesReset\" = \"Atur Ulang\";\n\"RegexpTab\" = \"Ekspresi reguler\";\n\"IgnoredRegexpsDescription\" = \"Memungkinan untuk mengabaikan salinan tertentu dari proses penyimpanan berdasarkan ekspresi reguler yang telah didefinisikan.\";\n"
  },
  {
    "path": "Maccy/Settings/id.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Sematkan\";\n\"Key\" = \"Kunci\";\n\"Alias\" = \"Judul\";\n\"Content\" = \"Konten\";\n\"ContentIsNotText\" = \"Konten yang tidak dapat diedit (gambar atau file)\";\n\"RichTextEditWarning\" = \"Pengeditan akan menghapus semua format.\";\n\"PinCustomizationDescription\" = \"Anda dapat menyesuaikan tombol pintas, judul, dan isi dari setiap item yang dipin. Untuk mengedit, klik ganda item tersebut dan masukkan nilai baru.\\nHarap diperhatikan bahwa hanya teks biasa yang dapat diubah.\";\n"
  },
  {
    "path": "Maccy/Settings/id.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Penyimpanan\";\n\"Save\" = \"Simpan:\";\n\"Files\" = \"Berkas\";\n\"Images\" = \"Gambar\";\n\"Text\" = \"Teks\";\n\"SaveDescription\" = \"Mengubah jenis konten tersalin yang disimpan.\";\n\"Size\" = \"Ukuran:\";\n\"SizeTooltip\" = \"Jumlah item riwayat untuk disimpan.\\nDefault: 200.\";\n\"CurrentSizeTooltip\" = \"Ukuran saat ini pada disk.\";\n\"SortBy\" = \"Menurut:\";\n\"LastCopiedAt\" = \"Waktu disalin terakhir\";\n\"FirstCopiedAt\" = \"Waktu salinan pertama\";\n\"NumberOfCopies\" = \"\";\n\"SortByTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/it.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avanzate\";\n\"TurnOff\" = \"Disattivare\";\n\"TurnOffDescription\" = \"Ignora temporaneamente tutte le nuove copie.\\nÈ probabile che verrà utilizzato a livello di programmazione e disabiliti l'applicazione durante la copia di dati sensibili.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copia dei dati\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Puoi anche fare clic sull'icona del menu premendo ⌥.\\nPer ignorare solo la copia successiva, fare clic con ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copia dei dati\";\n\"ClearHistoryOnQuit\" = \"Elimina la cronologia e chiudi\";\n\"ClearHistoryOnQuitTooltip\" = \"Rimuovi automaticamente gli elementi non bloccati prima di chiudere l'applicazione.\";\n\"ClearSystemClipboard\" = \"Cancella anche gli appunti di sistema\";\n\"ClearSystemClipboardTooltip\" = \"Se abilitato, la cancellazione della cronologia cancellerebbe anche gli appunti di sistema correnti.\";\n"
  },
  {
    "path": "Maccy/Settings/it.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Aspetto\";\n\"PopupAt\" = \"Popup a:\";\n\"PopupAtCursor\" = \"Cursore\";\n\"PopupAtMenuBarIcon\" = \"Icona del menù\";\n\"PopupAtWindowCenter\" = \"Centro della finestra\";\n\"PopupAtScreenCenter\" = \"Centro dello schermo\";\n\"PopupAtLastPosition\" = \"Ultima posizione\";\n\"PopupAtLastLocationReset\" = \"Azzeramento della posizione\";\n\"PopupAtTooltip\" = \"Cambia la posizione in cui appare il popup.\\nDefault: Cursore.\";\n\"SearchVisibilityAlways\" = \"Sempre\";\n\"SearchVisibilityDuringSearch\" = \"Durante la ricerca\";\n\"ActiveScreen\" = \"Schermo attivo\";\n\"PinTo\" = \"Blocca su:\";\n\"PinToTop\" = \"Parte superiore\";\n\"PinToBottom\" = \"Parte inferiore\";\n\"PinToTooltip\" = \"Cambia la posizione degli elementi bloccati.\\nDefault: Parte superiore.\";\n\"ImageHeight\" = \"Altezza dell'immagine:\";\n\"ImageHeightTooltip\" = \"Altezza massima preview immagine.\\nDefault: 40.\\nSuggerimento: Impostala a 16 per farla sembrare come gli elementi testuali.\";\n\"PreviewDelay\" = \"Anteprima ritardo:\";\n\"PreviewDelayTooltip\" = \"Ritardo in millisecondi prima che venga visualizzato un popup di anteprima.\\nDefault: 1500.\";\n\"HighlightMatches\" = \"Evidenzia le partite:\";\n\"HighlightMatchColor\" = \"Colore\";\n\"HighlightMatchBold\" = \"Grassetto\";\n\"HighlightMatchItalic\" = \"Corsiva\";\n\"HighlightMatchUnderline\" = \"Sottolineare\";\n\"HighlightMatchesTooltip\" = \"Modifica lo stile di evidenziazione per le corrispondenze di ricerca.\\nPredefinito: Grassetto.\";\n\"ShowSpecialSymbols\" = \"Mostra simboli speciali\";\n\"ShowSpecialSymbolsTooltip\" = \"Mostra fine riga, tabulazioni, spazi iniziali e finali tramite simboli speciali.\";\n\"ShowMenuIcon\" = \"Mostra icona menù\";\n\"ShowRecentCopyInMenuBar\" = \"Mostra le copie recenti accanto all'icona menù\";\n\"ShowSearchField\" = \"Mostra campo ricerca\";\n\"ShowTitleBeforeSearchField\" = \"Mostra il titolo prima del campo ricerca\";\n\"ShowFooter\" = \"Mostra footer\";\n\"ShowApplicationIcons\" = \"Mostra le icone delle applicazioni\";\n\"OpenPreferencesWarning\" = \"⚠️ Premi ⌘, (command+comma) per aprire le preferenze quando il footer è nascosto.\";\n"
  },
  {
    "path": "Maccy/Settings/it.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Generali\";\n\"LaunchAtLogin\" = \"Apri al login\";\n\"CheckForUpdates\" = \"Controlla automaticamente la presenza di aggiornamenti\";\n\"CheckNow\" = \"Controlla ora\";\n\"Open\" = \"Aprire:\";\n\"OpenTooltip\" = \"Una pressione ripetuta del tasto principale mentre si tengono premuti i modificatori seleziona la voce successiva dell'elenco.\\nIn questa modalità, rilasciando i tasti modificatori si conferma la selezione e si chiude il popup.\\nDefault: ⇧⌘C.\";\n\"Pin\" = \"Bloccare:\";\n\"PinTooltip\" = \"Combinazione di tasti per bloccare l'elemento della cronologia.\\nDefault: %@P.\";\n\"Delete\" = \"Cancellare:\";\n\"DeleteTooltip\" = \"Combinazione di tasti per cancellare l'elemento della cronologia.\\nDefault: %@⌫.\";\n\"ShowPreview\" = \"Anteprima:\";\n\"ShowPreviewTooltip\" = \"Mostra anteprima con informazioni aggiuntive.\\nDefault: ⌃Space.\";\n\"Behavior\" = \"Comportamento:\";\n\"PasteAutomatically\" = \"Incolla automaticamente\";\n\"PasteWithoutFormatting\" = \"Incolla senza formattazione\";\n\"Modifiers\" = \"Personalizza il comportamento quando si seleziona un elemento:\\n• Seleziona con %@ premuto per copiare l'elemento.\\n• Seleziona con %@ premuto per copiare e incollare l'elemento.\\n• Seleziona con %@ premuto per copiare, eliminare la formattazione e incollare l'elemento.\";\n\"Search\" = \"Ricerca:\";\n\"Exact\" = \"Esatta\";\n\"Fuzzy\" = \"Approssimata\";\n\"Regex\" = \"Espressioni regolari\";\n\"Mixed\" = \"Mista\";\n\"NotificationsAndSounds\" = \"Notifiche e suoni 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/it.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignora\";\n\"ApplicationsTab\" = \"Applicazioni\";\n\"IgnoredAppsDescription\" = \"È possibile ignorare le copie provenienti da alcune applicazioni.\\nPrendi nota del fatto che il modo in cui questo funziona non è a prova di proiettile, quindi è meglio utilizzare tipi pasteboard quando possibile.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignora tutte le applicazioni tranne elencate\";\n\"PasteboardTypesTab\" = \"Tipi\";\n\"IgnoredPasteboardTypesDescription\" = \"È possibile escludere alcuni tipi di elementi dall'essere ricordati.\\nDi default, sono definiti i tipi dei gile di alcune applicazioni specifiche. Puoi aggiungere e rimuovere tipi personalizzati come ti pare.\";\n\"IgnoredPasteboardTypesReset\" = \"Reset\";\n\"RegexpTab\" = \"Espressioni regolari\";\n\"IgnoredRegexpsDescription\" = \"È possibile ignorare alcune copie in modo che vengano ricordate in base a espressioni regolari definite.\";\n"
  },
  {
    "path": "Maccy/Settings/it.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Bloccati\";\n\"Key\" = \"Chiave\";\n\"Alias\" = \"Titolo\";\n\"Content\" = \"Contenuto\";\n\"ContentIsNotText\" = \"Contenuto non modificabile (immagine o file)\";\n\"RichTextEditWarning\" = \"La modifica elimina tutta la formattazione.\";\n\"PinCustomizationDescription\" = \"È possibile personalizzare il tasto di scelta rapida, il titolo e il contenuto di qualsiasi elemento appuntato.\\nPer modificarlo, fare doppio clic sull'elemento e inserire un nuovo valore.\";\n"
  },
  {
    "path": "Maccy/Settings/it.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Memoria\";\n\"Save\" = \"Salva:\";\n\"Files\" = \"File\";\n\"Images\" = \"Immagini\";\n\"Text\" = \"Testo\";\n\"SaveDescription\" = \"Cambia il tipo dei contenuti copiati che dovrebbero essere salvati.\";\n\"Size\" = \"Dimensione:\";\n\"SizeTooltip\" = \"Numero di elementi da tenere nella cronologia.\\nDefault: 200.\";\n\"CurrentSizeTooltip\" = \"Dimensione attuale su disco.\";\n\"SortBy\" = \"Ordina per:\";\n\"LastCopiedAt\" = \"Tempo dell'ultima copia\";\n\"FirstCopiedAt\" = \"Tempo della prima copia\";\n\"NumberOfCopies\" = \"Numero di copie\";\n\"SortByTooltip\" = \"Default: Tempo dell'ultima copia.\";\n"
  },
  {
    "path": "Maccy/Settings/ja.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"詳細\";\n\"TurnOff\" = \"オフにする\";\n\"TurnOffDescription\" = \"このオプションを有効にすると、一時的に全ての新規コピーを無視します。\\nまた、重要なデータをコピーする場合は、下記のコマンドを用いてMaccyを無効にすることもできます。\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# データコピー\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"⌥ を押したままメニュー アイコンをクリックすることもできます。\\n次のコピーだけを無視するには、⌥⇧でクリックします。\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# データコピー\";\n\"ClearHistoryOnQuit\" = \"終了時、履歴をクリアする\";\n\"ClearHistoryOnQuitTooltip\" = \"アプリケーションを終了する前に、ピン留めされていない項目をすべて自動的に削除します。\";\n\"ClearSystemClipboard\" = \"システムのクリップボードもクリア\";\n\"ClearSystemClipboardTooltip\" = \"有効にすると、履歴をクリアすると現在のシステム クリップボードもクリアされます。\";\n"
  },
  {
    "path": "Maccy/Settings/ja.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"外見\";\n\"PopupAt\" = \"ポップアップ場所：\";\n\"PopupAtCursor\" = \"カーソル\";\n\"PopupAtMenuBarIcon\" = \"メニューアイコン\";\n\"PopupAtWindowCenter\" = \"窓の中央\";\n\"PopupAtScreenCenter\" = \"画面の中央\";\n\"PopupAtLastPosition\" = \"最終位置\";\n\"PopupAtLastLocationReset\" = \"リセット位置\";\n\"PopupAtTooltip\" = \"ポップアップが表れる場所を変更します。\\nデフォルト：カーソル。\";\n\"SearchVisibilityAlways\" = \"常に\";\n\"SearchVisibilityDuringSearch\" = \"検索中\";\n\"ActiveScreen\" = \"アクティブスクリーン\";\n\"PinTo\" = \"ピン留め場所:\";\n\"PinToTop\" = \"上段\";\n\"PinToBottom\" = \"下段\";\n\"PinToTooltip\" = \"ピン留め項目の場所を変更します。\\nデフォルト：上段。\";\n\"ImageHeight\" = \"画像の高さ：\";\n\"ImageHeightTooltip\" = \"プレビュー時の画像の最大の高さ。\\nデフォルト：40。\\nヒント：16に設定するとテキスト項目と同じように見えます。\";\n\"PreviewDelay\" = \"プレビューの遅延：\";\n\"PreviewDelayTooltip\" = \"プレビュー ポップアップが表示されるまでのミリ秒単位の遅延。\\nデフォルト：1500。\";\n\"HighlightMatches\" = \"一致を強調表示する:\";\n\"HighlightMatchColor\" = \"カラー\";\n\"HighlightMatchBold\" = \"太字\";\n\"HighlightMatchItalic\" = \"イタリック\";\n\"HighlightMatchUnderline\" = \"下線\";\n\"HighlightMatchesTooltip\" = \"検索一致の強調表示スタイルを変更します。\\nデフォルト: 太字。\";\n\"ShowSpecialSymbols\" = \"特殊な記号を表示する\";\n\"ShowSpecialSymbolsTooltip\" = \"改行、タブ、先頭および末尾のスペースを特殊記号で表示します。\";\n\"ShowMenuIcon\" = \"メニューアイコン表示\";\n\"ShowRecentCopyInMenuBar\" = \"メニューアイコンの隣に最近のコピーを表示\";\n\"ShowSearchField\" = \"検索フィールド表示\";\n\"ShowTitleBeforeSearchField\" = \"検索フィールドの前にタイトル表示\";\n\"ShowFooter\" = \"フッター表示\";\n\"ShowApplicationIcons\" = \"アプリケーションのアイコンを表示する\";\n\"OpenPreferencesWarning\" = \"⚠️ フッターが隠されている時に設定を開くには⌘, (command+comma)を押してください。\";\n"
  },
  {
    "path": "Maccy/Settings/ja.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"一般\";\n\"LaunchAtLogin\" = \"ログイン時に実行\";\n\"CheckForUpdates\" = \"自動的にアップデートを確認\";\n\"CheckNow\" = \"今確認する\";\n\"Open\" = \"開く:\";\n\"OpenTooltip\" = \"アプリケーションを開くグローバルショートカットキー。\\n修飾キーを押しながらメインキーを繰り返し押すと、リストの次の項目が選択されます。このモードでは、修飾キーを離すと選択が確定し、ポップアップが閉じます。\\nデフォルト：%@C.\";\n\"Pin\" = \"ピン:\";\n\"PinTooltip\" = \"履歴項目を固定するショートカット キー。\\nデフォルト：%@P.\";\n\"Delete\" = \"デリート:\";\n\"DeleteTooltip\" = \"履歴項目を削除するショートカット キー。\\nデフォルト：%@⌫。\";\n\"ShowPreview\" = \"プレビュー:\";\n\"ShowPreviewTooltip\" = \"追加情報付きのプレビューを表示します。\\nデフォルト：⌃Space。\";\n\"Behavior\" = \"動作:\";\n\"PasteAutomatically\" = \"自動的に貼り付け\";\n\"PasteWithoutFormatting\" = \"書式なしで貼り付け\";\n\"Modifiers\" = \"項目選択時の動作カスタマイズ：\\n• %@を押しながら選択すると項目をコピーします。\\n• %@を押しながら選択すると項目をコピーして貼り付けます。\\n• %@を押しながら選択すると項目をコピーし、 書式なしで貼り付けます。\";\n\"Search\" = \"検索：\";\n\"Exact\" = \"精密\";\n\"Fuzzy\" = \"あいまい\";\n\"Regex\" = \"正規表現\";\n\"Mixed\" = \"混合\";\n\"NotificationsAndSounds\" = \"通知と音 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/ja.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"無視\";\n\"ApplicationsTab\" = \"アプリケーション\";\n\"IgnoredAppsDescription\" = \"特定のアプリケーションからのコピーを除外することができます。\\n動作が完全ではないため、できればクリップボードタイプの使用を推奨します。\";\n\"IgnoredAllAppsExceptListed\" = \"リストされているものを除くすべてのアプリケーションを無視する\";\n\"PasteboardTypesTab\" = \"クリップボードタイプ\";\n\"IgnoredPasteboardTypesDescription\" = \"特定のクリップボードタイプを除外できます。\\nデフォルトでは、既知の特定のアプリケーションタイプが指定されています。また、これらを削除したり、カスタムタイプを追加することもできます。\";\n\"IgnoredPasteboardTypesReset\" = \"リセット\";\n\"RegexpTab\" = \"正規表現\";\n\"IgnoredRegexpsDescription\" = \"定義された正規表現に基づいて、特定のコピーを記憶から無視することができます。\";\n"
  },
  {
    "path": "Maccy/Settings/ja.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"ピン留め\";\n\"Key\" = \"キー\";\n\"Alias\" = \"タイトル\";\n\"Content\" = \"内容\";\n\"ContentIsNotText\" = \"編集不可能なコンテンツ（画像またはファイル）\";\n\"RichTextEditWarning\" = \"編集すると、すべてのフォーマットが破棄されます。\";\n\"PinCustomizationDescription\" = \"ピン留めした項目のホットキー、タイトル、内容をカスタマイズできます。\\n編集するには、項目をダブルクリックして新しい値を入力します。\";\n"
  },
  {
    "path": "Maccy/Settings/ja.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"保管\";\n\"Save\" = \"保存：\";\n\"Files\" = \"ファイル\";\n\"Images\" = \"画像\";\n\"Text\" = \"テキスト\";\n\"SaveDescription\" = \"保管するコピーコンテンツタイプを変更します。\";\n\"Size\" = \"サイズ:\";\n\"SizeTooltip\" = \"保管する履歴の項目数。\\nデフォルト：200。\";\n\"CurrentSizeTooltip\" = \"ディスク上の現在のサイズ。\";\n\"SortBy\" = \"並び替え:\";\n\"LastCopiedAt\" = \"最後にコピーした日時\";\n\"FirstCopiedAt\" = \"最初にコピーした日時\";\n\"NumberOfCopies\" = \"コピー回数\";\n\"SortByTooltip\" = \"デフォルト：最後にコピーした日時。\";\n"
  },
  {
    "path": "Maccy/Settings/ko.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"고급\";\n\"TurnOff\" = \"끄기\";\n\"TurnOffDescription\" = \"일시적으로 모든 새로운 복사를 무시합니다.\\n중요한 데이터를 복사하는 동안 프로그래밍 방식을 이용해 어플리케이션을 비활성화할 수 있습니다.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# 데이터 복사\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"⌥를 누른 상태에서 메뉴 아이콘을 클릭할 수도 있습니다.\\n다음 사본만 무시하려면 ⌥⇧로 클릭하십시오.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# 데이터 복사\";\n\"ClearHistoryOnQuit\" = \"종료시 기록 지우기\";\n\"ClearHistoryOnQuitTooltip\" = \"애플리케이션을 종료하기 전에 고정 해제된 모든 항목을 자동으로 제거합니다.\";\n\"ClearSystemClipboard\" = \"시스템 클립보드도 지우기\";\n\"ClearSystemClipboardTooltip\" = \"활성화되면 기록을 지우면 현재 시스템 클립보드도 지워집니다.\";\n"
  },
  {
    "path": "Maccy/Settings/ko.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"모양\";\n\"PopupAt\" = \"팝업 위치:\";\n\"PopupAtCursor\" = \"커서\";\n\"PopupAtMenuBarIcon\" = \"메뉴 아이콘\";\n\"PopupAtWindowCenter\" = \"창의 중앙\";\n\"PopupAtScreenCenter\" = \"화면 중앙\";\n\"PopupAtLastPosition\" = \"마지막 위치\";\n\"PopupAtLastLocationReset\" = \"위치 재설정\";\n\"PopupAtTooltip\" = \"팝업이 나타나는 위치를 변경합니다.\\n기본값: 커서.\";\n\"SearchVisibilityAlways\" = \"항상\";\n\"SearchVisibilityDuringSearch\" = \"검색 중\";\n\"ActiveScreen\" = \"활성 화면\";\n\"PinTo\" = \"고정 위치:\";\n\"PinToTop\" = \"상단\";\n\"PinToBottom\" = \"하단\";\n\"PinToTooltip\" = \"고정된 항목의 위치를 변경합니다.\\n기본값: 상단.\";\n\"ImageHeight\" = \"이미지 세로 높이:\";\n\"ImageHeightTooltip\" = \"이미지 미리보기 최대 세로 높이.\\n기본값: 40.\\nHint: 16으로 설정하면 텍스트 항목과 같아 보입니다.\";\n\"PreviewDelay\" = \"미리보기 지연:\";\n\"PreviewDelayTooltip\" = \"미리보기 팝업이 표시될 때까지 밀리초 단위로 지연됩니다.\\n기본값: 1500.\";\n\"HighlightMatches\" = \"매칭된 항목 하이라이트:\";\n\"HighlightMatchColor\" = \"색상\";\n\"HighlightMatchBold\" = \"굵게\";\n\"HighlightMatchItalic\" = \"이탤릭체\";\n\"HighlightMatchUnderline\" = \"밑줄\";\n\"HighlightMatchesTooltip\" = \"검색 일치 항목의 강조 스타일을 변경합니다.\\n기본값: 굵게.\";\n\"ShowSpecialSymbols\" = \"특수 기호 표시\";\n\"ShowSpecialSymbolsTooltip\" = \"특수 기호를 통해 개행, 탭, 선행 및 후행 공백을 표시합니다.\";\n\"ShowMenuIcon\" = \"메뉴 아이콘 표시\";\n\"ShowRecentCopyInMenuBar\" = \"메뉴 아이콘 옆에 최근 복사 표시\";\n\"ShowSearchField\" = \"검색 필드 표시\";\n\"ShowTitleBeforeSearchField\" = \"검색 필드 앞에 타이틀 표시\";\n\"ShowFooter\" = \"푸터 표시\";\n\"ShowApplicationIcons\" = \"애플리케이션 아이콘 표시\";\n\"OpenPreferencesWarning\" = \"⚠️ 푸터가 숨겨져 있을 때 설정을 열려면 ⌘, (command+comma)를 누르세요.\";\n"
  },
  {
    "path": "Maccy/Settings/ko.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"일반\";\n\"LaunchAtLogin\" = \"로그인 시 실행\";\n\"CheckForUpdates\" = \"자동으로 업데이트 확인\";\n\"CheckNow\" = \"지금 확인하기\";\n\"Open\" = \"열기:\";\n\"OpenTooltip\" = \"애플리케이션을 여는 글로벌 단축키.\\n수식어를 누른 상태에서 메인 키를 반복해서 누르면 목록의 다음 항목이 선택됩니다. 이 모드에서는 수정자 키에서 손을 떼면 선택이 확인되고 팝업이 닫힙니다.\\n기본값: ⇧⌘C.\";\n\"Pin\" = \"핀:\";\n\"PinTooltip\" = \"고정 기록 항목에 대한 단축키입니다.\\n기본값: %@P.\";\n\"Delete\" = \"삭제:\";\n\"DeleteTooltip\" = \"기록 항목 삭제 단축키입니다.\\n기본값: %@⌫.\";\n\"ShowPreview\" = \"미리보기:\";\n\"ShowPreviewTooltip\" = \"추가 정보와 함께 미리보기를 표시합니다.\\n기본값: ⌃Space.\";\n\"Behavior\" = \"동작:\";\n\"PasteAutomatically\" = \"자동으로 붙여넣기\";\n\"PasteWithoutFormatting\" = \"서식없이 붙여넣기\";\n\"Modifiers\" = \"항목 선택시 동작 커스터마이즈:\\n• %@와 함께 선택시 항목을 복사합니다.\\n• %@와 함께 선택시 항복을 복사하여 붙여넣기 합니다.\\n• %@와 함께 선택시 항목을 복사하여 서식없이 붙여넣기 합니다.\";\n\"Search\" = \"검색:\";\n\"Exact\" = \"정확한\";\n\"Fuzzy\" = \"퍼지\";\n\"Regex\" = \"정규식\";\n\"Mixed\" = \"혼합\";\n\"NotificationsAndSounds\" = \"알림 및 소리 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/ko.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"제외\";\n\"ApplicationsTab\" = \"어플리케이션\";\n\"IgnoredAppsDescription\" = \"특정 어플리케이션에서의 복사는 제외하는 것이 가능합니다.\\n작동 방식이 완전하지 않으므로 가능하면 클립보드 타입을 사용하는 것이 좋습니다.\";\n\"IgnoredAllAppsExceptListed\" = \"나열된 애플리케이션을 제외한 모든 애플리케이션 무시\";\n\"PasteboardTypesTab\" = \"클립보드 타입\";\n\"IgnoredPasteboardTypesDescription\" = \"특정 클립보드 항목 타입을 제외할 수 있습니다.\\n기본으로 일부 알려진 특정 어플리케이션 타입이 정의되어 있습니다. 그것들을 제거하거나 커스텀 타입을 추가할 수 있습니다.\";\n\"IgnoredPasteboardTypesReset\" = \"초기화\";\n\"RegexpTab\" = \"정규식\";\n\"IgnoredRegexpsDescription\" = \"정의된 정규식을 기반으로 특정 복사본을 기억하지 못하도록 무시할 수 있습니다.\";\n"
  },
  {
    "path": "Maccy/Settings/ko.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"고정\";\n\"Key\" = \"키\";\n\"Alias\" = \"타이틀\";\n\"Content\" = \"콘텐츠\";\n\"ContentIsNotText\" = \"편집할 수 없는 콘텐츠(이미지 또는 파일)\";\n\"RichTextEditWarning\" = \"편집하면 모든 서식이 삭제됩니다.\";\n\"PinCustomizationDescription\" = \"고정된 항목의 단축키, 제목, 콘텐츠를 사용자 지정할 수 있습니다. 수정하려면 항목을 두 번 클릭하고 새 값을 입력합니다.\\n단, 일반 텍스트만 변경할 수 있습니다.\";\n"
  },
  {
    "path": "Maccy/Settings/ko.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"보관\";\n\"Save\" = \"저장:\";\n\"Files\" = \"파일\";\n\"Images\" = \"이미지\";\n\"Text\" = \"텍스트\";\n\"SaveDescription\" = \"보관할 복사 컨텐츠 타입을 변경합니다.\";\n\"Size\" = \"크기:\";\n\"SizeTooltip\" = \"보관할 기록 항목 수.\\n기본값: 200.\";\n\"CurrentSizeTooltip\" = \"디스크의 현재 크기입니다.\";\n\"SortBy\" = \"정렬 기준:\";\n\"LastCopiedAt\" = \"마지막 복사한 시간\";\n\"FirstCopiedAt\" = \"처음 복사한 시간\";\n\"NumberOfCopies\" = \"복사 횟수\";\n\"SortByTooltip\" = \"기본값: 마지막 복사한 시간.\";\n"
  },
  {
    "path": "Maccy/Settings/lt.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Išplėstiniai nustatymai\";\n\"TurnOff\" = \"Išjungti\";\n\"TurnOffDescription\" = \"Laikinai nepaisykite visų naujų kopijų.\\nTikėtina, kad tai naudosite programiškai ir išjungsite programą kopijuodami jautrius duomenis.\";\n\"TurnOffViaMenuIconDescription\" = \"Taip pat galite spustelėti meniu piktogramą paspaudę ⌥.\\nJei norite ignoruoti tik kitą kopiją, spustelėkite paspaudę ⌥⇧.\";\n\"ClearHistoryOnQuit\" = \"Ištrinti istoriją išjungiant\";\n\"ClearHistoryOnQuitTooltip\" = \"Automatiškai pašalinti visus neprisegtus elementus prieš išjungiant programą.\";\n\"ClearSystemClipboard\" = \"Taip pat išvalyti sistemos iškarpinę\";\n\"ClearSystemClipboardTooltip\" = \"Jei ši funkcija įjungta, istorijos ištrynimas taip pat ištrina dabartinę sistemos iškarpinę.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopijuoti duomenis\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopijuoti duomenis\";\n"
  },
  {
    "path": "Maccy/Settings/lt.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Išvaizda\";\n\"PopupAt\" = \"Iššokančio lango vieta:\";\n\"PopupAtCursor\" = \"Pelės žymeklis\";\n\"PopupAtMenuBarIcon\" = \"Meniu piktograma\";\n\"PopupAtWindowCenter\" = \"Lango centras\";\n\"PopupAtScreenCenter\" = \"Ekrano centras\";\n\"PopupAtLastPosition\" = \"Paskutinė vieta\";\n\"PopupAtLastLocationReset\" = \"Iš naujo nustatyti vietą\";\n\"PopupAtTooltip\" = \"Pakeiskite vietą, kurioje rodomas iššokantis langas.\\nNumatytoji reikšmė: Pelės žymeklis.\";\n\"SearchVisibilityAlways\" = \"Visada\";\n\"SearchVisibilityDuringSearch\" = \"Paieškos metu\";\n\"ActiveScreen\" = \"Aktyvus ekranas\";\n\"PinTo\" = \"Prisegti:\";\n\"PinToTop\" = \"Viršuje\";\n\"PinToBottom\" = \"Apačioje\";\n\"PinToTooltip\" = \"Pakeiskite prisegtų elementų vietą.\\nNumatytoji reikšmė: Viršuje.\";\n\"ImageHeight\" = \"Paveikslėlio aukštis:\";\n\"ImageHeightTooltip\" = \"Didžiausias paveikslėlio peržiūros aukštis.\\nNumatytoji reikšmė: 40.\\nPatarimas: Nustatykite 16, kad atrodytų kaip teksto elementai.\";\n\"PreviewDelay\" = \"Peržiūros vėlavimas:\";\n\"PreviewDelayTooltip\" = \"Vėlavimas milisekundėmis, kol bus parodytas iškylantysis peržiūros langas.\\nNumatytoji reikšmė: 1500.\";\n\"HighlightMatches\" = \"Paryškinti atitikimus:\";\n\"HighlightMatchColor\" = \"Spalva\";\n\"HighlightMatchBold\" = \"Paryškintu šriftu\";\n\"HighlightMatchItalic\" = \"Kursyvu\";\n\"HighlightMatchUnderline\" = \"Pabraukimu\";\n\"HighlightMatchesTooltip\" = \"Pakeiskite paieškos atitikmenų paryškinimo stilių.\\nNumatytoji reikšmė: Paryškintu šriftu.\";\n\"ShowSpecialSymbols\" = \"Rodyti specialiuosius simbolius\";\n\"ShowSpecialSymbolsTooltip\" = \"Rodyti naujas eilutes, skirtukus, pradinius ir galinius tarpus naudojant specialius simbolius.\";\n\"ShowMenuIcon\" = \"Rodyti meniu piktogramą\";\n\"ShowRecentCopyInMenuBar\" = \"Rodyti naujausią kopiją šalia meniu piktogramos\";\n\"ShowSearchField\" = \"Rodyti paieškos laukelį\";\n\"ShowTitleBeforeSearchField\" = \"Rodyti pavadinimą prieš paieškos laukelį\";\n\"ShowFooter\" = \"Rodyti paraštę\";\n\"ShowApplicationIcons\" = \"Rodyti programų piktogramas\";\n\"OpenPreferencesWarning\" = \"⚠️ Paspauskite ⌘, (command+comma) norėdami atidaryti nustatymus, kai paraštė yra paslėpta.\";\n"
  },
  {
    "path": "Maccy/Settings/lt.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Bendra\";\n\"LaunchAtLogin\" = \"Paleisti prisijungus\";\n\"CheckForUpdates\" = \"Automatiškai tikrinti, ar yra atnaujinimų\";\n\"CheckNow\" = \"Patikrinti dabar\";\n\"Open\" = \"Atidaryti:\";\n\"OpenTooltip\" = \"Pasaulinis spartusis klavišas programai atidaryti.\\nPakartotinai paspaudus pagrindinį klavišą ir laikant modifikatorių, bus pasirinktas kitas sąrašo elementas. Šiuo režimu atleidus modifikavimo klavišus bus patvirtintas pasirinkimas ir uždarytas iškylantysis langas.\\nNumatytasis: ⇧⌘C.\";\n\"Pin\" = \"Prisegti:\";\n\"PinTooltip\" = \"Spartusis klavišas istorijos elementui prisegti.\\nNumatytasis spartusis klavišas: ⌥P.\";\n\"Delete\" = \"Ištrinti:\";\n\"DeleteTooltip\" = \"Spartusis klavišas istorijos elementui ištrinti.\\nNumatytasis spartusis klavišas: ⌥⌫.\";\n\"ShowPreview\" = \"Peržiūra:\";\n\"ShowPreviewTooltip\" = \"Rodyti peržiūrą su papildoma informacija.\\nNumatytasis spartusis klavišas: ⌃Space.\";\n\"Behavior\" = \"Elgsena:\";\n\"PasteAutomatically\" = \"Įklijuoti automatiškai\";\n\"PasteWithoutFormatting\" = \"Įklijuoti be formatavimo\";\n\"Modifiers\" = \"Pritaikykite elgseną, kai pasirenkamas elementas:\\n• Pasirinkite paspaudę %@, kad nukopijuotumėte elementą.\\n• Pasirinkite paspaudę %@, jei norite kopijuoti ir įklijuoti elementą.\\n• Pasirinkite paspaudę %@, kad nukopijuotumėte, panaikintumėte formatavimą ir įklijuotumėte elementą.\";\n\"Search\" = \"Paieška:\";\n\"Exact\" = \"Tikslus\";\n\"Fuzzy\" = \"Apytikslis\";\n\"Regex\" = \"Reguliarios išraiškos\";\n\"Mixed\" = \"Mišrus\";\n\"NotificationsAndSounds\" = \"Pranešimai ir garsai 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/lt.lproj/IgnoreSettings.strings",
    "content": "\"PasteboardTypesTab\" = \"Iškarpų tipai\";\n\"IgnoredPasteboardTypesDescription\" = \"Galima nepaisyti tam tikrų iškarpų lentelės elementų tipų.\\nPagal numatytuosius nustatymus apibrėžiami kai kurie žinomų konkrečių programų tipai. Galite juos pašalinti ir pridėti bet kokius norimus pasirinktinius tipus.\";\n\"IgnoredAllAppsExceptListed\" = \"Nepaisyti visų programų, išskyrus įtrauktas\";\n\"IgnoredPasteboardTypesReset\" = \"Nustatyti iš naujo\";\n\"RegexpTab\" = \"Reguliarios išraiškos\";\n\"IgnoredRegexpsDescription\" = \"Pagal apibrėžtas reguliarias išraiškas galima nepaisyti tam tikrų iškarpų.\";\n\"Title\" = \"Nepaisyti\";\n\"ApplicationsTab\" = \"Programos\";\n\"IgnoredAppsDescription\" = \"Galima nepaisyti iškarpų, gaunamų iš tam tikrų programų.\\nAtkreipkite dėmesį, kad šis veikimo būdas nėra nepralaidus, todėl, kai įmanoma, geriau naudoti iškarpų tipus.\";\n"
  },
  {
    "path": "Maccy/Settings/lt.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Prisegtukai\";\n\"Key\" = \"Klavišas\";\n\"Alias\" = \"Pavadinimas\";\n\"Content\" = \"Turinys\";\n\"ContentIsNotText\" = \"Neredaguojamas turinys (vaizdas arba failas)\";\n\"RichTextEditWarning\" = \"Redaguojant bus panaikintas visas formatavimas.\";\n\"PinCustomizationDescription\" = \"Galite pritaikyti bet kurio prisegto elemento sparčiuosius klavišus, pavadinimą ir turinį. Norėdami redaguoti, dukart spustelėkite elementą ir įveskite naują reikšmę.\\nAtkreipkite dėmesį, kad galima keisti tik paprastą tekstą.\";\n"
  },
  {
    "path": "Maccy/Settings/lt.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Išsaugojimas\";\n\"Save\" = \"Išsaugoti:\";\n\"Files\" = \"Failai\";\n\"Images\" = \"Vaizdai\";\n\"Text\" = \"Tekstas\";\n\"SaveDescription\" = \"Pakeiskite, kokių tipų nukopijuotas turinys turėtų būti išsaugomas.\";\n\"Size\" = \"Dydis:\";\n\"SizeTooltip\" = \"Išsaugotinų istorijos elementų skaičius.\\nNumatytoji reikšmė: 200.\";\n\"CurrentSizeTooltip\" = \"Dabartinis dydis diske.\";\n\"SortBy\" = \"Rikiuoti pagal:\";\n\"LastCopiedAt\" = \"Paskutinės kopijos padarymo laikas\";\n\"FirstCopiedAt\" = \"Pirmosios kopijos laikas\";\n\"NumberOfCopies\" = \"Kopijų skaičius\";\n\"SortByTooltip\" = \"Numatytoji reikšmė: Paskutinės kopijos laikas.\";\n"
  },
  {
    "path": "Maccy/Settings/lv.lproj/AdvancedSettings.strings",
    "content": "\"TurnOffDescription\" = \"Īslaicīgi ignorēt visas jaunās kopijas.\\nIespējams, ka to izmantosiet programmatiski un atspējosiet lietojumprogrammu, kopējot sensitīvus datus.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# tad kopēt datus\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Varat arī noklikšķināt uz izvēlnes ikonas, nospiežot ⌥.\\nLai ignorētu tikai nākamo kopiju, noklikšķiniet ar ⌥ ⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# tad kopēt datus\";\n\"ClearHistoryOnQuit\" = \"Notīrīt vēsturi, izejot no programmas\";\n\"Title\" = \"Papildu\";\n\"ClearHistoryOnQuitTooltip\" = \"Pirms lietojumprogrammas aizvēršanas automātiski notīrīt visus nepiespraustos vienumus.\";\n\"TurnOff\" = \"Izslēgt\";\n\"ClearSystemClipboard\" = \"Notīrīt arī sistēmas starpliktuvi\";\n\"ClearSystemClipboardTooltip\" = \"Ja šī opcija ir iespējota, vēstures notīrīšana notīrīs arī pašreizējo sistēmas starpliktuvi.\";\n"
  },
  {
    "path": "Maccy/Settings/lv.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Izskats\";\n\"PopupAt\" = \"Rādīt blakus:\";\n\"PopupAtCursor\" = \"Kursoram\";\n\"PopupAtMenuBarIcon\" = \"Izvēlnes ikonai\";\n\"PopupAtWindowCenter\" = \"Logu centram\";\n\"PopupAtScreenCenter\" = \"Ekrāna centram\";\n\"PopupAtLastPosition\" = \"Pēdējā pozīcijā\";\n\"PopupAtLastLocationReset\" = \"Atiestatīt pozīciju\";\n\"PopupAtTooltip\" = \"Mainiet atrašanās vietu, kur tiek parādīts uznirstošais logs.\\nNoklusējums: blakus kursoram.\";\n\"SearchVisibilityAlways\" = \"Vienmēr\";\n\"SearchVisibilityDuringSearch\" = \"Meklēšanas laikā\";\n\"ActiveScreen\" = \"Aktīvais ekrāns\";\n\"PinTo\" = \"Piespraust pie:\";\n\"PinToTop\" = \"Augšas\";\n\"PinToBottom\" = \"Apakšas\";\n\"PinToTooltip\" = \"Mainiet piesprausto vienumu atrašanās vietu.\\nNoklusējums: augšā.\";\n\"ImageHeight\" = \"Attēla augstums:\";\n\"ImageHeightTooltip\" = \"Maksimālais attēla priekšskatījuma augstums.\\nNoklusējums: 40.\\nIeteikums: iestatiet uz 16, lai izskatītos kā teksta vienumi.\";\n\"PreviewDelay\" = \"Priekšskatījuma aizkave:\";\n\"PreviewDelayTooltip\" = \"Aizkave milisekundēs, līdz tiek parādīts priekšskatījuma uznirstošais logs.\\nNoklusējums: 1500.\";\n\"HighlightMatches\" = \"Iezīmēt atbilstības:\";\n\"HighlightMatchColor\" = \"Ar krāsu\";\n\"HighlightMatchBold\" = \"Treknrakstā\";\n\"HighlightMatchItalic\" = \"Slīprakstā\";\n\"HighlightMatchUnderline\" = \"Pasvītrojot\";\n\"HighlightMatchesTooltip\" = \"Mainiet meklēšanas atbilstību iezīmēšanas stilu.\\nNoklusējums: treknraksts.\";\n\"ShowSpecialSymbols\" = \"Rādīt īpašus simbolus\";\n\"ShowSpecialSymbolsTooltip\" = \"Rādīt jaunas līnijas, cilnes, sākuma un beigu atstarpes, izmantojot īpašus simbolus.\";\n\"ShowMenuIcon\" = \"Rādīt izvēlnes ikonu\";\n\"ShowRecentCopyInMenuBar\" = \"Rādīt neseno kopiju blakus izvēlnes ikonai\";\n\"ShowSearchField\" = \"Rādīt meklēšanas lauku\";\n\"ShowTitleBeforeSearchField\" = \"Rādīt virsrakstu pirms meklēšanas lauka\";\n\"ShowFooter\" = \"Rādīt kājeni\";\n\"ShowApplicationIcons\" = \"Rādīt lietojumprogrammu ikonas\";\n\"OpenPreferencesWarning\" = \"⚠️ Nospiediet taustiņu ⌘, (command+comma) lai atvērtu preferences, ja kājene ir paslēpta.\";\n"
  },
  {
    "path": "Maccy/Settings/lv.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Vispārīgi\";\n\"LaunchAtLogin\" = \"Palaist lietotni pieteikšanās laikā\";\n\"CheckForUpdates\" = \"Automātiski pārbaudīt, vai nav atjauninājumu\";\n\"CheckNow\" = \"Pārbaudīt tagad\";\n\"Open\" = \"Atvērt:\";\n\"OpenTooltip\" = \"Globālais īsceļu taustiņš, lai atvērtu programmu.\\nPakāpeniski nospiežot galveno taustiņu, vienlaikus turot modifikatorus, tiek atlasīts nākamais elements sarakstā. Šajā režīmā, atlaižot modifikatoru taustiņus, tiks apstiprināta izvēle un aizvērts uznirstošais logs.\\nNo noklusējuma: ⇧⌘C.\";\n\"Pin\" = \"Piespraust:\";\n\"PinTooltip\" = \"Īsinājumtaustiņš, lai piespraust vēstures vienumu.\\nNoklusējums: ⌥P.\";\n\"Delete\" = \"Dzēst:\";\n\"DeleteTooltip\" = \"Īsinājumtaustiņš vēstures vienuma dzēšanai.\\nNoklusējums: ⌥ ⌫.\";\n\"ShowPreview\" = \"Priekšskatījums:\";\n\"ShowPreviewTooltip\" = \"Rādīt priekšskatījumu ar papildu informāciju.\\nNoklusējums: ⌃Space.\";\n\"Behavior\" = \"Rīcība:\";\n\"PasteAutomatically\" = \"Ielīmēt automātiski\";\n\"PasteWithoutFormatting\" = \"Ielīmēt bez formatējuma\";\n\"Modifiers\" = \"Pielāgojiet darbību, atlasot vienumu:\\n• Lai kopētu objektu, izvēlieties, nospiediet %@.\\n• Lai kopētu un ielīmētu vienumu, nospiediet %@.\\n• Lai kopētu, notīrītu formatējumu un ielīmētu vienumu, nospiediet %@.\";\n\"Search\" = \"Meklēt:\";\n\"Exact\" = \"Precīzi\";\n\"Fuzzy\" = \"Fazimeklēšana\";\n\"Regex\" = \"Regulārās izteiksmes\";\n\"Mixed\" = \"Jaukti\";\n\"NotificationsAndSounds\" = \"Paziņojumi un skaņas 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/lv.lproj/IgnoreSettings.strings",
    "content": "\"ApplicationsTab\" = \"Lietotnes\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorēt visas lietojumprogrammas, izņemot norādītās\";\n\"PasteboardTypesTab\" = \"Starpliktuves tipi\";\n\"IgnoredPasteboardTypesReset\" = \"Atiestatīt\";\n\"RegexpTab\" = \"Regulārās izteiksmes\";\n\"IgnoredRegexpsDescription\" = \"Ir iespējams ignorēt noteiktas datu kopijas, pamatojoties uz definētām regulārām izteiksmēm.\";\n\"Title\" = \"Ignorēt\";\n\"IgnoredAppsDescription\" = \"Ir iespējams ignorēt kopijas, kas nāk no noteiktām lietojumprogrammām.\\nLūdzu, ņemiet vērā, ka tas var nedarboties visos gadījumos, tāpēc, kad vien iespējams, labāk noteikt starpliktuves datu tipus.\";\n\"IgnoredPasteboardTypesDescription\" = \"Dažus starpliktuves datu tipus iespējams ignorēt.\\nPēc noklusējuma tiek definēti daži zināmi lietotnei raksturīgi tipi. Tos var noņemt un pievienot visus vajadzīgos pielāgotos tipus.\";\n"
  },
  {
    "path": "Maccy/Settings/lv.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Piespraudes\";\n\"Key\" = \"Taustiņš\";\n\"Alias\" = \"Nosaukums\";\n\"Content\" = \"Saturs\";\n\"ContentIsNotText\" = \"Nerediģējams saturs (attēls vai fails)\";\n\"RichTextEditWarning\" = \"Rediģējot tiks atteikts viss formatējums.\";\n\"PinCustomizationDescription\" = \"Varat pielāgot jebkura piespraustā elementa karsto taustiņu, nosaukumu un saturu. Lai rediģētu, divreiz noklikšķiniet uz elementa un ievadiet jaunu vērtību.\\nPievērsiet uzmanību, ka var mainīt tikai vienkāršu tekstu.\";\n"
  },
  {
    "path": "Maccy/Settings/lv.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Glabāšana\";\n\"Save\" = \"Saglabāt:\";\n\"Files\" = \"Datnes\";\n\"Images\" = \"Attēlus\";\n\"Text\" = \"Tekstus\";\n\"SaveDescription\" = \"Mainiet, kāda veida kopētais saturs ir jāsaglabā.\";\n\"Size\" = \"Vienumu skaits:\";\n\"SizeTooltip\" = \"Saglabājamo vēstures vienumu skaits.\\nNoklusējums: 200.\";\n\"CurrentSizeTooltip\" = \"Pašreizējais izmērs diskā.\";\n\"SortBy\" = \"Kārtot pēc:\";\n\"LastCopiedAt\" = \"Pēdējās kopijas laiks\";\n\"FirstCopiedAt\" = \"Pirmās kopijas laiks\";\n\"NumberOfCopies\" = \"Kopiju skaits\";\n\"SortByTooltip\" = \"Noklusējums: pēdējās kopijas laiks.\";\n"
  },
  {
    "path": "Maccy/Settings/nb.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avansert\";\n\"TurnOff\" = \"Deaktiver\";\n\"TurnOffDescription\" = \"Midlertidig ignorer alle nye kopier.\\nDu vil mest sannsynlig bruke det programmatisk og deaktivere programmet ved kopiering av sensitive data.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopier data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Du kan også klikke på menyikonet med ⌥ trykket.\\nFor å ignorere bare den neste kopien, klikk med ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopier data\";\n\"ClearHistoryOnQuit\" = \"Tøm historikk når du slutter\";\n\"ClearHistoryOnQuitTooltip\" = \"Fjern alle ikke-festede elementer automatisk før du avslutter applikasjonen.\";\n\"ClearSystemClipboard\" = \"Tøm systemets utklippstavle også\";\n\"ClearSystemClipboardTooltip\" = \"Når den er aktivert, vil tømming av loggen også tømme gjeldende systemutklippstavle.\";\n"
  },
  {
    "path": "Maccy/Settings/nb.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Utseende\";\n\"PopupAt\" = \"Popup ved:\";\n\"PopupAtCursor\" = \"Musepeker\";\n\"PopupAtMenuBarIcon\" = \"Meny ikon\";\n\"PopupAtWindowCenter\" = \"Vindussenter\";\n\"PopupAtScreenCenter\" = \"Skjermsenter\";\n\"PopupAtLastPosition\" = \"Siste posisjon\";\n\"PopupAtLastLocationReset\" = \"Tilbakestill posisjon\";\n\"PopupAtTooltip\" = \"Forandre plassering av hvor popup vises.\\nStandard: Musepeker.\";\n\"SearchVisibilityAlways\" = \"Alltid\";\n\"SearchVisibilityDuringSearch\" = \"Under søk\";\n\"ActiveScreen\" = \"Aktiv skjerm\";\n\"PinTo\" = \"Fest til:\";\n\"PinToTop\" = \"Øverst\";\n\"PinToBottom\" = \"Nederst\";\n\"PinToTooltip\" = \"Forandre plassering av festede elementer.\\nStandard: Øverst.\";\n\"ImageHeight\" = \"Bildehøyde:\";\n\"ImageHeightTooltip\" = \"Maximal bildehøyde forhåndsvisning.\\nStandard: 40.\\nTips: Satt til 16 for å se ut som tekst elementer.\";\n\"PreviewDelay\" = \"Forsinkelse for forhåndsvisning:\";\n\"PreviewDelayTooltip\" = \"Utsett i millisekunder til en forhåndsvisningspopup vises.\\nStandard: 1500.\";\n\"HighlightMatches\" = \"Fremhev kamper:\";\n\"HighlightMatchColor\" = \"Farge\";\n\"HighlightMatchBold\" = \"Fet\";\n\"HighlightMatchItalic\" = \"Kursiv\";\n\"HighlightMatchUnderline\" = \"Understreke\";\n\"HighlightMatchesTooltip\" = \"Endre uthevingsstilen for søketreff.\\nStandard: Fet.\";\n\"ShowSpecialSymbols\" = \"Vis spesielle symboler\";\n\"ShowSpecialSymbolsTooltip\" = \"Vis nylinjer, tabulatorer, innledende og etterfølgende mellomrom via spesielle symboler.\";\n\"ShowMenuIcon\" = \"Vis meny ikon\";\n\"ShowRecentCopyInMenuBar\" = \"Vis nylig kopi ved siden av menyikonet\";\n\"ShowSearchField\" = \"Vis søkefelt\";\n\"ShowTitleBeforeSearchField\" = \"Vis tittel før søkefelt\";\n\"ShowFooter\" = \"Vis bunntekst\";\n\"ShowApplicationIcons\" = \"Vis applikasjonsikoner\";\n\"OpenPreferencesWarning\" = \"⚠️ Trykk ⌘, (command+comma) for å åpne valg når bunntekst er skjult.\";\n"
  },
  {
    "path": "Maccy/Settings/nb.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Generelt\";\n\"LaunchAtLogin\" = \"Oppstart ved innlogging\";\n\"CheckForUpdates\" = \"Sjekk for oppdateringer automatisk\";\n\"CheckNow\" = \"Sjekk nå\";\n\"Open\" = \"Åpen:\";\n\"OpenTooltip\" = \"Global hurtigtast for å åpne programmet.\\nEt gjentatt trykk på hovedtasten mens modifikatortasten holdes inne, velger neste element i listen. I denne modusen vil du bekrefte valget og lukke popup-vinduet ved å slippe modifikatortastene.\\nStandard: ⇧⌘C.\";\n\"Pin\" = \"Merke:\";\n\"PinTooltip\" = \"Hurtigtast for å merke historikkelement.\\nStandard: %@P.\";\n\"Delete\" = \"Slett:\";\n\"DeleteTooltip\" = \"Hurtigtast for å slette historieelement.\\nStandard: %@⌫.\";\n\"ShowPreview\" = \"Forhåndsvisning:\";\n\"ShowPreviewTooltip\" = \"Vis forhåndsvisning med tilleggsinformasjon.\\nStandard: ⌃Space.\";\n\"Behavior\" = \"Oppførsel:\";\n\"PasteAutomatically\" = \"Lim in automatisk\";\n\"PasteWithoutFormatting\" = \"Lim inn uten formattering\";\n\"Modifiers\" = \"Tilpass oppførsel ved valg av element:\\n• Velg med %@ nedtrykket for å kopiere element.\\n• Velg med %@ nedtrykket for å kopiere og lime inn element.\\n• Velg med %@ nedtrykket for å kopiere, slette formattering og lime inn element.\";\n\"Search\" = \"Søk:\";\n\"Exact\" = \"Nøyaktig\";\n\"Fuzzy\" = \"Fuzzy\";\n\"Regex\" = \"Vanlig uttrykk\";\n\"Mixed\" = \"Blandet\";\n\"NotificationsAndSounds\" = \"Varsler og lyder 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/nb.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Overse\";\n\"ApplicationsTab\" = \"Applikasjoner\";\n\"IgnoredAppsDescription\" = \"Det er mulig å ignorere kopier som kommer fra bestemte applikasjoner.\\nVær oppmerksom på at måten den fungerer ikke er skuddsikker, så det er bedre å bruke papptypetyper når det er mulig.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorer alle applikasjoner unntatt de oppførte\";\n\"PasteboardTypesTab\" = \"Typer\";\n\"IgnoredPasteboardTypesDescription\" = \"Det er mulig å ignorere visse typer utklippstavle elementer fra å bli husket.\\nPSom standard er noen kjente program-spesifikke typer definert. Hvis du øsnker, kan du fjerne dem og legge til egne tilpassede typer.\";\n\"IgnoredPasteboardTypesReset\" = \"Tilbakestill\";\n\"RegexpTab\" = \"Vanlig uttrykk\";\n\"IgnoredRegexpsDescription\" = \"Det er mulig å ignorere visse kopier fra å huske basert på definerte regulære uttrykk.\";\n"
  },
  {
    "path": "Maccy/Settings/nb.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Merker\";\n\"Key\" = \"Nøkkel\";\n\"Alias\" = \"Tittel\";\n\"Content\" = \"Innhold\";\n\"ContentIsNotText\" = \"Ikke-redigerbart innhold (bilde eller fil)\";\n\"RichTextEditWarning\" = \"Hvis du redigerer, slettes all formatering.\";\n\"PinCustomizationDescription\" = \"Du kan tilpasse hurtigtasten, tittelen og innholdet i alle festede elementer. Du redigerer ved å dobbeltklikke på elementet og angi en ny verdi.\\nVær oppmerksom på at det bare er ren tekst som kan endres.\";\n"
  },
  {
    "path": "Maccy/Settings/nb.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Lagring\";\n\"Save\" = \"Lagre:\";\n\"Files\" = \"Filer\";\n\"Images\" = \"Bilder\";\n\"Text\" = \"Tekst\";\n\"SaveDescription\" = \"Endre hvilke typer kopiert innhold som skal lagres.\";\n\"Size\" = \"Størrelse:\";\n\"SizeTooltip\" = \"Antall ønskede elementer i historikk.\\nStandard: 200.\";\n\"CurrentSizeTooltip\" = \"Gjeldende størrelse på disken.\";\n\"SortBy\" = \"Sorter etter:\";\n\"LastCopiedAt\" = \"Tidspunkt siste kopiering\";\n\"FirstCopiedAt\" = \"Tidspunkt første kopiering\";\n\"NumberOfCopies\" = \"Antall ganger kopiert\";\n\"SortByTooltip\" = \"Standard: Tidspunkt siste kopiering.\";\n"
  },
  {
    "path": "Maccy/Settings/nl.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Geavanceerd\";\n\"TurnOff\" = \"Zet uit\";\n\"TurnOffDescription\" = \"Negeer tijdelijk alle nieuwe kopieën.\\nJe zult het waarschijnlijk programmatisch gebruiken en de apps uitschakelen tijdens het kopiëren van gevoelige gegevens.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopieer data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Je kunt ook op het menu-icoontje klikken terwijl je ⌥ ingedrukt houdt.\\nOm alleen de volgende kopie te negeren, klik met ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopieer data\";\n\"ClearHistoryOnQuit\" = \"Wis geschiedenis bij afsluiten\";\n\"ClearHistoryOnQuitTooltip\" = \"Verwijder automatisch alle niet vastgemaakte items voordat u de app afsluit.\";\n\"ClearSystemClipboard\" = \"Wis ook het systeemklembord\";\n\"ClearSystemClipboardTooltip\" = \"Als dit is ingeschakeld, wordt bij het wissen van de geschiedenis ook het huidige klembord van het systeem gewist..\";\n"
  },
  {
    "path": "Maccy/Settings/nl.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Weergave\";\n\"PopupAt\" = \"Pop-up bij:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"Menu-icoon\";\n\"PopupAtWindowCenter\" = \"Venstercentrum\";\n\"PopupAtScreenCenter\" = \"Schermcentrum\";\n\"PopupAtLastPosition\" = \"Laatste positie\";\n\"PopupAtLastLocationReset\" = \"Positie terugzetten\";\n\"PopupAtTooltip\" = \"Wijzig de locatie waar de pop-up verschijnt.\\nStandaard: Cursor.\";\n\"SearchVisibilityAlways\" = \"Altijd\";\n\"SearchVisibilityDuringSearch\" = \"Tijdens het zoeken\";\n\"ActiveScreen\" = \"Actief scherm\";\n\"PinTo\" = \"Maak vast:\";\n\"PinToTop\" = \"Boven\";\n\"PinToBottom\" = \"Onder\";\n\"PinToTooltip\" = \"Wijzig de locatie van vastgemaakte items.\\nStandaard: Boven.\";\n\"ImageHeight\" = \"Afbeeldingshoogte:\";\n\"ImageHeightTooltip\" = \"Maximale hoogte afbeeldingsvoorbeeld.\\nStandaard: 40.\\nHint: Stel in op 16 zodat het lijkt op tekstitems.\";\n\"PreviewDelay\" = \"Vertraging:\";\n\"PreviewDelayTooltip\" = \"Vertraging in milliseconden totdat een voorbeeldpop-up wordt weergegeven.\\nStandaard: 1500.\";\n\"HighlightMatches\" = \"Markeer overeenkomsten:\";\n\"HighlightMatchColor\" = \"Kleur\";\n\"HighlightMatchBold\" = \"Vetgedrukt\";\n\"HighlightMatchItalic\" = \"Cursief\";\n\"HighlightMatchUnderline\" = \"Onderstreep\";\n\"HighlightMatchesTooltip\" = \"Wijzig de markeerstijl voor zoekresultaten.\\nStandaard: Bold.\";\n\"ShowSpecialSymbols\" = \"Toon speciale symbolen\";\n\"ShowSpecialSymbolsTooltip\" = \"Toon nieuwe regels, tabs, voorloop- en volgspaties via speciale symbolen.\";\n\"ShowMenuIcon\" = \"Toon menu-icoon\";\n\"ShowRecentCopyInMenuBar\" = \"Toon recente kopie naast menu-icoon\";\n\"ShowSearchField\" = \"Toon zoekveld\";\n\"ShowTitleBeforeSearchField\" = \"Toon titel voor zoekveld\";\n\"ShowFooter\" = \"Toon voettekst\";\n\"ShowApplicationIcons\" = \"Toepassingspictogrammen weergeven\";\n\"OpenPreferencesWarning\" = \"⚠️ Druk op ⌘, (command+comma) om voorkeuren te openen wanneer de voettekst verborgen is.\";\n"
  },
  {
    "path": "Maccy/Settings/nl.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Algemeen\";\n\"LaunchAtLogin\" = \"Start bij inloggen\";\n\"CheckForUpdates\" = \"Controleer automatisch op updates\";\n\"CheckNow\" = \"Controleer nu\";\n\"Open\" = \"Open:\";\n\"OpenTooltip\" = \"Een herhaalde druk op de hoofdtoets terwijl de modificatietoetsen ingedrukt worden gehouden, selecteert het volgende item in de lijst. In deze modus zal het loslaten van de modificatietoetsen de selectie bevestigen en het popupvenster sluiten.\\nStandaard: ⇧⌘C.\";\n\"Pin\" = \"Pin:\";\n\"PinTooltip\" = \"Sneltoets om geschiedenisitem vast te zetten.\\nStandaard: %@P.\";\n\"Delete\" = \"Verwijder:\";\n\"DeleteTooltip\" = \"Sneltoets om geschiedenisitem te verwijderen.\\nStandaard: %@⌫.\";\n\"ShowPreview\" = \"Voorbeeld:\";\n\"ShowPreviewTooltip\" = \"Voorbeeld weergeven met aanvullende informatie.\\nStandaard: ⌃Space.\";\n\"Behavior\" = \"Gedrag:\";\n\"PasteAutomatically\" = \"Plak automatisch\";\n\"PasteWithoutFormatting\" = \"Plakken zonder opmaak\";\n\"Modifiers\" = \"Pas het gedrag aan bij het selecteren van een item:\\n• Selecteer met %@ ingedrukt om item te kopiëren.\\n• Selecteer met %@ ingedrukt om item te kopiëren en te plakken.\\n• Selecteer met %@ ingedrukt om te kopiëren, opmaak te wissen en te plakken.\";\n\"Search\" = \"Zoek:\";\n\"Exact\" = \"Exact\";\n\"Fuzzy\" = \"Fuzzy\";\n\"Regex\" = \"Reguliere expressies\";\n\"Mixed\" = \"Mixed\";\n\"NotificationsAndSounds\" = \"Meldingen en geluiden 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/nl.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Negeer\";\n\"ApplicationsTab\" = \"Applicaties\";\n\"IgnoredAppsDescription\" = \"Het is mogelijk om kopieën van bepaalde toepassingen te negeren.\\nHoud er rekening mee dat de manier waarop het werkt niet perfect is, dus het is beter om, indien mogelijk, plakbordtypes te gebruiken.\";\n\"IgnoredAllAppsExceptListed\" = \"Negeer alle apps behalve de vermelde\";\n\"PasteboardTypesTab\" = \"Typen plakbord\";\n\"IgnoredPasteboardTypesDescription\" = \"Het is mogelijk om bepaalde typen items op het plakbord te negeren bij het onthouden.\\nStandaard zijn enkele bekende applicatiespecifieke typen gedefinieerd. Je kunt deze verwijderen en aangepaste types toevoegen.\";\n\"IgnoredPasteboardTypesReset\" = \"Reset\";\n\"RegexpTab\" = \"Reguliere expressies\";\n\"IgnoredRegexpsDescription\" = \"Het is mogelijk om bepaalde kopieën uit het onthouden te negeren op basis van gedefinieerde reguliere expressies.\";\n"
  },
  {
    "path": "Maccy/Settings/nl.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Spelden\";\n\"Key\" = \"Sleutel\";\n\"Alias\" = \"Titel\";\n\"Content\" = \"Inhoud\";\n\"ContentIsNotText\" = \"Niet bewerkbare inhoud (afbeelding of bestand)\";\n\"RichTextEditWarning\" = \"Bewerken verwijdert alle opmaak.\";\n\"PinCustomizationDescription\" = \"Je kunt de sneltoets, titel en inhoud van elk vastgemaakt item aanpassen.\\nOm te bewerken dubbelklikt u op het item en voert u een nieuwe waarde in.\";\n"
  },
  {
    "path": "Maccy/Settings/nl.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Opslag\";\n\"Save\" = \"Opslaan:\";\n\"Files\" = \"Bestanden\";\n\"Images\" = \"Afbeeldingen\";\n\"Text\" = \"Tekst\";\n\"SaveDescription\" = \"Verander welke soorten gekopieerde inhoud moeten worden opgeslagen.\";\n\"Size\" = \"Grootte:\";\n\"SizeTooltip\" = \"Aantal te bewaren geschiedenisitems.\\nStandaard: 200.\";\n\"CurrentSizeTooltip\" = \"Huidige grootte op schijf.\";\n\"SortBy\" = \"Sorteer op:\";\n\"LastCopiedAt\" = \"Tijd van laatste kopie\";\n\"FirstCopiedAt\" = \"Tijd van eerste kopie\";\n\"NumberOfCopies\" = \"Aantal kopieën\";\n\"SortByTooltip\" = \"Standaard: Tijd van laatste kopie.\";\n"
  },
  {
    "path": "Maccy/Settings/pl.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Zaawansowane\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# skopiuj dane\";\n\"ClearHistoryOnQuit\" = \"Wyczyść historię przy wyjściu z aplikacji\";\n\"ClearSystemClipboardTooltip\" = \"Kiedy ta opcja jest wybrana, wyczyszczenie historii wyczyści także aktualny wpis ze schowka systemowego.\";\n\"TurnOff\" = \"Wyłącz\";\n\"TurnOffDescription\" = \"Tymczasowo ignoruj wszystkie akcje kopiowania.\\nMożesz użyć tego ustawienia w skrypcie aby automatycznie wyłączyć zapisywanie kopiując wrażliwe dane.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# skopiuj dane\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Możesz też kliknąć na ikonę menu z wciśniętym klawiszem ⌥.\\nAby zignorować tylko następną akcję kopiowania, kliknij ikonę z wciśniętymi klawiszami ⌥⇧.\";\n\"ClearSystemClipboard\" = \"Wyczyść także schowek systemowy\";\n\"ClearHistoryOnQuitTooltip\" = \"Automatycznie wyczyść wszystkie nieprzypięte wpisy przed wyjściem z aplikacji.\";\n"
  },
  {
    "path": "Maccy/Settings/pl.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Wygląd\";\n\"PopupAt\" = \"Pozycja wyskakującego okienka:\";\n\"PopupAtCursor\" = \"Wskaźnik myszy\";\n\"PopupAtMenuBarIcon\" = \"Ikona menu\";\n\"PopupAtWindowCenter\" = \"Środek okna\";\n\"PopupAtScreenCenter\" = \"Środek ekranu\";\n\"PopupAtLastPosition\" = \"Ostatnia pozycja\";\n\"PopupAtLastLocationReset\" = \"Zresetuj pozycję\";\n\"PopupAtTooltip\" = \"Zmień miejsce gdzie pokazuje się wyskakujące okienko.\\nDomyślnie: Wskaźnik myszy.\";\n\"SearchVisibilityAlways\" = \"Zawsze\";\n\"SearchVisibilityDuringSearch\" = \"Podczas wyszukiwania\";\n\"ActiveScreen\" = \"Aktywny ekran\";\n\"PinTo\" = \"Przypnij do:\";\n\"PinToTop\" = \"Góry\";\n\"PinToBottom\" = \"Dołu\";\n\"PinToTooltip\" = \"Zmień pozycję przypiętych wpisów.\\nDomyślnie: góra.\";\n\"ImageHeight\" = \"Wysokość obrazków:\";\n\"ImageHeightTooltip\" = \"Maksymalna wysokość podglądu obrazka.\\nDomyślnie: 40.\\nWskazówka: Wybierz 16 aby obrazek był takiej samej wysokości jak wpis tekstowy.\";\n\"PreviewDelay\" = \"Opóźnienie podglądu:\";\n\"PreviewDelayTooltip\" = \"Opóźnienie w milisekundach zanim pojawi się okienko podglądu.\\nDomyślnie: 1500.\";\n\"HighlightMatches\" = \"Podkreśl dopasowania:\";\n\"HighlightMatchColor\" = \"Kolor\";\n\"HighlightMatchBold\" = \"Pogrubione\";\n\"HighlightMatchItalic\" = \"Kursywa\";\n\"HighlightMatchUnderline\" = \"Podkreślone\";\n\"HighlightMatchesTooltip\" = \"Zmień styl podkreślenia dla dopasowanych wyników wyszukiwania.\\nDomyślnie: pogrubiony.\";\n\"ShowSpecialSymbols\" = \"Pokaż symbole specjalne\";\n\"ShowSpecialSymbolsTooltip\" = \"Pokaż znaki końca lini, tabulatory i końcowe spacje jako symbole specjalne.\";\n\"ShowMenuIcon\" = \"Pokaż ikonę menu\";\n\"ShowRecentCopyInMenuBar\" = \"Pokaż ostatni wpis obok ikony menu\";\n\"ShowSearchField\" = \"Pokaż pole wyszukiwania\";\n\"ShowTitleBeforeSearchField\" = \"Pokaż tytuł przed polem wyszukiwania\";\n\"ShowFooter\" = \"Pokaż stopkę\";\n\"ShowApplicationIcons\" = \"Pokaż ikony aplikacji\";\n\"OpenPreferencesWarning\" = \"⚠️ Naciśnij ⌘, (command+comma) aby otworzyć ustawienia, kiedy stopka jest ukryta.\";\n"
  },
  {
    "path": "Maccy/Settings/pl.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Ogólne\";\n\"LaunchAtLogin\" = \"Uruchom przy logowaniu\";\n\"CheckForUpdates\" = \"Automatycznie sprawdzaj aktualizacje\";\n\"CheckNow\" = \"Sprawdź teraz\";\n\"Open\" = \"Otwórz:\";\n\"OpenTooltip\" = \"Globalny skrót klawiszowy do otwierania aplikacji.\\nKrotne naciśnięcie klawisza głównego przy jednoczesnym przytrzymaniu klawiszy modyfikujących spowoduje wybranie następnego elementu na liście. W tym trybie zwolnienie klawiszy modyfikatorów potwierdzi wybór i zamknie wyskakujące okienko.\\nDomyślnie: ⇧⌘C.\";\n\"Pin\" = \"Przypnij:\";\n\"PinTooltip\" = \"Skrót do przypięcia wpisu w historii.\\nDomyślnie: ⌥P.\";\n\"Delete\" = \"Usuń:\";\n\"DeleteTooltip\" = \"Skrót do usunięcia wpisu z historii.\\nDomyślnie: ⌥⌫.\";\n\"ShowPreview\" = \"Podgląd:\";\n\"ShowPreviewTooltip\" = \"Pokaż podgląd z dodatkowymi informacjami.\\nDomyślnie: ⌃Space.\";\n\"Behavior\" = \"Zachowanie:\";\n\"PasteAutomatically\" = \"Wklej automatycznie\";\n\"PasteWithoutFormatting\" = \"Wklej bez formatowania\";\n\"Modifiers\" = \"Dostosuj zachowanie przy wybieraniu wpisu:\\n• Wybierz z wciśniętym %@ aby skopiować.\\n• Wybierz z wciśniętym %@ aby skopiować i wkleić.\\n• Wybierz z wciśniętym %@ aby skopiować i wkleić z wyczyszczonym formatowaniem.\";\n\"Search\" = \"Wyszukiwanie:\";\n\"Exact\" = \"Dokładne\";\n\"Fuzzy\" = \"Rozmyte\";\n\"Regex\" = \"Wyrażenia regularne\";\n\"Mixed\" = \"Mieszane\";\n\"NotificationsAndSounds\" = \"Dźwięki i powiadomienia 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/pl.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignoruj\";\n\"ApplicationsTab\" = \"Aplikacje\";\n\"IgnoredAppsDescription\" = \"Możesz ignorować kopiowanie w niektórych aplikacjach.\\nSposób działania tego systemu nie jest idealny, więc lepiej jest użyć typów pasteboard jeżeli to możliwe.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignoruj wszystkie aplikacje oprócz wybranych\";\n\"PasteboardTypesTab\" = \"Typy pasteboard\";\n\"IgnoredPasteboardTypesDescription\" = \"Możesz ignorować zapamiętywanie wpisów od niektórych pasteboard'ów.\\nDomyślnie, niektóre, znane, właściwe aplikacjom typy są już zdefiniowane. Możesz je usunąć i dodać inne, wybrane przez Ciebie.\";\n\"IgnoredPasteboardTypesReset\" = \"Zresetuj\";\n\"RegexpTab\" = \"Wyrażenia regularne\";\n\"IgnoredRegexpsDescription\" = \"Możesz ignorować zapamiętywanie niektórych wpisów na podstawie wyrażeń regularnych.\";\n"
  },
  {
    "path": "Maccy/Settings/pl.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Przypięte\";\n\"Key\" = \"Klucz\";\n\"Alias\" = \"Tytuł\";\n\"Content\" = \"Treść\";\n\"ContentIsNotText\" = \"Zawartość nieedytowalna (obraz lub plik)\";\n\"RichTextEditWarning\" = \"Edycja spowoduje usunięcie całego formatowania.\";\n\"PinCustomizationDescription\" = \"Można dostosować klawisz skrótu, tytuł i zawartość dowolnego przypiętego elementu.\\nAby edytować, kliknij dwukrotnie element i wprowadź nową wartość. Należy pamiętać, że można zmienić tylko zwykły tekst.\";\n"
  },
  {
    "path": "Maccy/Settings/pl.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Miejsce\";\n\"Save\" = \"Zapisz:\";\n\"Files\" = \"Pliki\";\n\"Images\" = \"Obrazy\";\n\"Text\" = \"Tekst\";\n\"SaveDescription\" = \"Wybierz jakie typy kopiowanej treści powinny być przechowywane.\";\n\"Size\" = \"Rozmiar:\";\n\"SizeTooltip\" = \"Liczba pozycji przechowywana w historii.\\nDomyślnie: 200.\";\n\"CurrentSizeTooltip\" = \"Aktualny rozmiar na dysku.\";\n\"SortBy\" = \"Sortuj po:\";\n\"LastCopiedAt\" = \"Czas ostatniego kopiowania\";\n\"FirstCopiedAt\" = \"Czas pierwszego kopiowania\";\n\"NumberOfCopies\" = \"Liczba kopii\";\n\"SortByTooltip\" = \"Domyślnie: Czas ostatniego kopiowania.\";\n"
  },
  {
    "path": "Maccy/Settings/pt-BR.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avançado\";\n\"TurnOff\" = \"Desativar\";\n\"TurnOffDescription\" = \"Ignorar temporariamente todas as novas cópias.\\nÉ provável que você o use de forma programática e desabilite o aplicativo ao copiar dados confidenciais.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copiar dados\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Você também pode clicar no ícone do menu com ⌥ pressionado.\\nPara ignorar apenas a próxima cópia, clique com ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copiar dados\";\n\"ClearHistoryOnQuit\" = \"Limpar histórico ao sair\";\n\"ClearHistoryOnQuitTooltip\" = \"Remova automaticamente todos os itens não fixados antes de sair do aplicativo.\";\n\"ClearSystemClipboard\" = \"Limpar também a área de transferência do sistema\";\n\"ClearSystemClipboardTooltip\" = \"Quando ativado, limpar o histórico também limparia a área de transferência atual do sistema.\";\n"
  },
  {
    "path": "Maccy/Settings/pt-BR.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Aparência\";\n\"PopupAt\" = \"Popup em:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"Ícone do menu\";\n\"PopupAtWindowCenter\" = \"Centro da janela\";\n\"PopupAtScreenCenter\" = \"Centro da tela\";\n\"PopupAtLastPosition\" = \"Última posição\";\n\"PopupAtLastLocationReset\" = \"Redefinir posição\";\n\"PopupAtTooltip\" = \"Altere o local onde o pop-up aparece.\\nPadrão: Cursor.\";\n\"SearchVisibilityAlways\" = \"Sempre\";\n\"SearchVisibilityDuringSearch\" = \"Durante a pesquisa\";\n\"ActiveScreen\" = \"Tela ativa\";\n\"PinTo\" = \"Fixar em:\";\n\"PinToTop\" = \"Topo\";\n\"PinToBottom\" = \"Final\";\n\"PinToTooltip\" = \"Altera a localização de itens fixados.\\nPadrão: Topo.\";\n\"ImageHeight\" = \"Altura da imagem:\";\n\"ImageHeightTooltip\" = \"Altura máxima da pré-visualização de imagem.\\nPadrão: 40.\\nDica: Defina 16 para parecer itens de texto.\";\n\"PreviewDelay\" = \"Atraso de pré-visualização:\";\n\"PreviewDelayTooltip\" = \"Atraso em milissegundos até que um popup de pré-visualização seja mostrado.\\nPadrão: 1500.\";\n\"HighlightMatches\" = \"Destacar resultados:\";\n\"HighlightMatchColor\" = \"Cor\";\n\"HighlightMatchBold\" = \"Negrito\";\n\"HighlightMatchItalic\" = \"Itálico\";\n\"HighlightMatchUnderline\" = \"Sublinhado\";\n\"HighlightMatchesTooltip\" = \"Mude o estilo de destaque para resultados da busca.\\nPadrão: Negrito.\";\n\"ShowSpecialSymbols\" = \"Mostrar símbolos especiais\";\n\"ShowSpecialSymbolsTooltip\" = \"Mostrar novas linhas, tabulações, e espaços iniciais e finais através de símbolos especiais.\";\n\"ShowMenuIcon\" = \"Mostrar ícone de menu\";\n\"ShowRecentCopyInMenuBar\" = \"Mostrar cópia recente ao lado do ícone do menu\";\n\"ShowSearchField\" = \"Mostrar campo de busca\";\n\"ShowTitleBeforeSearchField\" = \"Mostrar título antes do campo de pesquisa\";\n\"ShowFooter\" = \"Mostrar rodapé\";\n\"ShowApplicationIcons\" = \"Mostrar ícones de aplicações\";\n\"OpenPreferencesWarning\" = \"⚠️ Pressione ⌘, (command+comma) para abrir as preferências quando o rodapé estiver oculto.\";\n"
  },
  {
    "path": "Maccy/Settings/pt-BR.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Geral\";\n\"LaunchAtLogin\" = \"Iniciar no login\";\n\"CheckForUpdates\" = \"Verificar atualizações automaticamente\";\n\"CheckNow\" = \"Verificar agora\";\n\"Open\" = \"Abrir:\";\n\"OpenTooltip\" = \"Tecla de atalho global para abrir a aplicação.\\nUma pressão repetida da tecla principal enquanto mantém as teclas modificadoras premidas irá selecionar o item seguinte na lista. Neste modo, soltar as teclas modificadoras confirmará a seleção e fechará o pop-up.\\nPadrão: ⇧⌘C.\";\n\"Pin\" = \"Fixar:\";\n\"PinTooltip\" = \"Tecla de atalho para fixar item do histórico.\\nPadrão: ⌥P.\";\n\"Delete\" = \"Excluir:\";\n\"DeleteTooltip\" = \"Aproximada\";\n\"ShowPreview\" = \"Pré-visualizar:\";\n\"ShowPreviewTooltip\" = \"Mostrar pré-visualização com informações adicionais.\\nPadrão: ⌃Space.\";\n\"Behavior\" = \"Comportamento:\";\n\"PasteAutomatically\" = \"Colar automaticamente\";\n\"PasteWithoutFormatting\" = \"Colar sem formatação\";\n\"Modifiers\" = \"Personalize o comportamento ao selecionar o item:\\n• Selecione com ⌘ pressionado para copiar o item.\\n• Selecione com ⌥ pressionado para copiar e colar o item.\\n• Selecionar com ⌥⇧ pressionado para copiar, limpar a formatação e colar o item.\";\n\"Search\" = \"Busca:\";\n\"Exact\" = \"Exata\";\n\"Fuzzy\" = \"Aproximada\";\n\"Regex\" = \"Expressões regulares\";\n\"Mixed\" = \"Mista\";\n\"NotificationsAndSounds\" = \"Notificações e sons 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/pt-BR.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignorar\";\n\"ApplicationsTab\" = \"Aplicativos\";\n\"IgnoredAppsDescription\" = \"É possível ignorar cópias provenientes de determinados aplicativos.\\nPor favor, note que a forma como isso funciona não é infalível, por isso é melhor usar tipos de cópia quando possível.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorar todos os aplicativos exceto os listados\";\n\"PasteboardTypesTab\" = \"Tipos de cópia\";\n\"IgnoredPasteboardTypesDescription\" = \"É possível ignorar certos tipos de itens de cópia para não lembrar.\\nPor padrão, alguns tipos específicos de aplicativos conhecidos são definidos. Você pode removê-los e adicionar qualquer tipo personalizado que você quiser.\";\n\"IgnoredPasteboardTypesReset\" = \"Reiniciar\";\n\"RegexpTab\" = \"Expressões regulares\";\n\"IgnoredRegexpsDescription\" = \"É possível ignorar certas cópias para não lembrar com base em expressões regulares definidas.\";\n"
  },
  {
    "path": "Maccy/Settings/pt-BR.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Fixar\";\n\"Key\" = \"Key\";\n\"Alias\" = \"Title\";\n\"Content\" = \"Conteúdo\";\n\"ContentIsNotText\" = \"Conteúdo não editável (imagem ou ficheiro)\";\n\"RichTextEditWarning\" = \"A edição elimina toda a formatação.\";\n\"PinCustomizationDescription\" = \"É possível personalizar a tecla de atalho, o título e o conteúdo de qualquer item fixado. Para editar, faça duplo clique no item e introduza um novo valor.\\nPor favor, note que apenas o texto simples pode ser alterado.\";\n"
  },
  {
    "path": "Maccy/Settings/pt-BR.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Armazenamento\";\n\"Save\" = \"Salvar:\";\n\"Files\" = \"Arquivos\";\n\"Images\" = \"Imagens\";\n\"Text\" = \"Texto\";\n\"SaveDescription\" = \"Alterar que tipos de conteúdo copiados devem ser armazenados.\";\n\"Size\" = \"Tamanho:\";\n\"SizeTooltip\" = \"Número de itens do histórico para manter.\\nPadrão: 200.\";\n\"CurrentSizeTooltip\" = \"Tamanho atual no disco.\";\n\"SortBy\" = \"Ordenar por:\";\n\"LastCopiedAt\" = \"Data da última cópia\";\n\"FirstCopiedAt\" = \"Data da primeira cópia\";\n\"NumberOfCopies\" = \"Número de cópias\";\n\"SortByTooltip\" = \"Padrão: Data de última cópia.\";\n"
  },
  {
    "path": "Maccy/Settings/pt.lproj/AdvancedSettings.strings",
    "content": "\"TurnOff\" = \"Desativar\";\n\"TurnOffDescription\" = \"Ignorar temporariamente todas as novas cópias.\\nÉ provável que o use de forma programática e desative a aplicação ao copiar dados confidenciais.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copiar dados\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Também pode clicar no ícone do menu com ⌥ pressionado.\\nPara ignorar apenas a próxima cópia, clique com ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copiar dados\";\n\"ClearHistoryOnQuit\" = \"Limpar histórico ao sair\";\n\"ClearHistoryOnQuitTooltip\" = \"Remova automaticamente todos os elementos não fixados antes de sair da aplicação.\";\n\"ClearSystemClipboard\" = \"Limpar também a área de transferência do sistema\";\n\"ClearSystemClipboardTooltip\" = \"Quando ativado, limpar o histórico também limparia a área de transferência atual do sistema.\";\n\"Title\" = \"Avançado\";\n"
  },
  {
    "path": "Maccy/Settings/pt.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Aparência\";\n\"PopupAt\" = \"Popup em:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"Ícone do menu\";\n\"PopupAtWindowCenter\" = \"Centro da janela\";\n\"PopupAtScreenCenter\" = \"Centro do ecrã\";\n\"PopupAtLastPosition\" = \"Última posição\";\n\"PopupAtLastLocationReset\" = \"Redefinir posição\";\n\"PopupAtTooltip\" = \"Altere o local onde o pop-up aparece.\\nPadrão: Cursor.\";\n\"SearchVisibilityAlways\" = \"Sempre\";\n\"SearchVisibilityDuringSearch\" = \"Durante a pesquisa\";\n\"ActiveScreen\" = \"Ecrã ativo\";\n\"PinTo\" = \"Fixar em:\";\n\"PinToTop\" = \"Topo\";\n\"PinToBottom\" = \"Final\";\n\"PinToTooltip\" = \"Altera a localização de elementos fixados.\\nPadrão: Topo.\";\n\"ImageHeight\" = \"Altura da imagem:\";\n\"ImageHeightTooltip\" = \"Altura máxima da pré-visualização de imagem.\\nPadrão: 40.\\nDica: Defina 16 para parecer elementos de texto.\";\n\"PreviewDelay\" = \"Atraso de pré-visualização:\";\n\"PreviewDelayTooltip\" = \"Atraso em milissegundos até que um popup de pré-visualização seja mostrado.\\nPadrão: 1500.\";\n\"HighlightMatches\" = \"Destacar resultados:\";\n\"HighlightMatchColor\" = \"Cor\";\n\"HighlightMatchBold\" = \"Negrito\";\n\"HighlightMatchItalic\" = \"Itálico\";\n\"HighlightMatchUnderline\" = \"Sublinhado\";\n\"HighlightMatchesTooltip\" = \"Mude o estilo de destaque para resultados da procura.\\nPadrão: Negrito.\";\n\"ShowSpecialSymbols\" = \"Mostrar símbolos especiais\";\n\"ShowSpecialSymbolsTooltip\" = \"Mostrar novas linhas, tabulações e espaços iniciais e finais através de símbolos especiais.\";\n\"ShowMenuIcon\" = \"Mostrar ícone de menu\";\n\"ShowRecentCopyInMenuBar\" = \"Mostrar cópia recente ao lado do ícone do menu\";\n\"ShowSearchField\" = \"Mostrar campo de procura\";\n\"ShowTitleBeforeSearchField\" = \"Mostrar título antes do campo de pesquisa\";\n\"ShowApplicationIcons\" = \"Mostrar ícones de aplicações\";\n\"ShowFooter\" = \"Mostrar rodapé\";\n\"OpenPreferencesWarning\" = \"⚠️ Pressione ⌘, (command+comma) para abrir as preferências quando o rodapé estiver oculto.\";\n"
  },
  {
    "path": "Maccy/Settings/pt.lproj/GeneralSettings.strings",
    "content": "\"LaunchAtLogin\" = \"Iniciar no login\";\n\"CheckForUpdates\" = \"Verificar atualizações automaticamente\";\n\"CheckNow\" = \"Verificar agora\";\n\"Open\" = \"Abrir:\";\n\"OpenTooltip\" = \"Tecla de atalho global para abrir a aplicação.\\nUma pressão repetida da tecla principal enquanto mantém as teclas modificadoras premidas irá selecionar o elemento seguinte na lista. Neste modo, soltar as teclas modificadoras confirmará a seleção e fechará o pop-up.\\nPadrão: ⇧⌘C.\";\n\"Pin\" = \"Fixar:\";\n\"PinTooltip\" = \"Tecla de atalho para fixar elemento do histórico.\\nPadrão: ⌥P.\";\n\"Delete\" = \"Apagar:\";\n\"Behavior\" = \"Comportamento:\";\n\"PasteAutomatically\" = \"Colar automaticamente\";\n\"PasteWithoutFormatting\" = \"Colar sem formatação\";\n\"Modifiers\" = \"Personalize o comportamento ao selecionar o elemento:\\n• Selecione com ⌘ pressionado para copiar o elemento.\\n• Selecione com ⌥ pressionado para copiar e colar o elemento.\\n• Selecionar com ⌥⇧ pressionado para copiar, limpar a formatação e colar o elemento.\";\n\"Search\" = \"Procura:\";\n\"Exact\" = \"Exata\";\n\"Regex\" = \"Expressões regulares\";\n\"Mixed\" = \"Mista\";\n\"NotificationsAndSounds\" = \"Notificações e sons 􀱁\";\n\"Title\" = \"Geral\";\n\"Fuzzy\" = \"Difuso\";\n\"DeleteTooltip\" = \"Atalho para apagar o elemento do histórico.\\nPadrão: ⌥⌫.\";\n\"ShowPreview\" = \"Pré-visualizar:\";\n\"ShowPreviewTooltip\" = \"Mostrar pré-visualização com informação adicional.\\nPadrão: ⌃Space.\";\n\"Behavior\" = \"Comportamento:\";\n"
  },
  {
    "path": "Maccy/Settings/pt.lproj/IgnoreSettings.strings",
    "content": "\"ApplicationsTab\" = \"Aplicações\";\n\"IgnoredAppsDescription\" = \"É possível ignorar cópias provenientes de determinados aplicações.\\nPor favor, note que a forma como isso funciona não é infalível, por isso é melhor usar tipos de cópia quando possível.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorar todas as aplicações exceto as listadas\";\n\"PasteboardTypesTab\" = \"Tipos de cópia\";\n\"IgnoredPasteboardTypesDescription\" = \"É possível ignorar certos tipos de elementos de cópia para não lembrar.\\nPor padrão, alguns tipos específicos de aplicações conhecidos são definidos. Pode removê-los e adicionar qualquer tipo personalizado que quiser.\";\n\"IgnoredPasteboardTypesReset\" = \"Reiniciar\";\n\"RegexpTab\" = \"Expressões regulares\";\n\"IgnoredRegexpsDescription\" = \"É possível ignorar certas cópias para não lembrar com base em expressões regulares definidas.\";\n\"Title\" = \"Ignorar\";\n"
  },
  {
    "path": "Maccy/Settings/pt.lproj/PinsSettings.strings",
    "content": "\"Content\" = \"Conteúdo\";\n\"ContentIsNotText\" = \"Conteúdo não editável (imagem ou ficheiro)\";\n\"RichTextEditWarning\" = \"A edição elimina toda a formatação.\";\n\"PinCustomizationDescription\" = \"É possível personalizar a tecla de atalho, o título e o conteúdo de qualquer elemento fixado. Para editar, faça duplo clique no elemento e introduza um novo valor.\\nPor favor, note que apenas o texto simples pode ser alterado.\";\n\"Title\" = \"Pinos\";\n\"Alias\" = \"Titlo\";\n\"Key\" = \"Chave\";\n"
  },
  {
    "path": "Maccy/Settings/pt.lproj/StorageSettings.strings",
    "content": "\"Save\" = \"Gravar:\";\n\"Files\" = \"Ficheiros\";\n\"Images\" = \"Imagens\";\n\"Text\" = \"Texto\";\n\"SaveDescription\" = \"Alterar que tipos de conteúdo copiados devem ser armazenados.\";\n\"Size\" = \"Tamanho:\";\n\"SizeTooltip\" = \"Número de elementos do histórico a manter.\\nPadrão: 200.\";\n\"CurrentSizeTooltip\" = \"Tamanho atual no disco.\";\n\"SortBy\" = \"Ordenar por:\";\n\"LastCopiedAt\" = \"Data da última cópia\";\n\"FirstCopiedAt\" = \"Data da primeira cópia\";\n\"NumberOfCopies\" = \"Número de cópias\";\n\"SortByTooltip\" = \"Padrão: Data de última cópia.\";\n\"Title\" = \"Armazenamento\";\n"
  },
  {
    "path": "Maccy/Settings/ro.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avansat\";\n\"TurnOff\" = \"Oprește\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copiază datele\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"ClearHistoryOnQuit\" = \"Șterge istoricul la închiderea aplicației\";\n\"ClearHistoryOnQuitTooltip\" = \"Elimină automat toate elementele nefixate înainte de a închide aplicația.\";\n\"ClearSystemClipboardTooltip\" = \"Când este activat, ștergerea istoricului va șterge și clipboard-ul actual al sistemului.\";\n\"ClearSystemClipboard\" = \"Șterge și clipboard-ul sistemului\";\n\"TurnOffViaMenuIconDescription\" = \"Poți de asemenea să faci clic pe simbolul din meniu cu tasta ⌥ apăsată.\\nPentru a ignora doar următoarea copie, fă clic cu ⌥⇧.\";\n\"TurnOffDescription\" = \"Ignorați temporar toate copiile noi.\\nProbabil vei folosi această opțiune programatic și vei dezactiva aplicația în timp ce copiezi date sensibile.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copiază datele\";\n"
  },
  {
    "path": "Maccy/Settings/ro.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Aspect\";\n\"PopupAt\" = \"Popup-ul apare:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"Iconiță meniu\";\n\"PopupAtWindowCenter\" = \"Centrul ferestrei\";\n\"PopupAtScreenCenter\" = \"Centrul ecranului\";\n\"PopupAtLastPosition\" = \"Ultima locatie\";\n\"PopupAtLastLocationReset\" = \"Reseteaza locatia\";\n\"PopupAtTooltip\" = \"Schimba unde apare popup-ul.\\nImplicit: Cursor.\";\n\"SearchVisibilityAlways\" = \"Întotdeauna\";\n\"SearchVisibilityDuringSearch\" = \"În timpul căutării\";\n\"ActiveScreen\" = \"Ecranul activ\";\n\"PinTo\" = \"Fixează la:\";\n\"PinToTop\" = \"Sus\";\n\"PinToBottom\" = \"Jos\";\n\"PinToTooltip\" = \"Schimbă poziția elementelor fixate.\\nImplicit: Sus.\";\n\"ImageHeight\" = \"Înălțimea imaginii:\";\n\"ImageHeightTooltip\" = \"Înălțime maximă pentru previzualizarea imaginii.\\nImplicit: 40.\\nSugestie: Setează la 16 pentru a semăna cu elementele de tip text.\";\n\"PreviewDelay\" = \"Temporizare previzualizare:\";\n\"PreviewDelayTooltip\" = \"Întârzierea în milisecunde până la afișarea ferestrei popup de previzualizare.\\nImplicit: 1500.\";\n\"HighlightMatches\" = \"Evidențiere potriviri:\";\n\"HighlightMatchColor\" = \"Culoare\";\n\"HighlightMatchBold\" = \"Aldin (bold)\";\n\"HighlightMatchItalic\" = \"Italic\";\n\"HighlightMatchUnderline\" = \"Subliniat\";\n\"HighlightMatchesTooltip\" = \"Schimbă stilul de evidențiere pentru potrivirile din căutare.\\nImplicit: Aldin (bold).\";\n\"ShowSpecialSymbols\" = \"Afișează simboluri speciale\";\n\"ShowSpecialSymbolsTooltip\" = \"Afișează caractere speciale pentru linie nouă, tabulator, spațiile de la început și de la sfârșit.\";\n\"ShowMenuIcon\" = \"Afișează iconița meniului\";\n\"ShowRecentCopyInMenuBar\" = \"Afișează ultima copiere lângă pictograma meniului\";\n\"ShowSearchField\" = \"Afișează câmpul de căutare\";\n\"ShowTitleBeforeSearchField\" = \"Afișează titlul înaintea câmpului de căutare\";\n\"ShowApplicationIcons\" = \"Afișează iconițele aplicațiilor\";\n\"ShowFooter\" = \"Afișează subsolul\";\n\"OpenPreferencesWarning\" = \"⚠️ Apasă ⌘, (command+comma) pentru a deschide preferințele atunci când subsolul este ascuns.\";\n"
  },
  {
    "path": "Maccy/Settings/ro.lproj/GeneralSettings.strings",
    "content": "\"PasteWithoutFormatting\" = \"Lipește fără formatare\";\n\"PinTooltip\" = \"Tastă de comandă rapidă pentru a fixa un element din istoric.\\nImplicit: ⌥P.\";\n\"LaunchAtLogin\" = \"Deschide la login\";\n\"CheckNow\" = \"Verifică acum\";\n\"OpenTooltip\" = \"Tastă globală de comandă rapidă pentru a deschide aplicația.\\nO apăsare repetată a tastei principale, în timp ce taste \\\"modifier\\\" sunt menținute apăsate, va selecta următorul element din listă. Eliberare unei taste \\\"modifier\\\" va confirma selecția și va închide fereastra popup.\\nImplicit: ⇧⌘C.\";\n\"Pin\" = \"Fixează:\";\n\"PasteAutomatically\" = \"Lipește automat\";\n\"Fuzzy\" = \"Aproximativă\";\n\"Regex\" = \"Expresii regulate\";\n\"Mixed\" = \"Mixt\";\n\"NotificationsAndSounds\" = \"Notificări și sunet 􀱁\";\n\"CheckForUpdates\" = \"Verifică actualizările automat\";\n\"Modifiers\" = \"Personalizați comportamentul la selectarea unui element:\\n- Selectați cu %@ apăsat pentru a copia un element.\\n- Selectați cu %@ apăsat pentru a copia și lipi un element.\\n- Selectați cu %@ apăsat pentru a copia, șterge formatarea și lipi un element.\";\n\"Behavior\" = \"Comportament:\";\n\"Open\" = \"Deschide:\";\n\"Exact\" = \"Exactă\";\n\"Search\" = \"Căutare:\";\n\"DeleteTooltip\" = \"Tastă de comandă rapidă pentru a șterge un element din istoric.\\nImplicit: ⌥⌫.\";\n\"ShowPreview\" = \"Previzualizare:\";\n\"ShowPreviewTooltip\" = \"Afișează previzualizarea cu informații suplimentare.\\nImplicit: ⌃Space.\";\n\"Behavior\" = \"Comportament:\";\n\"Delete\" = \"Șterge:\";\n\"Title\" = \"General\";\n"
  },
  {
    "path": "Maccy/Settings/ro.lproj/IgnoreSettings.strings",
    "content": "\"ApplicationsTab\" = \"Applicații\";\n\"PasteboardTypesTab\" = \"Tipuri „pasteboard”\";\n\"IgnoredRegexpsDescription\" = \"Este posibil să ignori anumite copii pentru a nu le reține, pe baza expresiilor regulate definite.\";\n\"IgnoredPasteboardTypesDescription\" = \"Este posibil să ignori elemente de un anumit tip de „pasteboard” pentru a nu le reține.\\nÎn mod implicit, sunt definite câteva tipuri specifice aplicațiilor cunoscute. Le poți elimina și adăuga orice tipuri personalizate dorești.\";\n\"Title\" = \"Ignoră\";\n\"IgnoredAppsDescription\" = \"Este posibil să ignori copiile provenind din anumite aplicații.\\nTotuși, ține cont că modul în care funcționează nu est infailibil, așa că este mai bine să folosești tipurile „pasteboard” atunci când este posibil.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignoră toate aplicațiile cu excepția celor din listă\";\n\"IgnoredPasteboardTypesReset\" = \"Resetează\";\n\"RegexpTab\" = \"Expresii regulate\";\n"
  },
  {
    "path": "Maccy/Settings/ro.lproj/PinsSettings.strings",
    "content": "\"Key\" = \"Tastă\";\n\"Alias\" = \"Titlu\";\n\"PinCustomizationDescription\" = \"Poți personaliza tasta rapidă, titlul și conținutul oricărui element fixat. Pentru a edita, fă dublu-clic pe acesta și introduce noua valoare.\\nNotă: doar textul fără formatare poate fi modificat.\";\n\"Title\" = \"Elemente fixate\";\n\"Content\" = \"Conținut\";\n\"ContentIsNotText\" = \"Conținut needitabil (imagine sau fișier)\";\n\"RichTextEditWarning\" = \"Editarea va șterge formatarea existentă.\";\n"
  },
  {
    "path": "Maccy/Settings/ro.lproj/StorageSettings.strings",
    "content": "\"SaveDescription\" = \"Modifică ce tip de conținut copiat ar trebui să fie stocat.\";\n\"FirstCopiedAt\" = \"Data primei copii\";\n\"Title\" = \"Stocare\";\n\"Images\" = \"Imagini\";\n\"SizeTooltip\" = \"Numărul de elemente din istoric de păstrat.\\nImplicit: 200.\";\n\"LastCopiedAt\" = \"Data ultimei copii\";\n\"NumberOfCopies\" = \"Numărul de copii\";\n\"SortBy\" = \"Sortare după:\";\n\"Size\" = \"Dimensiune:\";\n\"Save\" = \"Salvează:\";\n\"Text\" = \"Text\";\n\"Files\" = \"Fișiere\";\n\"SortByTooltip\" = \"Implicit: Data ultimei copii.\";\n\"CurrentSizeTooltip\" = \"Dimensiunea curentă pe disc.\";\n"
  },
  {
    "path": "Maccy/Settings/ru.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Дополнения\";\n\"TurnOff\" = \"Выключить\";\n\"TurnOffDescription\" = \"Временно игнорировать все новые копировния.\\nВы можете использовать эту настройку программно и отключить приложение на время копирования конфиденциальных данных.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# копировать данные\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Вы также можете кликнуть значок меню с нажатой клавишей ⌥.\\nЧтобы игнорировать только следующую копию, кликните с ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# копировать данные\";\n\"ClearHistoryOnQuit\" = \"Очищать историю при закрытии\";\n\"ClearHistoryOnQuitTooltip\" = \"Автоматически удалять все неприкрепленные записи перед закрытием приложения.\";\n\"ClearSystemClipboard\" = \"Также очищать системный буфер обмена\";\n\"ClearSystemClipboardTooltip\" = \"Если этот параметр включен, очистка истории также очистит текущий системный буфер обмена.\";\n"
  },
  {
    "path": "Maccy/Settings/ru.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Внешний Вид\";\n\"PopupAt\" = \"Всплывать у:\";\n\"PopupAtCursor\" = \"Курсора\";\n\"PopupAtMenuBarIcon\" = \"Иконки в меню\";\n\"PopupAtWindowCenter\" = \"Центра окна\";\n\"PopupAtScreenCenter\" = \"Центра экрана\";\n\"PopupAtLastPosition\" = \"Последнее положение\";\n\"PopupAtLastLocationReset\" = \"Сбросить позицию\";\n\"PopupAtTooltip\" = \"Изменить место для появления всплывающего окна.\\nПо умолчанию: Курсор.\";\n\"SearchVisibilityAlways\" = \"Всегда\";\n\"SearchVisibilityDuringSearch\" = \"Во время поиска\";\n\"ActiveScreen\" = \"Активный экран\";\n\"PinTo\" = \"Прикреплять к:\";\n\"PinToTop\" = \"Верху\";\n\"PinToBottom\" = \"Низу\";\n\"PinToTooltip\" = \"Изменить место прикрепленных записей.\\nПо умолчанию: Верх.\";\n\"ImageHeight\" = \"Высота изображений:\";\n\"ImageHeightTooltip\" = \"Максимальная высота предпросмотра изображений.\\nПо умолчанию: 40.\\nСовет: Поставьте 16 для схожести с текстовыми записями.\";\n\"PreviewDelay\" = \"Задержка предварительного просмотра:\";\n\"PreviewDelayTooltip\" = \"Задержка в миллисекундах до появления всплывающего окна предварительного просмотра.\\nПо умолчанию: 1500.\";\n\"HighlightMatches\" = \"Выделить совпадения:\";\n\"HighlightMatchColor\" = \"Цвет\";\n\"HighlightMatchBold\" = \"Жирный\";\n\"HighlightMatchItalic\" = \"Курсив\";\n\"HighlightMatchUnderline\" = \"Подчеркнутый\";\n\"HighlightMatchesTooltip\" = \"Измените стиль выделения для совпадений при поиске.\\nПо умолчанию: Жирный.\";\n\"ShowSpecialSymbols\" = \"Показывать специальные символы\";\n\"ShowSpecialSymbolsTooltip\" = \"Показывать символы новой строки, табуляции, начальные и конечные пробелы с помощью специальных символов.\";\n\"ShowMenuIcon\" = \"Показывать иконку в меню\";\n\"ShowRecentCopyInMenuBar\" = \"Показывать последнюю запись рядом с иконкой меню\";\n\"ShowSearchField\" = \"Показывать поле поиска\";\n\"ShowTitleBeforeSearchField\" = \"Показывать название перед поиском\";\n\"ShowFooter\" = \"Показывать нижний колонтитул\";\n\"ShowApplicationIcons\" = \"Показать значки приложений\";\n\"OpenPreferencesWarning\" = \"⚠️ Нажмите ⌘, (command+comma) чтобы открыть настройки когда нижний колонтитул скрыт.\";\n"
  },
  {
    "path": "Maccy/Settings/ru.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Основные\";\n\"LaunchAtLogin\" = \"Запускать при логине\";\n\"CheckForUpdates\" = \"Автоматически проверять обновления\";\n\"CheckNow\" = \"Проверить сейчас\";\n\"Open\" = \"Открыть:\";\n\"OpenTooltip\" = \"Глобальная клавиша быстрого доступа для открытия приложения.\\nПовторное нажатие основной клавиши при удерживании модификаторов выберет следующий пункт в списке. В этом режиме, отпустив клавиши-модификаторы, вы подтвердите выбор и закроете всплывающее окно.\\nПо умолчанию: ⇧⌘C.\";\n\"Pin\" = \"Прикрепить:\";\n\"PinTooltip\" = \"Горячая клавиша для прикрепления записи.\\nПо умолчанию: %@P.\";\n\"Delete\" = \"Удалить:\";\n\"DeleteTooltip\" = \"Горячая клавиша для удаления записи.\\nПо умолчанию: %@⌫.\";\n\"ShowPreview\" = \"Предпросмотр:\";\n\"ShowPreviewTooltip\" = \"Показать предварительный просмотр с дополнительной информацией.\\nПо умолчанию: ⌃Space.\";\n\"Behavior\" = \"Поведение:\";\n\"PasteAutomatically\" = \"Автоматически вставлять\";\n\"PasteWithoutFormatting\" = \"Вставлять без форматирования\";\n\"Modifiers\" = \"Настроить поведение при выборе записи:\\n• Выберите, зажав %@, чтобы скопировать запись.\\n• Выберите, зажав %@, чтобы скопировать и вставить запись.\\n• Выберите, зажав %@, чтобы скопировать, очистить форматирование и вставить запись.\";\n\"Search\" = \"Поиск:\";\n\"Exact\" = \"Точный\";\n\"Fuzzy\" = \"Неточный\";\n\"Regex\" = \"Регулярные выражения\";\n\"Mixed\" = \"Смешанный\";\n\"NotificationsAndSounds\" = \"Уведомления и звуки 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/ru.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Игнорирование\";\n\"ApplicationsTab\" = \"Приложения\";\n\"IgnoredAppsDescription\" = \"Копирования из определённых приложений можно игнорировать.\\nПожалуйста учтите, что текущая реализация не гарантирует стопроцентного результата, поэтому, по возможности, рекомендуется использовать игнорируемые типы.\";\n\"IgnoredAllAppsExceptListed\" = \"Игнорировать все приложения, кроме перечисленных\";\n\"PasteboardTypesTab\" = \"Типы\";\n\"IgnoredPasteboardTypesDescription\" = \"Определённые типы копируемых данных (pasteboard types) можно игнорировать.\\nПо умолчанию содержит некоторые типы, специфичные для известных приложений. Вы можете их удалить и добавить свои типы.\";\n\"IgnoredPasteboardTypesReset\" = \"Сброс\";\n\"RegexpTab\" = \"Регулярные выражения\";\n\"IgnoredRegexpsDescription\" = \"Определенные копирования можно игнорировать на основе регулярных выражений.\";\n"
  },
  {
    "path": "Maccy/Settings/ru.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Прикреплённые\";\n\"Key\" = \"Клавиша\";\n\"Alias\" = \"Название\";\n\"Content\" = \"Содержание\";\n\"ContentIsNotText\" = \"Не редактируемое содержимое (изображение или файл)\";\n\"RichTextEditWarning\" = \"При редактировании все форматирование будет удалено.\";\n\"PinCustomizationDescription\" = \"Вы можете настроить горячую клавишу, заголовок и содержимое любого прикрепленного элемента. Чтобы изменить, дважды щелкните элемент и введите новое значение.\\nПримите во внимание, что изменять можно только обычный текст.\";\n"
  },
  {
    "path": "Maccy/Settings/ru.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Хранение\";\n\"Save\" = \"Сохранять:\";\n\"Files\" = \"Файлы\";\n\"Images\" = \"Изображения\";\n\"Text\" = \"Текст\";\n\"SaveDescription\" = \"Изменить хранимые типы записей.\";\n\"Size\" = \"Размер:\";\n\"SizeTooltip\" = \"Количество записей в истории для хранения.\\nПо умолчанию: 200.\";\n\"CurrentSizeTooltip\" = \"Текущий размер на диске.\";\n\"SortBy\" = \"Сортировать:\";\n\"LastCopiedAt\" = \"Время последнего копирования\";\n\"FirstCopiedAt\" = \"Время первого копирования\";\n\"NumberOfCopies\" = \"Количество копирований\";\n\"SortByTooltip\" = \"По умолчанию: Время последнего копирования.\";\n"
  },
  {
    "path": "Maccy/Settings/sl.lproj/AdvancedSettings.strings",
    "content": "\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# kopiranje podatkov\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Prav tako lahko kliknete ikono menija s pritisnjenim ⌥.\\nČe želite prezreti samo naslednjo kopijo, kliknite z ⌥⇧.\";\n\"ClearHistoryOnQuit\" = \"Počisti zgodovino pri izhodu\";\n\"ClearSystemClipboard\" = \"Počistite tudi sistemsko odložišče\";\n\"ClearSystemClipboardTooltip\" = \"Ko je ta možnost omogočena, bi brisanje zgodovine počistilo tudi trenutno sistemsko odložišče.\";\n\"Title\" = \"Napredno\";\n\"TurnOff\" = \"Izklopi\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# kopiranje podatkov\";\n\"ClearHistoryOnQuitTooltip\" = \"Preden zaprete aplikacijo, samodejno odstranite vse nepripete elemente.\";\n\"TurnOffDescription\" = \"Začasno prezrite vse nove kopije.\\nVerjetno ga boste uporabili programsko in med kopiranjem občutljivih podatkov onemogočili aplikacijo.\";\n"
  },
  {
    "path": "Maccy/Settings/sl.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Videz\";\n\"PopupAt\" = \"Pojavno okno na:\";\n\"PopupAtCursor\" = \"Kazalcu miške\";\n\"PopupAtMenuBarIcon\" = \"Ikoni menija\";\n\"PopupAtWindowCenter\" = \"Središču okna\";\n\"PopupAtScreenCenter\" = \"Središču zaslona\";\n\"PopupAtLastPosition\" = \"Zadnji poziciji\";\n\"PopupAtLastLocationReset\" = \"Ponastavi položaj\";\n\"PopupAtTooltip\" = \"Spremenite lokacijo pojavnega okna.\\nPrivzeto: Kazalec miške.\";\n\"SearchVisibilityAlways\" = \"Vedno\";\n\"SearchVisibilityDuringSearch\" = \"Med iskanjem\";\n\"ActiveScreen\" = \"Aktivni zaslon\";\n\"PinTo\" = \"Pripni:\";\n\"PinToTop\" = \"Zgoraj\";\n\"PinToBottom\" = \"Spodaj\";\n\"PinToTooltip\" = \"Spremenite lokacijo pripetih elementov.\\nPrivzeto: Zgoraj.\";\n\"ImageHeight\" = \"Višina slike:\";\n\"ImageHeightTooltip\" = \"Največja višina predogleda slike.\\nPrivzeto: 40.\\nNamig: nastavite na 16, da bodo slike videti kot besedilni elementi.\";\n\"PreviewDelay\" = \"Zakasnitev predogleda:\";\n\"PreviewDelayTooltip\" = \"Zakasnitev v milisekundah, dokler se ne prikaže pojavno okno za predogled.\\nPrivzeto: 1500.\";\n\"HighlightMatches\" = \"Označite ujemanja:\";\n\"HighlightMatchColor\" = \"Barva\";\n\"HighlightMatchBold\" = \"Krepko\";\n\"HighlightMatchItalic\" = \"Poševno\";\n\"HighlightMatchUnderline\" = \"Podčrtaj\";\n\"HighlightMatchesTooltip\" = \"Spremenite slog označevanja za iskana ujemanja.\\nPrivzeto: Krepko.\";\n\"ShowSpecialSymbols\" = \"Prikaži posebne simbole\";\n\"ShowSpecialSymbolsTooltip\" = \"Prikaži nove vrstice, zavihke, presledke na začetku in na koncu s posebnimi simboli.\";\n\"ShowMenuIcon\" = \"Prikaži ikono menija\";\n\"ShowRecentCopyInMenuBar\" = \"Pokaži nedavno kopijo poleg ikone menija\";\n\"ShowSearchField\" = \"Pokaži polje za iskanje\";\n\"ShowTitleBeforeSearchField\" = \"Prikaži naslov pred poljem za iskanje\";\n\"ShowApplicationIcons\" = \"Prikaži ikone aplikacij\";\n\"ShowFooter\" = \"Prikaži nogo\";\n\"OpenPreferencesWarning\" = \"⚠️ Pritisnite ⌘, (command+comma) da odprete nastavitve, ko je noga skrita.\";\n"
  },
  {
    "path": "Maccy/Settings/sl.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Splošno\";\n\"LaunchAtLogin\" = \"Zaženi ob prijavi\";\n\"CheckForUpdates\" = \"Samodejno preverite, ali so na voljo posodobitve\";\n\"CheckNow\" = \"Preverite zdaj\";\n\"Open\" = \"Odpri:\";\n\"OpenTooltip\" = \"Globalna bližnjična tipka za odpiranje aplikacije.\\nPonavljajoč pritisk glavne tipke, medtem ko držite modifikatorje, izberete naslednjo postavko na seznamu. V tem načinu boste s sprostitvijo modifikacijskih tipk potrdili izbiro in zaprli pojavno okno.\\nPrivzeto: ⇧⌘C.\";\n\"Pin\" = \"Pripni:\";\n\"PinTooltip\" = \"Bližnjična tipka za pripenjanje zgodovinskega elementa.\\nPrivzeto: ⌥P.\";\n\"Delete\" = \"Izbriši:\";\n\"DeleteTooltip\" = \"Bližnjična tipka za brisanje zgodovinskega elementa.\\nPrivzeto: ⌥⌫.\";\n\"ShowPreview\" = \"Predogled:\";\n\"ShowPreviewTooltip\" = \"Prikaži predogled z dodatnimi informacijami.\\nPrivzeto: ⌃Space.\";\n\"Behavior\" = \"Vedenje:\";\n\"PasteAutomatically\" = \"Samodejno prilepite\";\n\"PasteWithoutFormatting\" = \"Prilepite brez oblikovanja\";\n\"Modifiers\" = \"Prilagodite vedenje pri izbiri predmeta:\\n• Izberite s pritisnjenim %@, da kopirate element.\\n• Izberite s pritisnjenim %@, da kopirate in prilepite element.\\n• Izberite s pritisnjenim %@, da kopirate, počistite oblikovanje in prilepite element.\";\n\"Search\" = \"Iskanje:\";\n\"Exact\" = \"Točno\";\n\"Fuzzy\" = \"Mehko\";\n\"Regex\" = \"Regularni izrazi - Regex\";\n\"Mixed\" = \"Mešano\";\n\"NotificationsAndSounds\" = \"Obvestila in zvoki 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/sl.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignoriraj\";\n\"PasteboardTypesTab\" = \"Vrste lepenke\";\n\"RegexpTab\" = \"Regularni izrazi - Regex\";\n\"ApplicationsTab\" = \"Aplikacije\";\n\"IgnoredAppsDescription\" = \"Kopije, ki prihajajo iz določenih aplikacij, je mogoče prezreti.\\nUpoštevajte, da način delovanja ni neprebojen, zato je bolje, da uporabite lepenke, kadar je to mogoče.\";\n\"IgnoredAllAppsExceptListed\" = \"Prezri vse aplikacije razen navedenih\";\n\"IgnoredPasteboardTypesDescription\" = \"Določene vrste elementov je mogoče prezreti pri shranjevanju.\\nPrivzeto so definirani nekateri znani tipi, specifični za aplikacijo. Lahko jih odstranite in dodate poljubne vrste po meri.\";\n\"IgnoredPasteboardTypesReset\" = \"Ponastavi\";\n\"IgnoredRegexpsDescription\" = \"Na podlagi definiranih regularnih izrazov je možno prezreti določene kopije pri pomnjenju.\";\n"
  },
  {
    "path": "Maccy/Settings/sl.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Pini\";\n\"Key\" = \"Ključ\";\n\"Alias\" = \"Naslov\";\n\"Content\" = \"Vsebina\";\n\"ContentIsNotText\" = \"Vsebina, ki je ni mogoče urejati (slika ali datoteka)\";\n\"RichTextEditWarning\" = \"Pri urejanju se bodo izgubile vse oblike.\";\n\"PinCustomizationDescription\" = \"Prilagodite lahko tipko za hitri dostop, naslov in vsebino vsakega pripetega elementa. Za urejanje dvakrat kliknite element in vnesite novo vrednost.\\nUpoštevajte, da lahko spremenite samo navadno besedilo.\";\n"
  },
  {
    "path": "Maccy/Settings/sl.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Shranjevanje\";\n\"Save\" = \"Shrani:\";\n\"Files\" = \"Datoteke\";\n\"Images\" = \"Slike\";\n\"Text\" = \"Besedilo\";\n\"SaveDescription\" = \"Spremenite, katere vrste kopirane vsebine naj bodo shranjene.\";\n\"Size\" = \"Velikost:\";\n\"SizeTooltip\" = \"Število zgodovinskih elementov za ohranjanje.\\nPrivzeto: 200.\";\n\"CurrentSizeTooltip\" = \"Trenutna velikost na disku.\";\n\"SortBy\" = \"Razvrsti po:\";\n\"LastCopiedAt\" = \"Čas zadnjega kopiranja\";\n\"FirstCopiedAt\" = \"Čas prvega kopiranja\";\n\"NumberOfCopies\" = \"Število kopiranj\";\n\"SortByTooltip\" = \"Privzeto: Čas zadnjega kopiranja.\";\n"
  },
  {
    "path": "Maccy/Settings/sv.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Avancerad\";\n\"TurnOff\" = \"\";\n\"TurnOffDescription\" = \"\";\n\"TurnOffShellScript\" = \"\";\n\"TurnOffViaMenuIconDescription\" = \"\";\n\"TurnOffNextShellScript\" = \"\";\n\"ClearHistoryOnQuit\" = \"\";\n\"ClearHistoryOnQuitTooltip\" = \"\";\n\"ClearSystemClipboard\" = \"\";\n\"ClearSystemClipboardTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/sv.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"\";\n\"PopupAt\" = \"\";\n\"PopupAtCursor\" = \"\";\n\"PopupAtMenuBarIcon\" = \"\";\n\"PopupAtWindowCenter\" = \"\";\n\"PopupAtScreenCenter\" = \"\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/sv.lproj/GeneralSettings.strings",
    "content": "\"LaunchAtLogin\" = \"Starta vid inloggning\";\n\"PasteWithoutFormatting\" = \"Klistra in utan formatering\";\n\"CheckForUpdates\" = \"Kontrollera efter uppdateringar automatiskt\";\n\"CheckNow\" = \"Kontrollera nu\";\n\"Title\" = \"Allmänt\";\n\"Open\" = \"Öppna:\";\n\"Delete\" = \"Ta bort:\";\n\"OpenTooltip\" = \"Globalt kortkommando för att öppna applikationen.\\nFörval: ⇧⌘C.\";\n\"DeleteTooltip\" = \"Kortkommando för att ta bort historikpost\\nFörval: ⌥⌫.\";\n\"ShowPreview\" = \"Förhandsvisning:\";\n\"ShowPreviewTooltip\" = \"Visa förhandsgranskning med ytterligare information.\\nFörval: ⌃Space.\";\n\"Behavior\" = \"Beteende:\";\n\"Search\" = \"Sök:\";\n\"Exact\" = \"Exakt\";\n\"Fuzzy\" = \"Ungefärlig\";\n\"Mixed\" = \"Blandad\";\n\"NotificationsAndSounds\" = \"Notiser och ljud 􀱁\";\n\"PasteAutomatically\" = \"Klistra in automatiskt\";\n\"Pin\" = \"Fästa:\";\n\"Behavior\" = \"Beteende:\";\n\"PinTooltip\" = \"Kortkommando för att fästa historikpost .\\nFörval: ⌥P.\";\n\"Modifiers\" = \"Anpassa beteendet vid val av post:\\n• Välj med %@ nedtryckt för att kopiera posten.\\n• Välj med %@ nedtryckt för att kopiera och klistra in posten.\\n• Välj med %@ nedtryckt för att kopiera, rensa formatering och klistra in posten.\";\n\"Regex\" = \"Reguljära uttryck\";\n"
  },
  {
    "path": "Maccy/Settings/sv.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ignorera\";\n\"ApplicationsTab\" = \"Appar\";\n\"IgnoredAppsDescription\" = \"Det är möjligt att ignorera kopieringar från vissa appar.\\nObservera att detta sätt inte är helt tillförlitligt, så det är bättre att använda urklippstyper om möjligt.\";\n\"IgnoredAllAppsExceptListed\" = \"Ignorera alla appar utom de som listas\";\n\"PasteboardTypesTab\" = \"Urklippstyper\";\n\"IgnoredPasteboardTypesReset\" = \"Återställ\";\n\"RegexpTab\" = \"Reguljära uttryck\";\n\"IgnoredRegexpsDescription\" = \"Det går att ignorera vissa kopieringar från att sparas baserat på definierade reguljära uttryck.\";\n\"IgnoredPasteboardTypesDescription\" = \"Det går att ignorera vissa typer av urklippsinnehåll från att sparas.\\nSom standard är några kända, appspecifika typer definierade. Du kan ta bort dem och lägga till egna typer om du vill.\";\n"
  },
  {
    "path": "Maccy/Settings/sv.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"\";\n\"Key\" = \"\";\n\"Alias\" = \"\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n\"PinCustomizationDescription\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/sv.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"\";\n\"Save\" = \"\";\n\"Files\" = \"\";\n\"Images\" = \"\";\n\"Text\" = \"\";\n\"SaveDescription\" = \"\";\n\"Size\" = \"\";\n\"SizeTooltip\" = \"\";\n\"CurrentSizeTooltip\" = \"\";\n\"SortBy\" = \"\";\n\"LastCopiedAt\" = \"\";\n\"FirstCopiedAt\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"SortByTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ta.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"மேம்பட்ட\";\n\"TurnOff\" = \"அணைக்கவும்\";\n\"TurnOffDescription\" = \"அனைத்து புதிய நகல்களையும் தற்காலிகமாக புறக்கணிக்கவும்.\\n முக்கியமான தரவை நகலெடுக்கும் போது நீங்கள் அதை நிரல் முறையில் பயன்படுத்தலாம் மற்றும் பயன்பாட்டை முடக்கலாம்.\";\n\"TurnOffShellScript\" = \"இயல்புநிலைகள் org.p0deje.maccy ஐ புறக்கணிக்கின்றன\\n # தரவை நகலெடுக்கவும்\\n இயல்புநிலைகள் org.p0deje.maccy ஐ புறக்கணிக்கின்றன\";\n\"TurnOffNextShellScript\" = \"இயல்புநிலைகள் org.p0deje.maccy ignoreonlynextevent உண்மை\\n # தரவை நகலெடுக்கவும்\";\n\"TurnOffViaMenuIconDescription\" = \"⌥ அழுத்தப்பட்ட பட்டியல் ஐகானையும் சொடுக்கு செய்யலாம்.\\n அடுத்த நகலை மட்டும் புறக்கணிக்க, with உடன் சொடுக்கு செய்க.\";\n\"ClearHistoryOnQuit\" = \"வெளியேறுவது குறித்த வரலாறு\";\n\"ClearHistoryOnQuitTooltip\" = \"பயன்பாட்டிலிருந்து விலகுவதற்கு முன் தானாகவே இணைக்கப்படாத அனைத்து பொருட்களையும் தானாக அகற்றவும்.\";\n\"ClearSystemClipboard\" = \"கணினி கிளிப்போர்டையும் அழிக்கவும்\";\n\"ClearSystemClipboardTooltip\" = \"இயக்கப்பட்டால், வரலாற்றை அழிப்பது தற்போதைய கணினி கிளிப்போர்டையும் அழிக்கும்.\";\n"
  },
  {
    "path": "Maccy/Settings/ta.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"\";\n\"PopupAt\" = \"\";\n\"PopupAtCursor\" = \"\";\n\"PopupAtMenuBarIcon\" = \"\";\n\"PopupAtWindowCenter\" = \"\";\n\"PopupAtScreenCenter\" = \"\";\n\"PopupAtLastPosition\" = \"\";\n\"PopupAtLastLocationReset\" = \"\";\n\"PopupAtTooltip\" = \"\";\n\"SearchVisibilityAlways\" = \"\";\n\"SearchVisibilityDuringSearch\" = \"\";\n\"ActiveScreen\" = \"\";\n\"PinTo\" = \"\";\n\"PinToTop\" = \"\";\n\"PinToBottom\" = \"\";\n\"PinToTooltip\" = \"\";\n\"ImageHeight\" = \"\";\n\"ImageHeightTooltip\" = \"\";\n\"PreviewDelay\" = \"\";\n\"PreviewDelayTooltip\" = \"\";\n\"HighlightMatches\" = \"\";\n\"HighlightMatchColor\" = \"\";\n\"HighlightMatchBold\" = \"\";\n\"HighlightMatchItalic\" = \"\";\n\"HighlightMatchUnderline\" = \"\";\n\"HighlightMatchesTooltip\" = \"\";\n\"ShowSpecialSymbols\" = \"\";\n\"ShowSpecialSymbolsTooltip\" = \"\";\n\"ShowMenuIcon\" = \"\";\n\"ShowRecentCopyInMenuBar\" = \"\";\n\"ShowSearchField\" = \"\";\n\"ShowTitleBeforeSearchField\" = \"\";\n\"ShowApplicationIcons\" = \"\";\n\"ShowFooter\" = \"\";\n\"OpenPreferencesWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ta.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"பொது\";\n\"LaunchAtLogin\" = \"உள்நுழைவில் தொடங்கவும்\";\n\"CheckForUpdates\" = \"புதுப்பிப்புகளை தானாக சரிபார்க்கவும்\";\n\"CheckNow\" = \"இப்போது சரிபார்க்க\";\n\"Open\" = \"திறந்த:\";\n\"OpenTooltip\" = \"திறந்த பயன்பாட்டிற்கு உலகளாவிய குறுக்குவழி விசை.\\n இயல்புநிலை: ⇧⌘c.\";\n\"Pin\" = \"முள்:\";\n\"PinTooltip\" = \"வரலாற்று உருப்படியை முள் செய்வதற்கான குறுக்குவழி விசை.\\n இயல்புநிலை: .p.\";\n\"Delete\" = \"நீக்கு:\";\n\"DeleteTooltip\" = \"வரலாற்று உருப்படியை நீக்க குறுக்குவழி விசை.\\n இயல்புநிலை:.\";\n\"ShowPreview\" = \"முன்னோட்டம்:\";\n\"ShowPreviewTooltip\" = \"கூடுதல் தகவல்களுடன் முன்னோட்டத்தைக் காட்டு.\\nஇயல்புநிலை: ⌃Space.\";\n\"Behavior\" = \"நடத்தை:\";\n\"PasteAutomatically\" = \"தானாக ஒட்டவும்\";\n\"PasteWithoutFormatting\" = \"வடிவமைக்காமல் ஒட்டவும்\";\n\"Modifiers\" = \"உருப்படியைத் தேர்ந்தெடுக்கும்போது நடத்தை தனிப்பயனாக்கவும்:\\n The %உடன் என்பதைத் தேர்ந்தெடுக்கவும் உருப்படியை நகலெடுக்க அழுத்தவும்.\\n Tempentation %உடன் தேர்ந்தெடுக்கவும் ஒட்டவும்@ அழுத்தவும்.\\n Colucy நகலெடு, அழி வடிவமைத்தல் மற்றும் உருப்படியை ஒட்டுவதற்கு %@ அழுத்தப்பட்டதாகத் தேர்ந்தெடுக்கவும்.\";\n\"Search\" = \"தேடல்:\";\n\"Exact\" = \"சரியான\";\n\"Fuzzy\" = \"தெளிவில்லாமல்\";\n\"Regex\" = \"வழக்கமான வெளிப்பாடுகள்\";\n\"Mixed\" = \"கலப்பு\";\n\"NotificationsAndSounds\" = \"அறிவிப்புகள் மற்றும் ஒலிகள்\";\n"
  },
  {
    "path": "Maccy/Settings/ta.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"புறக்கணிக்கவும்\";\n\"ApplicationsTab\" = \"பயன்பாடுகள்\";\n\"IgnoredAppsDescription\" = \"சில பயன்பாடுகளிலிருந்து வரும் நகல்களை புறக்கணிக்க முடியும்.\\n இது செயல்படும் முறை புல்லட்-ப்ரூஃப் அல்ல என்பதை நினைவில் கொள்க, எனவே முடிந்தவரை பேச்ட்போர்டு வகைகளைப் பயன்படுத்துவது நல்லது.\";\n\"IgnoredAllAppsExceptListed\" = \"பட்டியலிடப்பட்டதைத் தவிர அனைத்து பயன்பாடுகளையும் புறக்கணிக்கவும்\";\n\"PasteboardTypesTab\" = \"பேச்ட்போர்டு வகைகள்\";\n\"IgnoredPasteboardTypesDescription\" = \"சில பேச்ட்போர்டு உருப்படி வகைகளை நினைவில் கொள்வதிலிருந்து புறக்கணிக்க முடியும்.\\n இயல்பாக, அறியப்பட்ட சில பயன்பாடு-குறிப்பிட்ட வகைகள் வரையறுக்கப்படுகின்றன. நீங்கள் அவற்றை அகற்றி, நீங்கள் விரும்பும் தனிப்பயன் வகைகளைச் சேர்க்கலாம்.\";\n\"IgnoredPasteboardTypesReset\" = \"மீட்டமை\";\n\"RegexpTab\" = \"வழக்கமான வெளிப்பாடுகள்\";\n\"IgnoredRegexpsDescription\" = \"வரையறுக்கப்பட்ட வழக்கமான வெளிப்பாடுகளின் அடிப்படையில் சில நகல்களை நினைவில் கொள்வதிலிருந்து புறக்கணிக்க முடியும்.\";\n"
  },
  {
    "path": "Maccy/Settings/ta.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"ஊசிகள்\";\n\"Key\" = \"விசை\";\n\"Alias\" = \"தலைப்பு\";\n\"PinCustomizationDescription\" = \"பின் செய்யப்பட்ட ஒவ்வொரு பொருளின் தலைப்பு மற்றும் ஆட்ச்கியை நீங்கள் தனிப்பயனாக்கலாம்.\\n திருத்த, அதை இருமுறை சொடுக்கு செய்து புதிய மதிப்பை உள்ளிடவும்.\";\n\"Content\" = \"\";\n\"ContentIsNotText\" = \"\";\n\"RichTextEditWarning\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/ta.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"சேமிப்பு\";\n\"Save\" = \"சேமி:\";\n\"Files\" = \"கோப்புகள்\";\n\"Images\" = \"படங்கள்\";\n\"Text\" = \"உரை\";\n\"SaveDescription\" = \"நகலெடுக்கப்பட்ட உள்ளடக்கத்தை எந்த வகையான சேமிக்க வேண்டும் என்பதை மாற்றவும்.\";\n\"Size\" = \"அளவு:\";\n\"SizeTooltip\" = \"வைத்திருக்க வேண்டிய வரலாற்று உருப்படிகளின் எண்ணிக்கை.\\n இயல்புநிலை: 200.\";\n\"SortBy\" = \"வழங்கியவர்:\";\n\"LastCopiedAt\" = \"கடைசி நகலின் நேரம்\";\n\"FirstCopiedAt\" = \"முதல் நகலின் நேரம்\";\n\"NumberOfCopies\" = \"பிரதிகளின் எண்ணிக்கை\";\n\"SortByTooltip\" = \"இயல்புநிலை: கடைசி நகலின் நேரம்.\";\n\"CurrentSizeTooltip\" = \"\";\n"
  },
  {
    "path": "Maccy/Settings/th.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"ขั้นสูง\";\n\"TurnOff\" = \"ปิด\";\n\"TurnOffDescription\" = \"ไม่สนใจการคัดลอกทั้งหมดชั่วคราว.\\nดูเหมือนว่าคุณตั้งค่าปิดการทำงานแอปขณะคัดลอกข้อมูลสำคัญ\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# คัดลอกข้อมูล\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"คุณยังสามารถคลิกไอคอนเมนูโดยกด ⌥\\nหากต้องการละเว้นเฉพาะสำเนาถัดไป ให้คลิกด้วย ⌥⇧\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# คัดลอกข้อมูล\";\n\"ClearHistoryOnQuit\" = \"ล้างประวัติเมื่อออก\";\n\"ClearHistoryOnQuitTooltip\" = \"ลบรายการที่เลิกปักหมุดทั้งหมดออกโดยอัตโนมัติก่อนออกจากแอปพลิเคชัน\";\n\"ClearSystemClipboard\" = \"ล้างคลิปบอร์ดของระบบด้วย\";\n\"ClearSystemClipboardTooltip\" = \"เมื่อเปิดใช้งาน การล้างประวัติจะเป็นการล้างคลิปบอร์ดของระบบปัจจุบันด้วย\";\n"
  },
  {
    "path": "Maccy/Settings/th.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"หน้าตา\";\n\"PopupAt\" = \"แสดงที่:\";\n\"PopupAtCursor\" = \"Cursor\";\n\"PopupAtMenuBarIcon\" = \"เมนูไอคอน\";\n\"PopupAtWindowCenter\" = \"ตรงกลางหน้าต่าง\";\n\"PopupAtScreenCenter\" = \"ตรงกลางจอภาพ\";\n\"PopupAtLastPosition\" = \"ตำแหน่งสุดท้าย\";\n\"PopupAtLastLocationReset\" = \"รีเซ็ตตำแหน่ง\";\n\"PopupAtTooltip\" = \"เปลี่ยนตำแหน่งที่ popup แสดง.\\nค่าเริ่มต้น: Cursor\";\n\"SearchVisibilityAlways\" = \"เสมอ\";\n\"SearchVisibilityDuringSearch\" = \"ระหว่างการค้นหา\";\n\"ActiveScreen\" = \"หน้าจอที่ใช้งานอยู่\";\n\"PinTo\" = \"ปักหมุดไปยัง:\";\n\"PinToTop\" = \"ข้างบน\";\n\"PinToBottom\" = \"ข้างล่าง\";\n\"PinToTooltip\" = \"เปลี่ยนตำแหน่งรายการปักหมุด\\nค่าเริ่มต้น: ข้างบน\";\n\"ImageHeight\" = \"ความสูงของรูป:\";\n\"ImageHeightTooltip\" = \"ความสูงสุดของตัวอย่างรูป.\\nค่าเริ่มต้น: 40.\\nHint: ตั้งเป็น 16 ขนาดรายการข้อความ\";\n\"PreviewDelay\" = \"ความล่าช้าในการดูตัวอย่าง:\";\n\"PreviewDelayTooltip\" = \"หน่วงเวลาเป็นมิลลิวินาทีจนกว่าจะแสดงตัวอย่างป๊อปอัป.\\nค่าเริ่มต้น: 1500\";\n\"HighlightMatches\" = \"ไฮไลท์การแข่งขัน:\";\n\"HighlightMatchColor\" = \"สี\";\n\"HighlightMatchBold\" = \"ตัวหนา\";\n\"HighlightMatchItalic\" = \"ตัวเอียง\";\n\"HighlightMatchUnderline\" = \"ขีดเส้นใต้\";\n\"HighlightMatchesTooltip\" = \"เปลี่ยนรูปแบบการไฮไลต์สำหรับการค้นหาที่ตรงกัน\\nค่าเริ่มต้น: ตัวหนา\";\n\"ShowSpecialSymbols\" = \"แสดงสัญลักษณ์พิเศษ\";\n\"ShowSpecialSymbolsTooltip\" = \"แสดงการขึ้นบรรทัดใหม่ แท็บ ช่องว่างนำหน้าและต่อท้ายด้วยสัญลักษณ์พิเศษ\";\n\"ShowMenuIcon\" = \"แสดงเมนูไอคอน\";\n\"ShowRecentCopyInMenuBar\" = \"แสดงการคัดลอกล่าสุดไปยังเมนูไอคอน\";\n\"ShowSearchField\" = \"แสดงช่องค้นหา\";\n\"ShowTitleBeforeSearchField\" = \"แสดงหัวข้อก่อนช่องค้นหา\";\n\"ShowFooter\" = \"แสดงส่วนท้าย\";\n\"OpenPreferencesWarning\" = \"⚠️ กด ⌘, (command+comma) เพื่อเปิดการตั้งค่าเมื่อส่วนท้ายซ่อน\";\n\"ShowApplicationIcons\" = \"แสดงไอคอนแอปพลิเคชั่น\";\n"
  },
  {
    "path": "Maccy/Settings/th.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"ทั่วไป\";\n\"LaunchAtLogin\" = \"เปิดเมื่อเข้าสู่ระบบ\";\n\"CheckForUpdates\" = \"ตรวจสอบ update อัตโนมัติ\";\n\"CheckNow\" = \"ตรวจสอบทันที\";\n\"Open\" = \"เปิด:\";\n\"OpenTooltip\" = \"คีย์ลัดระดับโลกเพื่อเปิดแอปพลิเคชัน\\nการกดคีย์หลักซ้ำ ๆ พร้อมกับค้างคีย์โมดิฟายเออร์ไว้ จะเลือกไอเท็มถัดไปในรายการ ในโหมดนี้ การปล่อยคีย์โมดิฟายเออร์จะยืนยันการเลือกและปิดป๊อปอัพ\\nค่าเริ่มต้น: ⇧⌘C.\";\n\"Pin\" = \"ปักหมุด:\";\n\"PinTooltip\" = \"ปุ่มลัดเพื่อปักหมุดรายการประวัติ\\nค่าเริ่มต้น: %@P\";\n\"Delete\" = \"อลบ:\";\n\"DeleteTooltip\" = \"ปุ่มลัดเพื่อลบรายการประวัติ\\nค่าเริ่มต้น: %@⌫\";\n\"ShowPreview\" = \"แสดงตัวอย่าง:\";\n\"ShowPreviewTooltip\" = \"แสดงตัวอย่างพร้อมข้อมูลเพิ่มเติม\\nค่าเริ่มต้น: ⌃Space\";\n\"Behavior\" = \"พฤติกรรม:\";\n\"PasteAutomatically\" = \"วางอัตโนมัติ\";\n\"PasteWithoutFormatting\" = \"วางโดยไม่จัดรูปแบบ\";\n\"Modifiers\" = \"ปรับแต่งพฤติกรรมเมื่อเลือกรายการ:\\n• เลือกแล้วกด %@ เพื่อคัดลอก\\n• เลือกแล้วกด %@ เพื่อคัดลอกและวางรายการ\\n• เลือกแล้วกด %@ เพื่อคัดลอก, ล้างรูปแบบและวางรายการ\";\n\"Search\" = \"ค้นหา:\";\n\"Exact\" = \"แม่นยำ\";\n\"Fuzzy\" = \"เลือน\";\n\"Regex\" = \"นิพจน์ทั่วไป\";\n\"Mixed\" = \"ผสม\";\n\"NotificationsAndSounds\" = \"การแจ้งเตือนและเสียง 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/th.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"ไม่สนใจ\";\n\"ApplicationsTab\" = \"แอปพลิเคชัน\";\n\"IgnoredAppsDescription\" = \"เป็นไปได้ที่จะไม่สนใจรูปแบบการวางจากแอป.\\nโปรดจำไว้ว่าอาจจะไม่สมบูรณ์แบบ กรุณาใช้รูปแบบการวางที่เป็นไปได้\";\n\"IgnoredAllAppsExceptListed\" = \"ละเว้นแอปพลิเคชันทั้งหมดยกเว้นในรายการ\";\n\"PasteboardTypesTab\" = \"ประเภทการรูปแบบการวาง\";\n\"IgnoredPasteboardTypesDescription\" = \"เป็นไปได้ที่จะไม่สนใจรูปแบบการวาง.\\nตามค่าเริ่มต้น, บางรายการจะถูกกำหนดแล้ว แต่คุณสามารถลบ แล้วเพิ่มประเภทตามที่ต้องการ\";\n\"IgnoredPasteboardTypesReset\" = \"รีเซ็ต\";\n\"RegexpTab\" = \"การแสดงออกปกติ\";\n\"IgnoredRegexpsDescription\" = \"เป็นไปได้ที่จะเพิกเฉยต่อสำเนาบางสำเนาจากการจดจำตามนิพจน์ทั่วไปที่กำหนดไว้\";\n"
  },
  {
    "path": "Maccy/Settings/th.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"ปักหมุด\";\n\"Key\" = \"คีย์\";\n\"Alias\" = \"หัวข้อ\";\n\"Content\" = \"เนื้อหา\";\n\"ContentIsNotText\" = \"เนื้อหาที่ไม่สามารถแก้ไขได้ (รูปภาพหรือไฟล์)\";\n\"RichTextEditWarning\" = \"การแก้ไขจะลบการจัดรูปแบบทั้งหมด\";\n\"PinCustomizationDescription\" = \"คุณสามารถปรับแต่งปุ่มลัด, ชื่อ, และเนื้อหาของรายการที่ปักหมุดไว้ได้.\\nเพื่อแก้ไข, ให้คลิกสองครั้งที่รายการนั้นและป้อนค่าใหม่. โปรดทราบว่าสามารถเปลี่ยนแปลงได้เฉพาะข้อความธรรมดาเท่านั้น.\";\n"
  },
  {
    "path": "Maccy/Settings/th.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"พื้นที่\";\n\"Save\" = \"บันทึก:\";\n\"Files\" = \"ไฟล์\";\n\"Images\" = \"รูปภาพ\";\n\"Text\" = \"ข้อความ\";\n\"SaveDescription\" = \"เปลี่ยนประเภทการคัดลอก ที่ต้องการเก็บ\";\n\"Size\" = \"ขนาด:\";\n\"SizeTooltip\" = \"จำนวนประวัติรายการที่ต้องการเก็บ.\\nค่าเริ่มต้น: 200.\";\n\"SortBy\" = \"เรียงตาม:\";\n\"LastCopiedAt\" = \"เวลาคัดลอกสุดท้าย\";\n\"FirstCopiedAt\" = \"เวลาคัดลอกครั้งแรก\";\n\"NumberOfCopies\" = \"จำนวนการคัดลอก\";\n\"SortByTooltip\" = \"ค่าเริ่มต้น: เวลาคัดลอกสุดท้าย\";\n\"CurrentSizeTooltip\" = \"ขนาดปัจจุบันบนดิสก์\";\n"
  },
  {
    "path": "Maccy/Settings/tr.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Gelişmiş\";\n\"TurnOff\" = \"Kapat\";\n\"TurnOffDescription\" = \"Geçici olarak tüm yeni kopyaları yok say.\\nBunu, büyük olasılıkla programsal olarak kullanırsınız ve önemli verilerinizi kopyalarken uygulamayı devre dışı bırakırsınız.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# verileri kopyala\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Aynı zamanda, ⌥ basılıyken menü simgesine tıklayabilirsiniz.\\nYalnızca sonraki kopyayı yok saymak için ⌥⇧ ile tıklayın.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# verileri kopyala\";\n\"ClearHistoryOnQuit\" = \"Çıkışta geçmişi temizle\";\n\"ClearHistoryOnQuitTooltip\" = \"Uygulamadan çıkmadan önce tüm iğnesi çıkarılmış ögeleri kendiliğinden kaldır.\";\n\"ClearSystemClipboard\" = \"Sistem panosunu da temizle\";\n\"ClearSystemClipboardTooltip\" = \"Etkinleştirildiğinde, geçmişin temizlenmesi mevcut sistem panosunu da temizler.\";\n"
  },
  {
    "path": "Maccy/Settings/tr.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Görünüş\";\n\"PopupAt\" = \"Açılır pencereyi şurada aç:\";\n\"PopupAtCursor\" = \"İmleç\";\n\"PopupAtMenuBarIcon\" = \"Menü simgesi\";\n\"PopupAtWindowCenter\" = \"Pencere merkezi\";\n\"PopupAtScreenCenter\" = \"Ekran merkezi\";\n\"PopupAtLastPosition\" = \"Son pozisyon\";\n\"PopupAtLastLocationReset\" = \"Pozisyonu sıfırla\";\n\"PopupAtTooltip\" = \"Açılır pencerenin göründüğü konumu değiştirin.\\nSaptanmış: İmleç.\";\n\"SearchVisibilityAlways\" = \"Her zaman\";\n\"SearchVisibilityDuringSearch\" = \"Arama sırasında\";\n\"ActiveScreen\" = \"Aktif ekran\";\n\"PinTo\" = \"Şuraya iğnele:\";\n\"PinToTop\" = \"Üst\";\n\"PinToBottom\" = \"Alt\";\n\"PinToTooltip\" = \"İğnelenen ögelerin konumunu değiştir.\\nSaptanmış: Üst.\";\n\"ImageHeight\" = \"Görsel boyu:\";\n\"ImageHeightTooltip\" = \"En yüksek görsel önizlemesi boyu.\\nSaptanmış: 40.\\nİpucu: Metin ögeleri gibi görünmeleri için 16 olarak ayarlayın.\";\n\"PreviewDelay\" = \"Önizleme gecikmesi:\";\n\"PreviewDelayTooltip\" = \"Önizleme açılır penceresi gösterilene kadar milisaniye cinsinden gecikme.\\nSaptanmış: 1500.\";\n\"HighlightMatches\" = \"Maçları vurgula:\";\n\"HighlightMatchColor\" = \"Renk\";\n\"HighlightMatchBold\" = \"Kalın\";\n\"HighlightMatchItalic\" = \"Italik\";\n\"HighlightMatchUnderline\" = \"Altını çizmek\";\n\"HighlightMatchesTooltip\" = \"Arama eşleşmeleri için vurgulama stilini değiştirin.\\nSaptanmış: Kalın.\";\n\"ShowSpecialSymbols\" = \"Özel sembolleri göster\";\n\"ShowSpecialSymbolsTooltip\" = \"Yeni satırları, sekmeleri, baştaki ve sondaki boşlukları özel sembollerle gösterin.\";\n\"ShowMenuIcon\" = \"Menü simgesini göster\";\n\"ShowRecentCopyInMenuBar\" = \"Menü simgesinin yanında son kopyayı göster\";\n\"ShowSearchField\" = \"Arama alanını göster\";\n\"ShowTitleBeforeSearchField\" = \"Arama alanı öncesi başlığı göster\";\n\"ShowFooter\" = \"Altbilgiyi göster\";\n\"ShowApplicationIcons\" = \"Uygulama simgelerini göster\";\n\"OpenPreferencesWarning\" = \"⚠️ Altbilgi gizliyken ayarları açmak için ⌘, (command+comma)'a basın.\";\n"
  },
  {
    "path": "Maccy/Settings/tr.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Genel\";\n\"LaunchAtLogin\" = \"Girişte başlat\";\n\"CheckForUpdates\" = \"Güncellemeleri otomatik olarak denetle\";\n\"CheckNow\" = \"Şimdi denetle\";\n\"Open\" = \"Açmak:\";\n\"OpenTooltip\" = \"Uygulamayı açmak için global kısayol tuşu.\\nDeğiştiricileri basılı tutarken ana tuşa tekrar basmak listedeki bir sonraki öğeyi seçecektir. Bu modda, değiştirici tuşların bırakılması seçimi onaylayacak ve açılır pencereyi kapatacaktır.\\nVarsayılan: ⇧⌘C.\";\n\"Pin\" = \"İğnelemek:\";\n\"PinTooltip\" = \"Geçmiş öğesini sabitlemek için kısayol düğmesi.\\nVarsayılan: %@P.\";\n\"Delete\" = \"Silmek:\";\n\"DeleteTooltip\" = \"Geçmiş öğesini silmek için kısayol düğmesi.\\nVarsayılan: %@⌫.\";\n\"ShowPreview\" = \"Önizleme:\";\n\"ShowPreviewTooltip\" = \"Ek bilgilerle önizleme göster.\\nVarsayılan: ⌃Space.\";\n\"Behavior\" = \"Davranış:\";\n\"PasteAutomatically\" = \"Otomatik olarak yapıştır\";\n\"PasteWithoutFormatting\" = \"Biçimlendirme olmadan yapıştır\";\n\"Modifiers\" = \"Ögeyi seçme davranışını özelleştirin:\\n• Ögeyi kopyalamak için %@'a basılıyken seçin.\\n• Ögeyi kopyalayıp yopıştırmak için %@'a basılıyken seçin.\\n• Ögeyi kopyalamak, biçimlendirmesini temizlemek ve yapıştırmak için %@'e basılıyken seçin.\";\n\"Search\" = \"Arama:\";\n\"Exact\" = \"Kesin\";\n\"Fuzzy\" = \"Bulanık\";\n\"Regex\" = \"Düzenli ifadeler\";\n\"Mixed\" = \"Karışık\";\n\"NotificationsAndSounds\" = \"Bildirimler ve sesler 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/tr.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Yok Say\";\n\"ApplicationsTab\" = \"Uygulamalar\";\n\"IgnoredAppsDescription\" = \"Kimi uygulamalardan gelen kopyaları yok sayabilirsiniz.\\nBunun çalışma yönteminin %100 kesin olmadığını aklınızda bulundurun; bu nedenle olabildiğince pano türleri kullanmak daha iyidir.\";\n\"IgnoredAllAppsExceptListed\" = \"Listelenenler dışındaki tüm uygulamaları yoksay\";\n\"PasteboardTypesTab\" = \"Pano türleri\";\n\"IgnoredPasteboardTypesDescription\" = \"Kimi pano ögesi türlerini anımsamayı yok sayabilirsiniz.\\nSaptanmış olarak, kimi bilinen uygulamaya özel türler tanımlanmıştır. Bunları kaldırabilir ve istediğiniz herhangi bir özel türü ekleyebilirsiniz.\";\n\"IgnoredPasteboardTypesReset\" = \"Sıfırla\";\n\"RegexpTab\" = \"Düzenli ifadeler\";\n\"IgnoredRegexpsDescription\" = \"Tanımlanmış düzenli ifadelere dayalı olarak belirli kopyaların hatırlanmasını göz ardı etmek mümkündür.\";\n"
  },
  {
    "path": "Maccy/Settings/tr.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"İğneler\";\n\"Key\" = \"Düğme\";\n\"Alias\" = \"Başlık\";\n\"Content\" = \"İçerik\";\n\"ContentIsNotText\" = \"Düzenlenemeyen içerik (resim veya dosya)\";\n\"RichTextEditWarning\" = \"Düzenleme tüm biçimlendirmeyi atacaktır.\";\n\"PinCustomizationDescription\" = \"Sabitlenmiş herhangi bir öğenin kısayol tuşunu, başlığını ve içeriğini özelleştirebilirsiniz. Düzenlemek için öğeye çift tıklayın ve yeni bir değer girin.\\nLütfen yalnızca düz metnin değiştirilebileceğini unutmayın.\";\n"
  },
  {
    "path": "Maccy/Settings/tr.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Depolama\";\n\"Save\" = \"Kaydet:\";\n\"Files\" = \"Dosyalar\";\n\"Images\" = \"Görseller\";\n\"Text\" = \"Metin\";\n\"SaveDescription\" = \"Ne tür kopyalanmış içerik türlerinin depolanacağını değiştirin.\";\n\"Size\" = \"Sayı:\";\n\"SizeTooltip\" = \"Tutulacak geçmiş ögesi sayısı.\\nSaptanmış: 200.\";\n\"CurrentSizeTooltip\" = \"Diskteki geçerli boyut.\";\n\"SortBy\" = \"Şuna göre sırala:\";\n\"LastCopiedAt\" = \"Son kopyanın zamanı\";\n\"FirstCopiedAt\" = \"İlk kopyanın zamanı\";\n\"NumberOfCopies\" = \"Kopya sayısı\";\n\"SortByTooltip\" = \"Saptanmış: Son kopyanın zamanı.\";\n"
  },
  {
    "path": "Maccy/Settings/uk.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Розширені опції\";\n\"TurnOff\" = \"Вимкнути\";\n\"TurnOffDescription\" = \"Тимчасово ігноруйте всі нові копії.\\nВи, ймовірно, використаєте це програмно та вимкнете програму під час копіювання конфіденційних даних.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# копіювати данні\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Ви також можете натиснути значок меню, утримуючи ⌥.\\nЩоб проігнорувати лише наступну копію, натисніть ⌥⇧.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# копіювати данні\";\n\"ClearHistoryOnQuit\" = \"Очистити історію після виходу\";\n\"ClearHistoryOnQuitTooltip\" = \"Автоматично видаляйте всі незакріплені елементи перед виходом із програми.\";\n\"ClearSystemClipboard\" = \"Також очистіть системний буфер обміну\";\n\"ClearSystemClipboardTooltip\" = \"Якщо ввімкнено, очищення історії також очистить поточний системний буфер обміну.\";\n"
  },
  {
    "path": "Maccy/Settings/uk.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Виявлення\";\n\"PopupAt\" = \"Спливаюче вікно:\";\n\"PopupAtCursor\" = \"Курсор\";\n\"PopupAtMenuBarIcon\" = \"Значок меню\";\n\"PopupAtWindowCenter\" = \"Центр вікна\";\n\"PopupAtScreenCenter\" = \"Центр екрану\";\n\"PopupAtLastPosition\" = \"Остання позиція\";\n\"PopupAtLastLocationReset\" = \"Скинути позицію\";\n\"PopupAtTooltip\" = \"Змініть розташування спливаючого вікна.\\nЗа замовчуванням: Курсор.\";\n\"SearchVisibilityAlways\" = \"Завжди\";\n\"SearchVisibilityDuringSearch\" = \"Під час обшуку\";\n\"ActiveScreen\" = \"Активний екран\";\n\"PinTo\" = \"Закріпити:\";\n\"PinToTop\" = \"Зверху\";\n\"PinToBottom\" = \"Знизу\";\n\"PinToTooltip\" = \"Змінити розташування закріплених елементів.\\nЗа замовчуванням: Зsверху.\";\n\"ImageHeight\" = \"Висота зображення:\";\n\"ImageHeightTooltip\" = \"Максимальна висота попереднього перегляду зображення.\\nЗа замовчуванням: 40.\\nПідказка: установіть значення 16, щоб виглядати як текстові елементи.\";\n\"PreviewDelay\" = \"Затримка попереднього перегляду:\";\n\"PreviewDelayTooltip\" = \"Затримка в мілісекундах до появи спливаючого вікна попереднього перегляду.\\nЗа замовчуванням: 1500.\";\n\"HighlightMatches\" = \"Виділіть збіги:\";\n\"HighlightMatchColor\" = \"Колір\";\n\"HighlightMatchBold\" = \"Жирний\";\n\"HighlightMatchItalic\" = \"Курсив\";\n\"HighlightMatchUnderline\" = \"Підкреслити\";\n\"HighlightMatchesTooltip\" = \"Змініть стиль виділення для пошукових збігів.\\nЗа замовчуванням: Жирний.\";\n\"ShowSpecialSymbols\" = \"Показати спеціальні символи\";\n\"ShowSpecialSymbolsTooltip\" = \"Показувати нові рядки, табуляції, пробіли на початку та в кінці за допомогою спеціальних символів.\";\n\"ShowMenuIcon\" = \"Показати значок меню\";\n\"ShowRecentCopyInMenuBar\" = \"Показати останню копію поруч із значком меню\";\n\"ShowSearchField\" = \"Показати поле пошуку\";\n\"ShowTitleBeforeSearchField\" = \"Показати назву перед полем пошуку\";\n\"ShowFooter\" = \"Показати нижній колонтитул\";\n\"ShowApplicationIcons\" = \"Показати іконки програм\";\n\"OpenPreferencesWarning\" = \"⚠️ Натисніть ⌘, (command+comma) щоб відкрити параметри, коли нижній колонтитул приховано.\";\n"
  },
  {
    "path": "Maccy/Settings/uk.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Загальні\";\n\"LaunchAtLogin\" = \"Запуск при вході\";\n\"CheckForUpdates\" = \"Автоматично перевіряти наявність оновлень\";\n\"CheckNow\" = \"Перевірити зараз\";\n\"Open\" = \"Відкривати:\";\n\"OpenTooltip\" = \"Глобальна клавіша швидкого виклику програми.\\nПовторне натискання основної клавіші з утриманням клавіш-модифікаторів призведе до вибору наступного елемента у списку. У цьому режимі відпускання клавіш-модифікаторів підтверджує вибір і закриває спливаюче вікно.\\nЗа замовчуванням: ⇧⌘C.\";\n\"Pin\" = \"Кріпити:\";\n\"PinTooltip\" = \"Комбінація клавіш для закріплення елемента історії.\\nЗа замовчуванням: %@P.\";\n\"Delete\" = \"Видалити:\";\n\"DeleteTooltip\" = \"Комбінація клавіш для видалення елемента історії.\\nЗа замовчуванням: %@⌫.\";\n\"ShowPreview\" = \"Попередній перегляд:\";\n\"ShowPreviewTooltip\" = \"Показати попередній перегляд з додатковою інформацією.\\nЗа замовчуванням: ⌃Space.\";\n\"Behavior\" = \"Поведінка:\";\n\"PasteAutomatically\" = \"Вставити автоматично\";\n\"PasteWithoutFormatting\" = \"Вставити без форматування\";\n\"Modifiers\" = \"Налаштувати поведінку під час вибору елемента:\\n• Виберіть, натиснувши %@, щоб скопіювати елемент.\\n• Виберіть, натиснувши %@, щоб скопіювати та вставити елемент.\\n• Виберіть, натиснувши %@, щоб скопіювати, очистити форматування та вставити елемент.\";\n\"Search\" = \"Пошук:\";\n\"Exact\" = \"Чіткий\";\n\"Fuzzy\" = \"Нечіткий\";\n\"Regex\" = \"Регулярні вирази\";\n\"Mixed\" = \"Змішаний\";\n\"NotificationsAndSounds\" = \"Сповіщення та звуки 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/uk.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Ігнорувати\";\n\"ApplicationsTab\" = \"Додатки\";\n\"IgnoredAppsDescription\" = \"Можна ігнорувати копії, які надходять із певних програм.\\nЗверніть увагу, що поточна реалізація не гарантує стовідсоткового результату. Тому, по можливості, рекомендується використовувати типи, що ігноруються.\";\n\"IgnoredAllAppsExceptListed\" = \"Ігнорувати всі програми, окрім перелічених\";\n\"PasteboardTypesTab\" = \"Типи\";\n\"IgnoredPasteboardTypesDescription\" = \"Певні типи копійованих даних (pasteboard types) можна ігнорувати.\\nЗа замовчуванням визначено деякі типи, специфічні для відомих програм. Ви можете видалити їх і додати будь-які власні типи.\";\n\"IgnoredPasteboardTypesReset\" = \"Перезавантаження\";\n\"RegexpTab\" = \"Регулярні вирази\";\n\"IgnoredRegexpsDescription\" = \"Можна ігнорувати певні копії із запам’ятовування на основі визначених регулярних виразів.\";\n"
  },
  {
    "path": "Maccy/Settings/uk.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Прикріплення\";\n\"Key\" = \"Клавіша\";\n\"Alias\" = \"Заголовок\";\n\"Content\" = \"Зміст\";\n\"ContentIsNotText\" = \"Невідредагований вміст (зображення або файл)\";\n\"RichTextEditWarning\" = \"Під час редагування все форматування буде відкинуто.\";\n\"PinCustomizationDescription\" = \"Ви можете налаштувати гарячу клавішу, назву і вміст будь-якого закріпленого елемента. Для редагування двічі клацніть елемент і введіть нове значення.\\nЗверніть увагу, що можна змінювати лише звичайний текст.\";\n"
  },
  {
    "path": "Maccy/Settings/uk.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Зберігання\";\n\"Save\" = \"Зберегти:\";\n\"Files\" = \"Файли\";\n\"Images\" = \"Зображення\";\n\"Text\" = \"Текст\";\n\"SaveDescription\" = \"Змінити, які типи скопійованого вмісту слід зберігати.\";\n\"Size\" = \"Розмір:\";\n\"SizeTooltip\" = \"Кількість елементів історії, які потрібно зберегти.\\nЗа замовчуванням: 200.\";\n\"CurrentSizeTooltip\" = \"Поточний розмір на диску.\";\n\"SortBy\" = \"Сортувати за:\";\n\"LastCopiedAt\" = \"Часом останньої копії\";\n\"FirstCopiedAt\" = \"Часом першої копії\";\n\"NumberOfCopies\" = \"Кількістю копій\";\n\"SortByTooltip\" = \"За замовчуванням: Час останньої копії.\";\n"
  },
  {
    "path": "Maccy/Settings/uz.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Qo'shimchalar\";\n\"TurnOff\" = \"O'chirib qo'yish\";\n\"TurnOffDescription\" = \"Vaqtinchalik barcha yangi nusxalarni e'tiborsiz qoldiring.\\nEhtimol, siz undan dasturiy tarzda foydalanasiz va maxfiy ma'lumotlarni nusxalashda ilovani o'chirib qo'yishingiz mumkin.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# ma'lumotlarni nusxalash\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"⌥ tugmasini bosgan holda menyu belgisini ham bosishingiz mumkin.\\nFaqat keyingi nusxaga e’tibor bermaslik uchun ⌥⇧ tugmasini bosing.\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# ma'lumotni nusxalash\";\n\"ClearHistoryOnQuit\" = \"Dastur yopilganda tarixni tozalash\";\n\"ClearHistoryOnQuitTooltip\" = \"Ilovani yopishdan oldin barcha qo'shilmagan yozuvlarni avtomatik ravishda o'chirish.\";\n\"ClearSystemClipboard\" = \"Operatsion tizim buferini ham tozalang\";\n\"ClearSystemClipboardTooltip\" = \"Yoqilgan bo'lsa, tarixni tozalash joriy tizim buferini ham tozalaydi.\";\n"
  },
  {
    "path": "Maccy/Settings/uz.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Tashqi ko'rinish\";\n\"OpenPreferencesWarning\" = \"⚠️ Altbilgi yashirilganda afzalliklarni ochish uchun ⌘, (command+comma) tugmasini bosing.\";\n\"PopupAtLastPosition\" = \"Oxirgi pozitsiya\";\n\"SearchVisibilityDuringSearch\" = \"Qidiruv paytida\";\n\"ShowMenuIcon\" = \"Menyu belgisini ko'rsatish\";\n\"HighlightMatchUnderline\" = \"Tagchiziq\";\n\"SearchVisibilityAlways\" = \"Har doim\";\n\"PreviewDelayTooltip\" = \"Oldindan ko'rish qalqib chiquvchi oyna paydo bo'lguncha millisekundlarda kechiktiring.\\nStandart: 1500.\";\n\"PopupAt\" = \"Qalqib chiquvchi oyna:\";\n\"PopupAtCursor\" = \"Kursor\";\n\"PopupAtMenuBarIcon\" = \"Menyu rasmi\";\n\"PopupAtWindowCenter\" = \"Markazga joylashtirish\";\n\"PopupAtScreenCenter\" = \"Ekran markazi\";\n\"PopupAtLastLocationReset\" = \"Asil holatiga qaytarish\";\n\"PopupAtTooltip\" = \"Qalqib chiquvchi oyna paydo bo'ladigan joyni o'zgartiring. \\nStandart: kursor.\";\n\"ActiveScreen\" = \"Faol ekran\";\n\"PinTo\" = \"Mahkamlangan:\";\n\"PinToBottom\" = \"Pastda\";\n\"PinToTooltip\" = \"Mustahkamlangan elementlarning joylashuvini o'zgartirish. \\nStandart: Tepada.\";\n\"ImageHeight\" = \"Rasm bo'yi:\";\n\"ImageHeightTooltip\" = \"Tasvirni oldindan ko'rishning maksimal balandligi.\\nStandart: 40. \\nMaslahat: Matn elementlariga o'xshash bo'lish uchun 16 ga o'rnating.\";\n\"PreviewDelay\" = \"Ko‘rish kechikishi:\";\n\"HighlightMatches\" = \"Ko'rsatish turi:\";\n\"HighlightMatchColor\" = \"Ran\";\n\"HighlightMatchBold\" = \"Qalin\";\n\"HighlightMatchItalic\" = \"Yotiq\";\n\"HighlightMatchesTooltip\" = \"Qidiruv mosliklari uchun ta'kidlash uslubini o'zgartiring.\\nStandart: Qalin.\";\n\"ShowApplicationIcons\" = \"Ilova piktogrammalarini ko'rsatish\";\n\"ShowSpecialSymbols\" = \"Maxsus belgilarni ko'rsating\";\n\"ShowSpecialSymbolsTooltip\" = \"Yangi qatorlarni, yorliqlarni, bosh va keyingi bo'shliqlarni maxsus belgilar orqali ko'rsatish.\";\n\"ShowRecentCopyInMenuBar\" = \"Menyu belgisi yonida oxirgi nusxani ko'rsatish\";\n\"ShowSearchField\" = \"Qidiruv maydonini ko'rsatish\";\n\"ShowTitleBeforeSearchField\" = \"Qidiruv maydonidan oldin sarlavhani ko'rsatish\";\n\"ShowFooter\" = \"Pastgi qisimni ko'rsatish\";\n\"PinToTop\" = \"Yuqorida\";\n"
  },
  {
    "path": "Maccy/Settings/uz.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Asosiy\";\n\"Fuzzy\" = \"Noaniq\";\n\"Mixed\" = \"Aralash\";\n\"NotificationsAndSounds\" = \"Bildirishnoma va tovushlar 􀱁\";\n\"LaunchAtLogin\" = \"Kirish paytida ishga tushirish\";\n\"CheckForUpdates\" = \"Yangilanishlarni avtomatik ravishda tekshirish\";\n\"CheckNow\" = \"Hozir tekshir\";\n\"Open\" = \"Ochish:\";\n\"OpenTooltip\" = \"Ilovani ochish uchun global yorliq.\\nOʻzgartirgichlarni ushlab turganda asosiy tugmani qayta-qayta bosish roʻyxatdagi keyingi elementni tanlaydi. Bu rejimda modifikator tugmachalarini bo‘shatish tanlovni tasdiqlaydi va qalqib chiquvchi oynani yopadi.\\nStandart: ⇧⌘C.\";\n\"Pin\" = \"Mustahkamlash:\";\n\"PinTooltip\" = \"Tarix elementini mahkamlash uchun yorliq tugmasi.\\nStandart: ⌥P.\";\n\"Delete\" = \"O'chirish:\";\n\"DeleteTooltip\" = \"Tarix elementini o'chirish uchun yorliq tugmasi.\\nStandart: ⌥⌫.\";\n\"ShowPreview\" = \"Ko'rib chiqish:\";\n\"ShowPreviewTooltip\" = \"Qo'shimcha ma'lumot bilan ko'rib chiqishni ko'rsatish.\\nStandart: ⌃Space.\";\n\"Behavior\" = \"Xatti-harakat:\";\n\"PasteAutomatically\" = \"Avtomatik joylashtirish\";\n\"PasteWithoutFormatting\" = \"Formatlashsiz joylashtirish\";\n\"Modifiers\" = \"Elementni tanlashda harakatni moslashtiring: \\n• Elementni nusxalash uchun %@ tugmasini bosgan holda tanlang. \\n• Elementni nusxalash va joylashtirish uchun %@ bosilgan holda tanlang. \\n• Nusxa olish, formatlashni tozalash va joylashtirish uchun %@ bosilganda tanlang.\";\n\"Search\" = \"Qidirish:\";\n\"Exact\" = \"Aniq\";\n\"Regex\" = \"Muntazam ifodalar\";\n"
  },
  {
    "path": "Maccy/Settings/uz.lproj/IgnoreSettings.strings",
    "content": "\"ApplicationsTab\" = \"Ilovalar\";\n\"IgnoredAllAppsExceptListed\" = \"Ro'yxatdagilardan tashqari barcha ilovalarga e'tibor bermang\";\n\"IgnoredAppsDescription\" = \"Muayyan ilovalardan kelgan nusxalarni e'tiborsiz qoldirish mumkin.\\nIltimos, uning ishlash usuli o'q o'tkazmasligiga e'tibor bering, shuning uchun iloji bo'lsa karton turlaridan foydalangan ma'qul.\";\n\"IgnoredPasteboardTypesDescription\" = \"Muayyan pasteboard buyumlari turlarini eslab qolishga e'tibor bermaslik mumkin.\\nOdatiy bo'lib, ba'zi ma'lum ilovalarga xos turlar aniqlanadi. Siz ularni olib tashlashingiz va o'zingiz xohlagan har qanday maxsus turlarni qo'shishingiz mumkin.\";\n\"IgnoredPasteboardTypesReset\" = \"Tiklash\";\n\"IgnoredRegexpsDescription\" = \"Belgilangan muntazam iboralar asosida eslab qolishdan ba'zi nusxalarni e'tiborsiz qoldirish mumkin.\";\n\"PasteboardTypesTab\" = \"Pasterboard turlari\";\n\"RegexpTab\" = \"Doimiy ifodalar\";\n\"Title\" = \"E'tibor bermaslik\";\n"
  },
  {
    "path": "Maccy/Settings/uz.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Qadalganlar\";\n\"Key\" = \"Kalit\";\n\"Alias\" = \"Sarlavha\";\n\"Content\" = \"Kontent\";\n\"ContentIsNotText\" = \"Tahrirlanmaydigan kontent (rasm yoki fayl)\";\n\"RichTextEditWarning\" = \"Tahrirlash barcha formatlashni bekor qiladi.\";\n\"PinCustomizationDescription\" = \"Har qanday mahkamlangan elementning tezkor tugmasi, sarlavhasi va mazmunini sozlashingiz mumkin. Tahrirlash uchun elementni ikki marta bosing va yangi qiymat kiriting.\\nYodda tutingki, faqat oddiy matnni oʻzgartirish mumkin.\";\n"
  },
  {
    "path": "Maccy/Settings/uz.lproj/StorageSettings.strings",
    "content": "\"Images\" = \"Rasmlar\";\n\"Save\" = \"Saqlash:\";\n\"Files\" = \"Fayllar\";\n\"SaveDescription\" = \"Qaysi turdagi nusxalangan kontentni saqlash kerakligini o'zgartiring.\";\n\"Size\" = \"Hajmi:\";\n\"SizeTooltip\" = \"Saqlanishi kerak bo'lgan tarix elementlari soni.\\nStandart: 200.\";\n\"CurrentSizeTooltip\" = \"Diskdagi joriy o'lcham.\";\n\"SortBy\" = \"Saralash turi:\";\n\"LastCopiedAt\" = \"Oxirgi nusxa vaqti\";\n\"FirstCopiedAt\" = \"Birinchi nusxaning vaqti\";\n\"NumberOfCopies\" = \"Nusxalar soni\";\n\"SortByTooltip\" = \"Standart: Oxirgi nusxa vaqti.\";\n\"Title\" = \"Hotira\";\n\"Text\" = \"Matn\";\n"
  },
  {
    "path": "Maccy/Settings/vi.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"Nâng cao\";\n\"TurnOff\" = \"Tắt\";\n\"TurnOffDescription\" = \"Tạm thời bỏ qua tất cả các bản sao mới.\\nBạn có thể sẽ sử dụng tính năng này thông qua lập trình và tắt ứng dụng khi sao chép dữ liệu nhạy cảm.\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# copy data\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"Bạn cũng có thể nhấp vào biểu tượng menu khi giữ phím ⌥ .\\nĐể chỉ bỏ qua lần sao chép tiếp theo, hãy nhấp khi giữ đồng thời ⌥ ⇧ .\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# copy data\";\n\"ClearHistoryOnQuit\" = \"Xóa lịch sử khi thoát\";\n\"ClearHistoryOnQuitTooltip\" = \"Tự động xóa bỏ tất cả các mục không được ghim khi thoát khỏi ứng dụng.\";\n\"ClearSystemClipboard\" = \"Xóa cả bảng nhớ tạm của hệ thống nữa\";\n\"ClearSystemClipboardTooltip\" = \"Khi được kích hoạt, việc xóa lịch sử cũng sẽ xóa bảng nhớ tạm hiện tại của hệ thống.\";\n"
  },
  {
    "path": "Maccy/Settings/vi.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"Giao diện\";\n\"PopupAt\" = \"Hiện popup tại:\";\n\"PopupAtCursor\" = \"Con trỏ\";\n\"PopupAtMenuBarIcon\" = \"Biểu tượng menu\";\n\"PopupAtWindowCenter\" = \"Trung tâm cửa sổ\";\n\"PopupAtScreenCenter\" = \"Trung tâm màn hình\";\n\"PopupAtLastPosition\" = \"Vị trí cuối cùng\";\n\"PopupAtLastLocationReset\" = \"Đặt lại vị trí\";\n\"PopupAtTooltip\" = \"Thay đổi vị trí hiển thị của cửa sổ popup.\\nMặc định: Con trỏ.\";\n\"SearchVisibilityAlways\" = \"Luôn luôn\";\n\"SearchVisibilityDuringSearch\" = \"Trong quá trình tìm kiếm\";\n\"ActiveScreen\" = \"Màn hình hoạt động\";\n\"PinTo\" = \"Ghim vào:\";\n\"PinToTop\" = \"Trên cùng\";\n\"PinToBottom\" = \"Dưới cùng\";\n\"PinToTooltip\" = \"Thay đổi vị trí của các mục đã ghim.\\nMặc định: Trên cùng.\";\n\"ImageHeight\" = \"Chiều cao hình ảnh:\";\n\"ImageHeightTooltip\" = \"Chiều cao xem trước hình ảnh tối đa.\\nMặc định: 40.\\nGợi ý: Đặt thành 16 sẽ trông giống như các mục văn bản.\";\n\"PreviewDelay\" = \"Trì hoãn xem trước:\";\n\"PreviewDelayTooltip\" = \"Thời gian trễ (tính bằng mili giây) trước khi hiển thị cửa sổ xem trước.\\nMặc định: 1500.\";\n\"HighlightMatches\" = \"Đánh dấu kết quả khớp:\";\n\"HighlightMatchColor\" = \"Màu sắc\";\n\"HighlightMatchBold\" = \"In đậm\";\n\"HighlightMatchItalic\" = \"In nghiêng\";\n\"HighlightMatchUnderline\" = \"Gạch chân\";\n\"HighlightMatchesTooltip\" = \"Thay đổi kiểu đánh dấu cho kết quả tìm kiếm.\\nMặc định: In đậm.\";\n\"ShowSpecialSymbols\" = \"Hiển thị các ký tự đặc biệt\";\n\"ShowSpecialSymbolsTooltip\" = \"Hiển thị các ký tự xuống dòng, tab, khoảng trắng đầu và cuối bằng các ký hiệu đặc biệt.\";\n\"ShowMenuIcon\" = \"Hiển thị biểu tượng menu\";\n\"ShowRecentCopyInMenuBar\" = \"Hiển thị sao chép gần đây cạnh biểu tượng trên menu\";\n\"ShowSearchField\" = \"Hiển thị thanh tìm kiếm\";\n\"ShowTitleBeforeSearchField\" = \"Hiển thị tiêu đề trước ô tìm kiếm\";\n\"ShowApplicationIcons\" = \"Hiển thị biểu tượng ứng dụng\";\n\"ShowFooter\" = \"Hiển thị phần chân trang\";\n\"OpenPreferencesWarning\" = \"⚠️ Nhấn phím ⌘, (command+comma) để mở cài đặt khi phần chân trang bị ẩn.\";\n"
  },
  {
    "path": "Maccy/Settings/vi.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"Cài đặt chung\";\n\"LaunchAtLogin\" = \"Khởi động khi đăng nhập\";\n\"CheckForUpdates\" = \"Kiểm tra cập nhật tự động\";\n\"CheckNow\" = \"Kiểm tra ngay\";\n\"Open\" = \"Mở:\";\n\"OpenTooltip\" = \"Phím tắt mở ứng dụng.\\nNhấn giữ phím chính cùng với các phím sửa đổi sẽ chọn mục tiếp theo trong danh sách. Trong chế độ này, thả các phím sửa đổi sẽ xác nhận lựa chọn và đóng cửa sổ popup.\\nMặc định: ⇧⌘C.\";\n\"Pin\" = \"Ghim:\";\n\"PinTooltip\" = \"Phím tắt để ghim một mục.\\nMặc định: ⌥P.\";\n\"Delete\" = \"Xóa:\";\n\"DeleteTooltip\" = \"Phím tắt để xóa một mục.\\nMặc định: ⌥⌫.\";\n\"ShowPreview\" = \"Xem trước:\";\n\"ShowPreviewTooltip\" = \"Hiển thị xem trước với thông tin bổ sung.\\nMặc định: ⌃Space.\";\n\"Behavior\" = \"Hành vi:\";\n\"PasteAutomatically\" = \"Tự động dán\";\n\"PasteWithoutFormatting\" = \"Dán không định dạng\";\n\"Modifiers\" = \"Tùy chỉnh hành vi khi chọn mục:\\n• Chọn bằng cách giữ %@ để sao chép mục.\\n• Chọn bằng cách giữ %@ để sao chép và dán mục.\\n• Chọn bằng cách giữ %@ để sao chép, xóa định dạng, và dán mục.\";\n\"Search\" = \"Tìm kiếm:\";\n\"Exact\" = \"Chính xác\";\n\"Fuzzy\" = \"Gần đúng\";\n\"Regex\" = \"Biểu thức chính quy\";\n\"Mixed\" = \"Hỗn hợp\";\n\"NotificationsAndSounds\" = \"Thông báo và âm thanh 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/vi.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"Loại trừ\";\n\"ApplicationsTab\" = \"Ứng dụng\";\n\"IgnoredAppsDescription\" = \"Có thể bỏ qua các sao chép trong một số ứng dụng cụ thể.\\nLưu ý rằng cách hoạt động này không hoàn toàn an toàn, do đó tốt nhất nên sử dụng các loại bảng tạm khi có thể.\";\n\"IgnoredAllAppsExceptListed\" = \"Loại trừ tất cả các ứng dụng trừ những ứng dụng được liệt kê\";\n\"PasteboardTypesTab\" = \"Kiểu dữ liệu trên bảng tạm\";\n\"IgnoredPasteboardTypesDescription\" = \"Bạn có thể bỏ qua một số loại mục trong bảng tạm để không bị lưu lại.\\nTheo mặc định, một số loại dữ liệu riêng của ứng dụng đã được xác định sẵn. Bạn có thể xóa chúng và thêm bất kỳ loại tùy chỉnh nào mà bạn muốn.\";\n\"IgnoredPasteboardTypesReset\" = \"Đặt lại\";\n\"RegexpTab\" = \"Biểu thức chính quy\";\n\"IgnoredRegexpsDescription\" = \"Có thể bỏ qua một số bản sao nhất định khỏi việc ghi nhớ, dựa trên các biểu thức chính quy đã được định nghĩa.\";\n"
  },
  {
    "path": "Maccy/Settings/vi.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"Ghim\";\n\"Key\" = \"Phím\";\n\"Alias\" = \"Tiêu đề\";\n\"Content\" = \"Nội dung\";\n\"ContentIsNotText\" = \"Nội dung không thể chỉnh sửa (hình ảnh hoặc tệp tin)\";\n\"RichTextEditWarning\" = \"Chỉnh sửa sẽ loại bỏ tất cả định dạng.\";\n\"PinCustomizationDescription\" = \"Bạn có thể tùy chỉnh phím tắt, tiêu đề và nội dung của bất kỳ mục nào được ghim. Để chỉnh sửa, hãy nhấp đúp vào mục đó và nhập giá trị mới.\\nLưu ý rằng chỉ văn bản thuần túy mới có thể được thay đổi.\";\n"
  },
  {
    "path": "Maccy/Settings/vi.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"Lưu trữ\";\n\"Save\" = \"Lưu:\";\n\"Files\" = \"Tập tin\";\n\"Images\" = \"Hình ảnh\";\n\"Text\" = \"Văn bản\";\n\"SaveDescription\" = \"Chọn loại nội dung sao chép nào sẽ được lưu trữ.\";\n\"Size\" = \"Kích thước:\";\n\"SizeTooltip\" = \"Số mục lịch sử cần giữ lại.\\nMặc định: 200.\";\n\"SortBy\" = \"Sắp xếp theo:\";\n\"LastCopiedAt\" = \"Sao chép mới nhất\";\n\"FirstCopiedAt\" = \"Sao chép cũ nhất\";\n\"NumberOfCopies\" = \"Sao chép nhiều nhất\";\n\"SortByTooltip\" = \"Mặc định: Sao chép mới nhất.\";\n\"CurrentSizeTooltip\" = \"Dung lượng hiện đang chiếm trên ổ đĩa.\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hans.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"高级\";\n\"TurnOff\" = \"暂停\";\n\"TurnOffDescription\" = \"暂停记录新的剪贴板项目。\\n如果您想在复制敏感数据时通过程序调用来禁用本程序。\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# 执行上述命令后再进行复制，然后执行\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"您也可以按下 ⌥ 并单击菜单图标。\\n要仅忽略下一个副本，请单击 ⌥⇧。\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# 执行上述命令后再进行复制，只对下一次复制有效\";\n\"ClearHistoryOnQuit\" = \"退出时清除历史记录\";\n\"ClearHistoryOnQuitTooltip\" = \"退出应用时仅保留已固定的项目(其他历史记录将被抛弃)。\";\n\"ClearSystemClipboard\" = \"同时清除系统剪贴板\";\n\"ClearSystemClipboardTooltip\" = \"启用后，清除历史记录也会清除当前系统剪贴板。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hans.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"外观\";\n\"PopupAt\" = \"弹窗位置：\";\n\"PopupAtCursor\" = \"光标\";\n\"PopupAtMenuBarIcon\" = \"菜单栏图标\";\n\"PopupAtWindowCenter\" = \"窗口中心\";\n\"PopupAtScreenCenter\" = \"屏幕中央\";\n\"PopupAtLastPosition\" = \"最后位置\";\n\"PopupAtLastLocationReset\" = \"重置位置\";\n\"PopupAtTooltip\" = \"更改弹窗显示的位置。\\n默认：光标。\";\n\"SearchVisibilityAlways\" = \"始终\";\n\"SearchVisibilityDuringSearch\" = \"在搜索过程中\";\n\"ActiveScreen\" = \"活动屏幕\";\n\"PinTo\" = \"固定项目位置：\";\n\"PinToTop\" = \"顶部\";\n\"PinToBottom\" = \"底部\";\n\"PinToTooltip\" = \"更改固定项目的位置。\\n默认：顶部。\";\n\"ImageHeight\" = \"图片高度：\";\n\"ImageHeightTooltip\" = \"图像预览最大高度。\\n默认: 40\\n提示：设置为 16 以匹配文本项目的大小。\";\n\"PreviewDelay\" = \"预览延迟：\";\n\"PreviewDelayTooltip\" = \"延迟以毫秒为单位，直到显示预览弹出窗口。\\n默认：1500。\";\n\"HighlightMatches\" = \"高亮匹配：\";\n\"HighlightMatchColor\" = \"颜色\";\n\"HighlightMatchBold\" = \"粗体\";\n\"HighlightMatchItalic\" = \"斜体\";\n\"HighlightMatchUnderline\" = \"强调\";\n\"HighlightMatchesTooltip\" = \"更改搜索匹配项的突出显示样式。\\n默认：粗体。\";\n\"ShowSpecialSymbols\" = \"显示特殊符号\";\n\"ShowSpecialSymbolsTooltip\" = \"通过特殊符号显示换行符、制表符、前导和尾随空格。\";\n\"ShowMenuIcon\" = \"显示菜单栏图标\";\n\"ShowRecentCopyInMenuBar\" = \"在菜单栏图标旁显示剪贴板内容\";\n\"ShowSearchField\" = \"显示搜索框\";\n\"ShowTitleBeforeSearchField\" = \"在搜索框前显示应用名\";\n\"ShowFooter\" = \"显示底部菜单\";\n\"ShowApplicationIcons\" = \"显示应用程序图标\";\n\"OpenPreferencesWarning\" = \"⚠️ 隐藏底部菜单时仍可按 ⌘, (command+comma) 打开偏好设置。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hans.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"通用\";\n\"LaunchAtLogin\" = \"登录时启动\";\n\"CheckForUpdates\" = \"自动检查更新\";\n\"CheckNow\" = \"检查更新\";\n\"Open\" = \"打开：\";\n\"OpenTooltip\" = \"打开应用程序的全局快捷键。\\n在按住修改器的同时重复按下主键将选择列表中的下一个项目。在这种模式下，松开修改器键将确认选择并关闭弹出窗口。\\n默认： %@C。\";\n\"Pin\" = \"固定：\";\n\"PinTooltip\" = \"固定历史记录项目的快捷键。\\n默认值：%@P。\";\n\"Delete\" = \"删除：\";\n\"DeleteTooltip\" = \"删除历史记录的快捷键。\\n默认值：%@⌫。\";\n\"ShowPreview\" = \"预览：\";\n\"ShowPreviewTooltip\" = \"显示带有附加信息的预览。\\n默认值：⌃Space。\";\n\"Behavior\" = \"行为:\";\n\"PasteAutomatically\" = \"自动粘贴\";\n\"PasteWithoutFormatting\" = \"纯文本粘贴\";\n\"Modifiers\" = \"自定义选择项目时的行为:\\n• 按住 %@ 选择项目以复制。\\n• 按住 %@ 选择项目以复制并粘贴。\\n• 按住 %@ 选择项目以复制并匹配格式粘贴。\";\n\"Search\" = \"搜索：\";\n\"Exact\" = \"精确\";\n\"Fuzzy\" = \"模糊\";\n\"Regex\" = \"正则表达式\";\n\"Mixed\" = \"混合\";\n\"NotificationsAndSounds\" = \"通知和声音 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hans.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"忽略\";\n\"ApplicationsTab\" = \"忽略应用\";\n\"IgnoredAppsDescription\" = \"忽略来自特定应用的内容。\\n请注意此选项并非总是有效，最好使用忽略剪贴板类型设置。\";\n\"IgnoredAllAppsExceptListed\" = \"忽略列表之外的所有应用程序\";\n\"PasteboardTypesTab\" = \"忽略剪贴板类型\";\n\"IgnoredPasteboardTypesDescription\" = \"忽略特定剪贴板内容类型。\\n默认提供了一些已知的适用于特定应用的类型。您可以删除预置类型，或根据需要添加自定义类型。\";\n\"IgnoredPasteboardTypesReset\" = \"重置\";\n\"RegexpTab\" = \"正则表达式\";\n\"IgnoredRegexpsDescription\" = \"可以根据定义的正则表达式忽略某些副本。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hans.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"固定\";\n\"Key\" = \"键位\";\n\"Alias\" = \"标题\";\n\"Content\" = \"内容\";\n\"ContentIsNotText\" = \"不可编辑的内容（图像或文件）\";\n\"RichTextEditWarning\" = \"编辑将放弃所有格式化。\";\n\"PinCustomizationDescription\" = \"您可以自定义任何固定项目的热键、标题和内容。\\n要编辑，请双击该项目并输入新值。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hans.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"存储\";\n\"Save\" = \"保存：\";\n\"Files\" = \"文件\";\n\"Images\" = \"图像\";\n\"Text\" = \"文本\";\n\"SaveDescription\" = \"设置何种类型的内容会被保存。\";\n\"Size\" = \"数量：\";\n\"SizeTooltip\" = \"保留条历史记录。\\n默认: 200。\";\n\"CurrentSizeTooltip\" = \"磁盘上的当前大小。\";\n\"SortBy\" = \"排序方式：\";\n\"LastCopiedAt\" = \"上次复制时间\";\n\"FirstCopiedAt\" = \"首次复制时间\";\n\"NumberOfCopies\" = \"复制次数\";\n\"SortByTooltip\" = \"默认：上次复制时间。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hant.lproj/AdvancedSettings.strings",
    "content": "\"Title\" = \"進階\";\n\"TurnOff\" = \"關閉\";\n\"TurnOffDescription\" = \"暫時忽略所有新的剪貼簿項目。\\n此選項通常用於拷貝隱私資料時，透過程式調用停用本程式。\";\n\"TurnOffShellScript\" = \"defaults write org.p0deje.Maccy ignoreEvents true\\n# 執行上述命令後再進行拷貝，拷貝完成後執行\\ndefaults write org.p0deje.Maccy ignoreEvents false\";\n\"TurnOffViaMenuIconDescription\" = \"您也可以按住 ⌥ 並點擊選單圖示。\\n要僅忽略下一次拷貝，請按住 ⌥⇧ 並點擊。\";\n\"TurnOffNextShellScript\" = \"defaults write org.p0deje.Maccy ignoreOnlyNextEvent true\\n# 執行上述命令後再進行拷貝，拷貝完成後執行\";\n\"ClearHistoryOnQuit\" = \"退出時清除歷史記錄\";\n\"ClearHistoryOnQuitTooltip\" = \"退出應用程式時自動移除所有未釘選的項目。\";\n\"ClearSystemClipboard\" = \"同時清除系統剪貼簿\";\n\"ClearSystemClipboardTooltip\" = \"啟用後，清除歷史記錄也會清除系統目前的剪貼簿。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hant.lproj/AppearanceSettings.strings",
    "content": "\"Title\" = \"外觀\";\n\"PopupAt\" = \"彈窗位置：\";\n\"PopupAtCursor\" = \"滑鼠指標\";\n\"PopupAtMenuBarIcon\" = \"選單列圖示\";\n\"PopupAtWindowCenter\" = \"窗口中心\";\n\"PopupAtScreenCenter\" = \"螢幕中央\";\n\"PopupAtLastPosition\" = \"最後位置\";\n\"PopupAtLastLocationReset\" = \"重設位置\";\n\"PopupAtTooltip\" = \"更改彈窗顯示位置。\\n預設：指標。\";\n\"SearchVisibilityAlways\" = \"總是\";\n\"SearchVisibilityDuringSearch\" = \"搜尋期間\";\n\"ActiveScreen\" = \"使用中的螢幕\";\n\"PinTo\" = \"固定項目位置：\";\n\"PinToTop\" = \"置頂\";\n\"PinToBottom\" = \"置底\";\n\"PinToTooltip\" = \"更改固定項目的位置。\\n預設：置頂。\";\n\"ImageHeight\" = \"圖片高度：\";\n\"ImageHeightTooltip\" = \"圖片預覽最高。\\n預設：40\\n提示：設定 16 可符合文字項目大小。\";\n\"PreviewDelay\" = \"預覽延遲:\";\n\"PreviewDelayTooltip\" = \"顯示預覽彈出視窗的延遲，單位為毫秒。\\n預設：1500。\";\n\"HighlightMatches\" = \"凸顯相符項目：\";\n\"HighlightMatchColor\" = \"顏色\";\n\"HighlightMatchBold\" = \"粗體\";\n\"HighlightMatchItalic\" = \"斜體\";\n\"HighlightMatchUnderline\" = \"底線\";\n\"HighlightMatchesTooltip\" = \"變更搜尋符合項目的凸顯樣式。\\n預設：粗體。\";\n\"ShowSpecialSymbols\" = \"顯示特殊符號\";\n\"ShowSpecialSymbolsTooltip\" = \"透過特殊符號顯示換行符、製表符、前導和尾隨空格。\";\n\"ShowMenuIcon\" = \"顯示選單列圖示\";\n\"ShowRecentCopyInMenuBar\" = \"選單列圖示旁顯示目前內容\";\n\"ShowSearchField\" = \"顯示搜尋框\";\n\"ShowTitleBeforeSearchField\" = \"搜尋列旁顯示 Maccy\";\n\"ShowFooter\" = \"顯示底部操作選單\";\n\"ShowApplicationIcons\" = \"顯示應用程式圖示\";\n\"OpenPreferencesWarning\" = \"⚠️ 隱藏底部選單時，可按 ⌘, (command+comma) 顯示偏好設定。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hant.lproj/GeneralSettings.strings",
    "content": "\"Title\" = \"一般\";\n\"LaunchAtLogin\" = \"登入時啟動\";\n\"CheckForUpdates\" = \"自動檢查更新\";\n\"CheckNow\" = \"立即檢查\";\n\"Open\" = \"開啟：\";\n\"OpenTooltip\" = \"全局快捷键，用于打开应用程序。\\n在按住修改器的同时重复按下主键将选择列表中的下一个项目。在此模式下，鬆開變量鍵將確認選擇並關閉彈出窗口。\\n預設：%@C。\";\n\"Pin\" = \"釘選：\";\n\"PinTooltip\" = \"釘選歷史記錄項目的快捷鍵。\\n預設：%@P。\";\n\"Delete\" = \"刪除：\";\n\"DeleteTooltip\" = \"刪除歷史記錄項目的快捷鍵。\\n預設：%@⌫。\";\n\"ShowPreview\" = \"預覽：\";\n\"ShowPreviewTooltip\" = \"顯示帶有附加資訊的預覽。\\n預設：⌃Space。\";\n\"Behavior\" = \"行為：\";\n\"PasteAutomatically\" = \"自動貼上\";\n\"PasteWithoutFormatting\" = \"純文字貼上\";\n\"Modifiers\" = \"自訂選擇項目時的行為：\\n• 按住 %@ 並選取以複製項目。\\n• 按住 %@ 並選取以複製和貼上項目。\\n• 按住 %@ 並選取以複製，清除格式並貼上項目。\";\n\"Search\" = \"搜尋：\";\n\"Exact\" = \"精確\";\n\"Fuzzy\" = \"模糊\";\n\"Regex\" = \"正規表示式\";\n\"Mixed\" = \"混合\";\n\"NotificationsAndSounds\" = \"通知和聲音 􀱁\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hant.lproj/IgnoreSettings.strings",
    "content": "\"Title\" = \"忽略\";\n\"ApplicationsTab\" = \"應用程式\";\n\"IgnoredAppsDescription\" = \"可以忽略於特定應用程式的拷貝。\\n請注意，此選項並非完全可靠，建議使用忽略剪貼簿類型設定。\";\n\"IgnoredAllAppsExceptListed\" = \"忽略除了列表中的所有應用程式\";\n\"PasteboardTypesTab\" = \"剪貼簿類型\";\n\"IgnoredPasteboardTypesDescription\" = \"可以忽略特定的剪貼簿項目類型。\\n預設已定義一些已知的特定應用程式類型。您可刪除預設類型並根據需要新增自訂類型。\";\n\"IgnoredPasteboardTypesReset\" = \"重設\";\n\"RegexpTab\" = \"正規表示式\";\n\"IgnoredRegexpsDescription\" = \"可以根據所設的正規表示式來忽略特定的拷貝。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hant.lproj/PinsSettings.strings",
    "content": "\"Title\" = \"釘選項目\";\n\"Key\" = \"快捷鍵\";\n\"Alias\" = \"標題\";\n\"Content\" = \"內容\";\n\"ContentIsNotText\" = \"不可編輯的內容（影像或檔案）\";\n\"RichTextEditWarning\" = \"編輯時會捨棄所有格式。\";\n\"PinCustomizationDescription\" = \"您可以自訂任何釘選項目的熱鍵、標題和內容。\\n若要編輯，請按兩下該項目，然後輸入新值。\";\n"
  },
  {
    "path": "Maccy/Settings/zh-Hant.lproj/StorageSettings.strings",
    "content": "\"Title\" = \"儲存\";\n\"Save\" = \"儲存：\";\n\"Files\" = \"檔案\";\n\"Images\" = \"圖片\";\n\"Text\" = \"文字\";\n\"SaveDescription\" = \"選擇應儲存的複製內容類型。\";\n\"Size\" = \"大小：\";\n\"SizeTooltip\" = \"要保留的歷史記錄項目數量。\\n預設：200。\";\n\"CurrentSizeTooltip\" = \"目前在磁碟上的大小。\";\n\"SortBy\" = \"排序方式：\";\n\"LastCopiedAt\" = \"上次拷貝時間\";\n\"FirstCopiedAt\" = \"首次拷貝時間\";\n\"NumberOfCopies\" = \"拷貝次數\";\n\"SortByTooltip\" = \"預設：上次拷貝時間。\";\n"
  },
  {
    "path": "Maccy/SoftwareUpdater.swift",
    "content": "import Sparkle\n\n@Observable\nclass SoftwareUpdater {\n  var automaticallyChecksForUpdates = false {\n    didSet {\n      updater.automaticallyChecksForUpdates = automaticallyChecksForUpdates\n    }\n  }\n\n  private var updater: SPUUpdater\n  private var automaticallyChecksForUpdatesObservation: NSKeyValueObservation?\n\n  private let updaterController = SPUStandardUpdaterController(\n    startingUpdater: true,\n    updaterDelegate: nil,\n    userDriverDelegate: nil\n  )\n\n  init() {\n    updater = updaterController.updater\n    automaticallyChecksForUpdatesObservation = updater.observe(\n      \\.automaticallyChecksForUpdates,\n      options: [.initial, .new, .old]\n    ) { [unowned self] updater, change in\n      guard change.newValue != change.oldValue else {\n        return\n      }\n\n      self.automaticallyChecksForUpdates = updater.automaticallyChecksForUpdates\n    }\n  }\n\n  func checkForUpdates() {\n    updater.checkForUpdates()\n  }\n}\n"
  },
  {
    "path": "Maccy/Sorter.swift",
    "content": "import AppKit\nimport Defaults\n\n// swiftlint:disable identifier_name\n// swiftlint:disable type_name\nclass Sorter {\n  enum By: String, CaseIterable, Identifiable, CustomStringConvertible, Defaults.Serializable {\n    case lastCopiedAt\n    case firstCopiedAt\n    case numberOfCopies\n\n    var id: Self { self }\n\n    var description: String {\n      switch self {\n      case .lastCopiedAt:\n        return NSLocalizedString(\"LastCopiedAt\", tableName: \"StorageSettings\", comment: \"\")\n      case .firstCopiedAt:\n        return NSLocalizedString(\"FirstCopiedAt\", tableName: \"StorageSettings\", comment: \"\")\n      case .numberOfCopies:\n        return NSLocalizedString(\"NumberOfCopies\", tableName: \"StorageSettings\", comment: \"\")\n      }\n    }\n  }\n\n  func sort(_ items: [HistoryItem], by: By = Defaults[.sortBy]) -> [HistoryItem] {\n    return items\n      .sorted(by: { return bySortingAlgorithm($0, $1, by) })\n      .sorted(by: byPinned)\n  }\n\n  private func bySortingAlgorithm(_ lhs: HistoryItem, _ rhs: HistoryItem, _ by: By) -> Bool {\n    switch by {\n    case .firstCopiedAt:\n      return lhs.firstCopiedAt > rhs.firstCopiedAt\n    case .numberOfCopies:\n      return lhs.numberOfCopies > rhs.numberOfCopies\n    default:\n      return lhs.lastCopiedAt > rhs.lastCopiedAt\n    }\n  }\n\n  private func byPinned(_ lhs: HistoryItem, _ rhs: HistoryItem) -> Bool {\n    if Defaults[.pinTo] == .bottom {\n      return (lhs.pin == nil) && (rhs.pin != nil)\n    } else {\n      return (lhs.pin != nil) && (rhs.pin == nil)\n    }\n  }\n}\n// swiftlint:enable identifier_name\n// swiftlint:enable type_name\n"
  },
  {
    "path": "Maccy/Storage.swift",
    "content": "import Foundation\nimport SwiftData\n\n@MainActor\nclass Storage {\n  static let shared = Storage()\n\n  var container: ModelContainer\n  var context: ModelContext { container.mainContext }\n  var size: String {\n    guard let size = try? url.resourceValues(forKeys: [.fileSizeKey]).allValues.first?.value as? Int64, size > 1 else {\n      return \"\"\n    }\n\n    return ByteCountFormatter().string(fromByteCount: size)\n  }\n\n  private let url = URL.applicationSupportDirectory.appending(path: \"Maccy/Storage.sqlite\")\n\n  init() {\n    var config = ModelConfiguration(url: url)\n\n    #if DEBUG\n    if CommandLine.arguments.contains(\"enable-testing\") {\n      config = ModelConfiguration(isStoredInMemoryOnly: true)\n    }\n    #endif\n\n    do {\n      container = try ModelContainer(for: HistoryItem.self, configurations: config)\n    } catch let error {\n      fatalError(\"Cannot load database: \\(error.localizedDescription).\")\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Storage.xcdatamodeld/Storage.xcdatamodel/contents",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<model type=\"com.apple.IDECoreDataModeler.DataModel\" documentVersion=\"1.0\" lastSavedToolsVersion=\"22758\" systemVersion=\"23F79\" minimumToolsVersion=\"Automatic\" sourceLanguage=\"Swift\" usedWithSwiftData=\"YES\" userDefinedModelVersionIdentifier=\"\">\n    <entity name=\"HistoryItem\" representedClassName=\"HistoryItemL\" syncable=\"YES\">\n        <attribute name=\"application\" optional=\"YES\" attributeType=\"String\"/>\n        <attribute name=\"firstCopiedAt\" attributeType=\"Date\" usesScalarValueType=\"NO\"/>\n        <attribute name=\"lastCopiedAt\" attributeType=\"Date\" usesScalarValueType=\"NO\"/>\n        <attribute name=\"numberOfCopies\" optional=\"YES\" attributeType=\"Integer 64\" defaultValueString=\"0\" usesScalarValueType=\"YES\"/>\n        <attribute name=\"pin\" optional=\"YES\" attributeType=\"String\" regularExpressionString=\"^[abcdefghijklmnorstuvwxyz]*$\"/>\n        <attribute name=\"title\" optional=\"YES\" attributeType=\"String\" maxValueString=\"203\"/>\n        <relationship name=\"contents\" toMany=\"YES\" deletionRule=\"Cascade\" destinationEntity=\"HistoryItemContent\" inverseName=\"item\" inverseEntity=\"HistoryItemContent\"/>\n    </entity>\n    <entity name=\"HistoryItemContent\" representedClassName=\"HistoryItemContentL\" syncable=\"YES\">\n        <attribute name=\"type\" optional=\"YES\" attributeType=\"String\"/>\n        <attribute name=\"value\" optional=\"YES\" attributeType=\"Binary\"/>\n        <relationship name=\"item\" optional=\"YES\" maxCount=\"1\" deletionRule=\"Nullify\" destinationEntity=\"HistoryItem\" inverseName=\"contents\" inverseEntity=\"HistoryItem\"/>\n    </entity>\n</model>"
  },
  {
    "path": "Maccy/Throttler.swift",
    "content": "import Foundation\n\n// Based on https://www.craftappco.com/blog/2018/5/30/simple-throttling-in-swift.\nclass Throttler {\n  var minimumDelay: TimeInterval\n\n  private var workItem: DispatchWorkItem = DispatchWorkItem(block: {})\n  private var previousRun: Date = Date.distantPast\n  private let queue: DispatchQueue\n\n  init(minimumDelay: TimeInterval, queue: DispatchQueue = DispatchQueue.main) {\n    self.minimumDelay = minimumDelay\n    self.queue = queue\n  }\n\n  func throttle(_ block: @escaping () -> Void) {\n    // Cancel any existing work item if it has not yet executed\n    cancel()\n\n    // Re-assign workItem with the new block task,\n    // resetting the previousRun time when it executes\n    workItem = DispatchWorkItem { [weak self] in\n      self?.previousRun = Date()\n      block()\n    }\n\n    // If the time since the previous run is more than the required minimum delay\n    // => execute the workItem immediately\n    // else\n    // => delay the workItem execution by the minimum delay time\n    let delay = previousRun.timeIntervalSinceNow > minimumDelay ? 0 : minimumDelay\n    queue.asyncAfter(deadline: .now() + Double(delay), execute: workItem)\n  }\n\n  func cancel() {\n    workItem.cancel()\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/AppImageView.swift",
    "content": "import SwiftUI\n\nstruct AppImageView: View {\n  let appImage: ApplicationImage\n  let size: CGSize\n\n  var body: some View {\n    Image(nsImage: appImage.nsImage)\n      .resizable()\n      .frame(width: size.width, height: size.height)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/AsyncView.swift",
    "content": "import SwiftUI\n\nenum AsyncViewState<T> {\n  case loading\n  case failed\n  case loaded(T)\n}\n\nstruct AsyncView<Value, Content: View, Placeholder: View>: View {\n  let operation: () async throws -> Value\n  @ViewBuilder var content: (Value) -> Content\n  @ViewBuilder var placeholder: () -> Placeholder\n\n  @State private var viewState = AsyncViewState<Value>.loading\n\n  init(\n    operation: @escaping () async throws -> Value,\n    @ViewBuilder content: @escaping (Value) -> Content,\n    @ViewBuilder placeholder: @escaping () -> Placeholder\n  ) {\n    self.operation = operation\n    self.content = content\n    self.placeholder = placeholder\n  }\n\n  var body: some View {\n    Group {\n      switch viewState {\n      case .loading, .failed:\n        placeholder()\n      case .loaded(let value):\n        content(value)\n      }\n    }.task {\n      do {\n        viewState = .loading\n        let result = try await operation()\n        viewState = .loaded(result)\n      } catch {\n        viewState = .failed\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ConfirmationView.swift",
    "content": "import SwiftUI\n\nstruct ConfirmationView<Content: View>: View {\n  @Bindable var item: FooterItem\n  @ViewBuilder let content: () -> Content\n\n  var body: some View {\n    if let confirmation = item.confirmation, let suppressConfirmation = item.suppressConfirmation {\n      content()\n        .onTapGesture {\n          if suppressConfirmation.wrappedValue {\n            item.action()\n          } else {\n            item.showConfirmation = true\n          }\n        }\n        .confirmationDialog(confirmation.message, isPresented: $item.showConfirmation) {\n          Text(confirmation.comment)\n          Button(confirmation.confirm, role: .destructive) {\n            item.action()\n          }\n          Button(confirmation.cancel, role: .cancel) {}\n        }\n        .dialogSuppressionToggle(isSuppressed: suppressConfirmation)\n    } else {\n      content()\n        .onTapGesture {\n          item.action()\n        }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ContentView.swift",
    "content": "import SwiftData\nimport SwiftUI\n\nstruct ContentView: View {\n  @State private var appState = AppState.shared\n  @State private var modifierFlags = ModifierFlags()\n  @State private var scenePhase: ScenePhase = .background\n\n  @FocusState private var searchFocused: Bool\n\n  var body: some View {\n    ZStack {\n      if #available(macOS 26.0, *) {\n        GlassEffectView()\n      } else {\n        VisualEffectView()\n      }\n\n      KeyHandlingView(searchQuery: $appState.history.searchQuery, searchFocused: $searchFocused) {\n        VStack(spacing: 0) {\n          SlideoutView(controller: appState.preview) {\n            HeaderView(\n              controller: appState.preview,\n              searchFocused: $searchFocused\n            )\n\n            VStack(alignment: .leading, spacing: 0) {\n              HistoryListView(\n                searchQuery: $appState.history.searchQuery,\n                searchFocused: $searchFocused\n              )\n\n              FooterView(footer: appState.footer)\n            }\n            .animation(.default.speed(3), value: appState.history.items)\n            .animation(\n              .default.speed(3),\n              value: appState.history.pasteStack?.id\n            )\n            .padding(.horizontal, Popup.horizontalPadding)\n            .onAppear {\n              searchFocused = true\n            }\n            .onMouseMove {\n              appState.navigator.isKeyboardNavigating = false\n            }\n          } slideout: {\n            SlideoutContentView()\n          }\n          .frame(minHeight: 0)\n          .layoutPriority(1)\n        }\n      }\n      .frame(maxWidth: .infinity, alignment: .leading)\n      .task {\n        try? await appState.history.load()\n      }\n    }\n    .animation(.easeInOut(duration: 0.2), value: appState.searchVisible)\n    .environment(appState)\n    .environment(modifierFlags)\n    .environment(\\.scenePhase, scenePhase)\n    // FloatingPanel is not a scene, so let's implement custom scenePhase..\n    .onReceive(NotificationCenter.default.publisher(for: NSWindow.didBecomeKeyNotification)) {\n      if let window = $0.object as? NSWindow,\n         let bundleIdentifier = Bundle.main.bundleIdentifier,\n         window.identifier == NSUserInterfaceItemIdentifier(bundleIdentifier) {\n        scenePhase = .active\n      }\n    }\n    .onReceive(NotificationCenter.default.publisher(for: NSWindow.didResignKeyNotification)) {\n      if let window = $0.object as? NSWindow,\n         let bundleIdentifier = Bundle.main.bundleIdentifier,\n         window.identifier == NSUserInterfaceItemIdentifier(bundleIdentifier) {\n        scenePhase = .background\n      }\n    }\n  }\n}\n\n#Preview {\n  ContentView()\n    .environment(\\.locale, .init(identifier: \"en\"))\n    .modelContainer(Storage.shared.container)\n}\n"
  },
  {
    "path": "Maccy/Views/FooterItemView.swift",
    "content": "import SwiftUI\n\nstruct FooterItemView: View {\n  @Bindable var item: FooterItem\n  @Environment(AppState.self) private var appState\n\n  var body: some View {\n    ConfirmationView(item: item) {\n      ListItemView(id: item.id, selectionId: item.id, shortcuts: item.shortcuts, isSelected: item.isSelected) {\n        Text(LocalizedStringKey(item.title))\n      }\n    }\n    .onHover { hovering in\n      if hovering && appState.preview.state.isOpen {\n        appState.preview.togglePreview()\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/FooterView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nstruct FooterView: View {\n  @Bindable var footer: Footer\n\n  @Environment(AppState.self) private var appState\n  @Environment(ModifierFlags.self) private var modifierFlags\n  @Default(.showFooter) private var showFooter\n  @State private var clearOpacity: Double = 1\n  @State private var clearAllOpacity: Double = 0\n\n  var clearAllModifiersPressed: Bool {\n    let clearModifiers = footer.items[0].shortcuts.first?.modifierFlags ?? []\n    let clearAllModifiers = footer.items[1].shortcuts.first?.modifierFlags ?? []\n    return !modifierFlags.flags.isEmpty\n      && !modifierFlags.flags.isSubset(of: clearModifiers)\n      && modifierFlags.flags.isSubset(of: clearAllModifiers)\n  }\n\n  var body: some View {\n    VStack(spacing: 0) {\n      Divider()\n        .padding(.horizontal, Popup.horizontalSeparatorPadding)\n        .padding(.bottom, Popup.verticalSeparatorPadding)\n\n      ZStack {\n        FooterItemView(item: footer.items[0])\n          .opacity(clearOpacity)\n        FooterItemView(item: footer.items[1])\n          .opacity(clearAllOpacity)\n      }\n      .onChange(of: modifierFlags.flags) {\n        if clearAllModifiersPressed {\n          clearOpacity = 0\n          clearAllOpacity = 1\n          footer.items[0].isVisible = false\n          footer.items[1].isVisible = true\n          if appState.footer.selectedItem == footer.items[0] {\n            appState.navigator.select(footerItem: footer.items[1])\n          }\n        } else {\n          clearOpacity = 1\n          clearAllOpacity = 0\n          footer.items[0].isVisible = true\n          footer.items[1].isVisible = false\n          if appState.footer.selectedItem == footer.items[1] {\n            appState.navigator.select(footerItem: footer.items[0])\n          }\n        }\n      }\n\n      ForEach(footer.items.suffix(from: 2)) { item in\n        FooterItemView(item: item)\n      }\n    }\n    .opacity(showFooter ? 1 : 0)\n    .frame(maxHeight: showFooter ? nil : 0)\n    .padding(.bottom, showFooter ? Popup.verticalPadding : 0)\n    .readHeight(appState, into: \\.popup.footerHeight)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/HeaderView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nstruct HeaderView: View {\n  @State private var appState = AppState.shared\n\n  let controller: SlideoutController\n  @FocusState.Binding var searchFocused: Bool\n\n  var previewPlacement: SlideoutPlacement {\n    return controller.placement\n  }\n\n  var body: some View {\n    HStack(alignment: .top, spacing: 0) {\n      HStack(alignment: .center, spacing: 0) {\n        ListHeaderView(\n          searchFocused: $searchFocused,\n          searchQuery: $appState.history.searchQuery\n        )\n        .padding(.horizontal, Popup.horizontalPadding)\n\n        ToolbarButton {\n          controller.togglePreview()\n        } label: {\n          Image(\n            systemName: previewPlacement == .right\n              ? \"sidebar.left\" : \"sidebar.right\"\n          )\n        }\n        .shortcutKeyHelp(\n          name: .togglePreview,\n          key: \"PreviewKey\",\n          tableName: \"PreviewItemView\",\n          replacementKey: \"previewKey\"\n        )\n        .padding(.trailing, Popup.horizontalPadding)\n      }\n      .opacity(appState.searchVisible ? 1 : 0)\n      .layoutPriority(1)\n    }\n    .padding(.top, Popup.verticalPadding)\n    .padding(.horizontal, 10)\n    .animation(.default.speed(3), value: appState.navigator.leadSelection)\n    .background(.clear)\n    .frame(maxHeight: !appState.searchVisible ? 0 : nil, alignment: .top)\n    .readHeight(appState, into: \\.popup.headerHeight)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/HeightReaderModifier.swift",
    "content": "import SwiftUI\n\nstruct SizeReaderModifier<Value: Equatable>: ViewModifier {\n  @Binding var value: Value\n  let mapper: (CGSize) -> Value\n\n  func body(content: Content) -> some View {\n    content.onGeometryChange(for: Value.self) { proxy in\n      mapper(proxy.size)\n    } action: { newValue in\n      value = newValue\n    }\n  }\n}\n\nfileprivate extension Binding {\n  init<State>(\n    _ object: State,\n    keyPath: ReferenceWritableKeyPath<State, Value>\n  ) {\n    self.init(\n      get: { object[keyPath: keyPath] },\n      set: { object[keyPath: keyPath] = $0 }\n    )\n  }\n}\n\nextension View {\n  func readHeight<State>(\n    _ state: State,\n    into keyPath: ReferenceWritableKeyPath<State, CGFloat>\n  ) -> some View {\n    readHeight(Binding(state, keyPath: keyPath))\n  }\n\n  func readWidth<State>(\n    _ state: State,\n    into keyPath: ReferenceWritableKeyPath<State, CGFloat>\n  ) -> some View {\n    readWidth(Binding(state, keyPath: keyPath))\n  }\n\n  func readWidth(_ value: Binding<CGFloat>) -> some View {\n    modifier(SizeReaderModifier(value: value, mapper: \\.width))\n  }\n\n  func readHeight(_ value: Binding<CGFloat>) -> some View {\n    modifier(SizeReaderModifier(value: value, mapper: \\.height))\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/HistoryItemView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nstruct HistoryItemView: View {\n  @Bindable var item: HistoryItemDecorator\n  var previous: HistoryItemDecorator?\n  var next: HistoryItemDecorator?\n  var index: Int\n\n  private var visualIndex: Int? {\n    if appState.navigator.isMultiSelectInProgress && item.selectionIndex >= 0 {\n      return item.selectionIndex\n    }\n    return nil\n  }\n\n  private var selectionAppearance: SelectionAppearance {\n    let previousSelected = previous?.isSelected ?? false\n    let nextSelected = next?.isSelected ?? false\n    switch (previousSelected, nextSelected) {\n    case (true, false):\n      return .topConnection\n    case (false, true):\n      return .bottomConnection\n    case (true, true):\n      return .topBottomConnection\n    default:\n      return .none\n    }\n  }\n\n  @Environment(AppState.self) private var appState\n\n  var body: some View {\n    ListItemView(\n      id: item.id,\n      selectionId: item.id,\n      appIcon: item.applicationImage,\n      image: item.thumbnailImage,\n      accessoryImage: item.thumbnailImage != nil ? nil : ColorImage.from(item.title),\n      attributedTitle: item.attributedTitle,\n      shortcuts: item.shortcuts,\n      isSelected: item.isSelected,\n      selectionIndex: visualIndex,\n      selectionAppearance: selectionAppearance\n    ) {\n      Text(verbatim: item.title)\n    }\n    .onAppear {\n      item.ensureThumbnailImage()\n    }\n    .onTapGesture {\n      if NSEvent.modifierFlags.contains(.command) && appState.multiSelectionEnabled {\n        appState.navigator.addToSelection(item: item)\n      } else {\n        Task {\n          appState.history.select(item)\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/HistoryListView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nstruct HistoryListView: View {\n  @Binding var searchQuery: String\n  @FocusState.Binding var searchFocused: Bool\n\n  @Environment(AppState.self) private var appState\n  @Environment(ModifierFlags.self) private var modifierFlags\n  @Environment(\\.scenePhase) private var scenePhase\n\n  @Default(.pinTo) private var pinTo\n  @Default(.previewDelay) private var previewDelay\n  @Default(.showFooter) private var showFooter\n\n  private var pinnedItems: [HistoryItemDecorator] {\n    appState.history.pinnedItems.filter(\\.isVisible)\n  }\n  private var unpinnedItems: [HistoryItemDecorator] {\n    appState.history.unpinnedItems.filter(\\.isVisible)\n  }\n  private var showPinsSeparator: Bool {\n    pinsVisible && !unpinnedItems.isEmpty\n  }\n\n  private var pinsVisible: Bool {\n    return !pinnedItems.isEmpty\n  }\n\n  private var pasteStackVisible: Bool {\n    if let stack = appState.history.pasteStack,\n       !stack.items.isEmpty {\n      return true\n    }\n    return false\n  }\n\n  private var topPadding: CGFloat {\n    return Popup.verticalSeparatorPadding\n  }\n\n  private var bottomPadding: CGFloat {\n    return showFooter\n      ? Popup.verticalSeparatorPadding\n      : (Popup.verticalSeparatorPadding - 1)\n  }\n\n  private func topSeparator() -> some View {\n    Divider()\n      .padding(.horizontal, Popup.horizontalSeparatorPadding)\n      .padding(.top, Popup.verticalSeparatorPadding)\n  }\n\n  @ViewBuilder\n  private func bottomSeparator() -> some View {\n    Divider()\n      .padding(.horizontal, Popup.horizontalSeparatorPadding)\n      .padding(.bottom, Popup.verticalSeparatorPadding)\n  }\n\n  @ViewBuilder\n  private func separator() -> some View {\n    Divider()\n      .padding(.horizontal, Popup.horizontalSeparatorPadding)\n      .padding(.vertical, Popup.verticalSeparatorPadding)\n  }\n\n  var body: some View {\n    let topPinsVisible = pinTo == .top && pinsVisible\n    let bottomPinsVisible = pinTo == .bottom && pinsVisible\n    let topSeparatorVisible = topPinsVisible || pasteStackVisible\n    let bottomSeparatorVisible = bottomPinsVisible\n    let scrollTopPadding = topSeparatorVisible ? Popup.verticalSeparatorPadding : topPadding\n    let scrollBottomPadding = bottomSeparatorVisible ? Popup.verticalSeparatorPadding : bottomPadding\n\n    VStack(spacing: 0) {\n      if let stack = appState.history.pasteStack,\n         !stack.items.isEmpty {\n        PasteStackView(stack: stack)\n\n        if topPinsVisible {\n          separator()\n        }\n      }\n\n      if topPinsVisible {\n        PinsView(items: pinnedItems)\n      }\n\n      if topSeparatorVisible {\n        topSeparator()\n      }\n    }\n    .padding(.top, topSeparatorVisible ? topPadding : 0)\n    .readHeight(appState, into: \\.popup.extraTopHeight)\n\n    ScrollView {\n      ScrollViewReader { proxy in\n        MultipleSelectionListView(items: unpinnedItems) { previous, item, next, index in\n          HistoryItemView(item: item, previous: previous, next: next, index: index)\n        }\n        .padding(.top, scrollTopPadding)\n        .padding(.bottom, scrollBottomPadding)\n        .task(id: appState.navigator.scrollTarget) {\n          guard appState.navigator.scrollTarget != nil else { return }\n\n          try? await Task.sleep(for: .milliseconds(10))\n          guard !Task.isCancelled else { return }\n\n          if let selection = appState.navigator.scrollTarget {\n            proxy.scrollTo(selection)\n            appState.navigator.scrollTarget = nil\n          }\n        }\n        .onChange(of: scenePhase) {\n          if scenePhase == .active {\n            searchFocused = true\n            appState.navigator.isKeyboardNavigating = true\n            appState.navigator.select(item: appState.history.unpinnedItems.first ?? appState.history.pinnedItems.first)\n            appState.preview.enableAutoOpen()\n            appState.preview.resetAutoOpenSuppression()\n            appState.preview.startAutoOpen()\n          } else {\n            modifierFlags.flags = []\n            appState.navigator.isKeyboardNavigating = true\n            appState.preview.cancelAutoOpen()\n          }\n        }\n        // Calculate the total height inside a scroll view.\n        .background {\n          GeometryReader { geo in\n            Color.clear\n              .task(id: appState.popup.needsResize) {\n                try? await Task.sleep(for: .milliseconds(10))\n                guard !Task.isCancelled else { return }\n\n                if appState.popup.needsResize {\n                  appState.popup.resize(height: geo.size.height)\n                }\n              }\n          }\n        }\n      }\n      .contentMargins(.leading, 10, for: .scrollIndicators)\n      .contentMargins(.top, scrollTopPadding, for: .scrollIndicators)\n      .contentMargins(.bottom, scrollBottomPadding, for: .scrollIndicators)\n    }\n\n    VStack(spacing: 0) {\n      if bottomSeparatorVisible {\n        bottomSeparator()\n      }\n\n      if bottomPinsVisible {\n        PinsView(items: pinnedItems)\n      }\n    }\n    .padding(.bottom, bottomSeparatorVisible ? bottomPadding : 0)\n    .readHeight(appState, into: \\.popup.extraBottomHeight)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/HoverSelectionModifier.swift",
    "content": "import SwiftUI\n\nprivate struct HoverSelectionModifier: ViewModifier {\n  @Environment(AppState.self) private var appState\n  var id: UUID\n\n  func body(content: Content) -> some View {\n    content.onHover { hovering in\n      if hovering {\n        if !appState.navigator.isKeyboardNavigating && !appState.navigator.isMultiSelectInProgress {\n          appState.navigator.selectWithoutScrolling(id: id)\n        } else {\n          appState.navigator.hoverSelectionWhileKeyboardNavigating = id\n        }\n      }\n    }\n  }\n}\n\nextension View {\n  func hoverSelectionId(_ id: UUID) -> some View {\n    modifier(HoverSelectionModifier(id: id))\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/KeyHandlingView.swift",
    "content": "import Sauce\nimport Defaults\nimport SwiftUI\n\nstruct KeyHandlingView<Content: View>: View {\n  @Binding var searchQuery: String\n  @FocusState.Binding var searchFocused: Bool\n  @ViewBuilder let content: () -> Content\n\n  @Environment(AppState.self) private var appState\n\n  var body: some View {\n    content()\n      .onKeyPress { _ in\n        // Unfortunately, key presses don't allow access to\n        // key code and don't properly work with multiple inputs,\n        // so pressing ⌘, on non-English layout doesn't open\n        // preferences. Stick to NSEvent to fix this behavior.\n\n        if searchFocused {\n          // Ignore input when candidate window is open\n          // https://stackoverflow.com/questions/73677444/how-to-detect-the-candidate-window-when-using-japanese-keyboard\n          if let inputClient = NSApp.keyWindow?.firstResponder as? NSTextInputClient,\n             inputClient.hasMarkedText() {\n            return .ignored\n          }\n        }\n\n        switch KeyChord(NSApp.currentEvent) {\n        case .clearHistory:\n          if let item = appState.footer.items.first(where: { $0.title == \"clear\" }),\n             item.confirmation != nil,\n             let suppressConfirmation = item.suppressConfirmation {\n            if suppressConfirmation.wrappedValue {\n              item.action()\n            } else {\n              item.showConfirmation = true\n            }\n            return .handled\n          } else {\n            return .ignored\n          }\n        case .clearHistoryAll:\n          if let item = appState.footer.items.first(where: { $0.title == \"clear_all\" }),\n             item.confirmation != nil,\n             let suppressConfirmation = item.suppressConfirmation {\n            if suppressConfirmation.wrappedValue {\n              item.action()\n            } else {\n              item.showConfirmation = true\n            }\n            return .handled\n          } else {\n            return .ignored\n          }\n        case .clearSearch:\n          searchQuery = \"\"\n          return .handled\n        case .deleteCurrentItem:\n          if appState.navigator.pasteStackSelected {\n            appState.removePasteStack()\n          } else {\n            appState.deleteSelection()\n          }\n          return .handled\n        case .deleteOneCharFromSearch:\n          searchFocused = true\n          _ = searchQuery.popLast()\n          return .handled\n        case .deleteLastWordFromSearch:\n          searchFocused = true\n          let newQuery = searchQuery.split(separator: \" \").dropLast().joined(separator: \" \")\n          if newQuery.isEmpty {\n            searchQuery = \"\"\n          } else {\n            searchQuery = \"\\(newQuery) \"\n          }\n\n          return .handled\n        case .moveToNext:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n\n          appState.navigator.highlightNext()\n          return .handled\n        case .moveToLast:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n\n          appState.navigator.highlightLast()\n          return .handled\n        case .moveToPrevious:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n\n          appState.navigator.highlightPrevious()\n          return .handled\n        case .moveToFirst:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n\n          appState.navigator.highlightFirst()\n          return .handled\n        case .extendToNext:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n          guard AppState.shared.multiSelectionEnabled else {\n            return .ignored\n          }\n          appState.navigator.extendHighlightToNext()\n          return .handled\n        case .extendToLast:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n          guard AppState.shared.multiSelectionEnabled else {\n            return .ignored\n          }\n          appState.navigator.extendHighlightToLast()\n          return .handled\n        case .extendToPrevious:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n          guard AppState.shared.multiSelectionEnabled else {\n            return .ignored\n          }\n          appState.navigator.extendHighlightToPrevious()\n          return .handled\n        case .extendToFirst:\n          guard NSApp.characterPickerWindow == nil else {\n            return .ignored\n          }\n          guard AppState.shared.multiSelectionEnabled else {\n            return .ignored\n          }\n          appState.navigator.extendHighlightToFirst()\n          return .handled\n        case .openPreferences:\n          appState.openPreferences()\n          return .handled\n        case .pinOrUnpin:\n          appState.togglePin()\n          return .handled\n        case .selectCurrentItem:\n          appState.select()\n          return .handled\n        case .close:\n          appState.popup.close()\n          return .handled\n        case .togglePreview:\n          appState.preview.togglePreview()\n          return .handled\n        default:\n          ()\n        }\n\n        if let item = appState.history.pressedShortcutItem {\n          appState.navigator.select(item: item)\n          Task {\n            try? await Task.sleep(for: .milliseconds(50))\n            appState.history.select(item)\n          }\n          return .handled\n        }\n\n        return .ignored\n      }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/KeyboardShortcutView.swift",
    "content": "import SwiftUI\n\nstruct KeyboardShortcutView: View {\n  var shortcut: KeyShortcut?\n\n  var modifiers: String {\n    if var shortcut = shortcut?.description {\n      _ = shortcut.popLast()\n      return shortcut\n    }\n    return \"\"\n  }\n\n  var character: String {\n    return shortcut?.description.last?.description ?? \"\"\n  }\n\n  var body: some View {\n    HStack(spacing: 1) {\n      ForEach(Array(modifiers.unicodeScalars), id: \\.self) { scalar in\n          Text(String(scalar))\n      }\n      Text(character).frame(width: 12, alignment: .center)\n    }\n    .lineLimit(1)\n    .opacity(character.isEmpty ? 0 : 0.7)\n  }\n}\n\n#Preview {\n  List {\n    KeyboardShortcutView(shortcut: KeyShortcut(key: .a, modifierFlags: [.command]))\n    KeyboardShortcutView(shortcut: KeyShortcut(key: .w))\n    KeyboardShortcutView(shortcut: KeyShortcut(key: .one, modifierFlags: [.command]))\n    KeyboardShortcutView(shortcut: KeyShortcut(key: .two, modifierFlags: [.command]))\n    KeyboardShortcutView()\n\n    KeyboardShortcutView(shortcut: KeyShortcut(key: .delete, modifierFlags: [.command, .option, .control, .shift]))\n    KeyboardShortcutView(shortcut: KeyShortcut(key: .c, modifierFlags: [.command, .option]))\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ListHeaderView.swift",
    "content": "import Defaults\nimport KeyboardShortcuts\nimport SwiftUI\n\nstruct ListHeaderView: View {\n  @FocusState.Binding var searchFocused: Bool\n  @Binding var searchQuery: String\n\n  @Environment(AppState.self) private var appState\n  @Environment(\\.scenePhase) private var scenePhase\n\n  @Default(.showTitle) private var showTitle\n\n  var body: some View {\n    HStack {\n      if showTitle {\n        Text(\"Maccy\")\n          .foregroundStyle(.secondary)\n          .padding(.leading, 5)\n      }\n\n      SearchFieldView(placeholder: \"search_placeholder\", query: $searchQuery)\n        .focused($searchFocused)\n        .frame(maxWidth: .infinity)\n        .onChange(of: scenePhase) {\n          if scenePhase == .background && !searchQuery.isEmpty {\n            searchQuery = \"\"\n          }\n        }\n        // Only reliable way to disable the cursor. allowsHitTesting() does not work\n        .offset(y: appState.searchVisible ? 0 : -Popup.itemHeight)\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ListItemTitleView.swift",
    "content": "import SwiftUI\n\nstruct ListItemTitleView<Title: View>: View {\n  var attributedTitle: AttributedString?\n  @ViewBuilder var title: () -> Title\n\n  var body: some View {\n    if let attributedTitle {\n      Text(attributedTitle)\n        .accessibilityIdentifier(\"copy-history-item\")\n        .lineLimit(1)\n        .truncationMode(.middle)\n    } else {\n      title()\n        .accessibilityIdentifier(\"copy-history-item\")\n        .lineLimit(1)\n        .truncationMode(.middle)\n        // Workaround for macOS 26 to avoid flipped text\n        // https://github.com/p0deje/Maccy/issues/1113\n        .drawingGroup()\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ListItemView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nenum SelectionAppearance {\n  case none\n  case topConnection\n  case bottomConnection\n  case topBottomConnection\n\n  func rect(cornerRadius: CGFloat) -> some Shape {\n    var cornerRadii = RectangleCornerRadii()\n    switch self {\n    case .none:\n      cornerRadii.topLeading = cornerRadius\n      cornerRadii.topTrailing = cornerRadius\n      cornerRadii.bottomLeading = cornerRadius\n      cornerRadii.bottomTrailing = cornerRadius\n    case .topConnection:\n      cornerRadii.bottomLeading = cornerRadius\n      cornerRadii.bottomTrailing = cornerRadius\n    case .bottomConnection:\n      cornerRadii.topLeading = cornerRadius\n      cornerRadii.topTrailing = cornerRadius\n    case .topBottomConnection:\n      break\n    }\n    return .rect(cornerRadii: cornerRadii)\n  }\n}\n\nstruct ListItemView<Title: View, ID: Hashable>: View {\n  var id: ID\n  var selectionId: UUID\n  var appIcon: ApplicationImage?\n  var image: NSImage?\n  var accessoryImage: NSImage?\n  var attributedTitle: AttributedString?\n  var shortcuts: [KeyShortcut]\n  var isSelected: Bool\n  var selectionIndex: Int?\n  var help: LocalizedStringKey?\n  var selectionAppearance: SelectionAppearance = .none\n  @ViewBuilder var title: () -> Title\n\n  @Default(.showApplicationIcons) private var showIcons\n  @Environment(AppState.self) private var appState\n  @Environment(ModifierFlags.self) private var modifierFlags\n\n  var body: some View {\n    HStack(spacing: 0) {\n      if showIcons, let appIcon {\n        VStack {\n          Spacer(minLength: 0)\n          AppImageView(appImage: appIcon, size: NSSize(width: 15, height: 15))\n          Spacer(minLength: 0)\n        }\n        .padding(.leading, 4)\n        .padding(.vertical, 5)\n      }\n\n      Spacer()\n        .frame(width: showIcons ? 5 : 10)\n\n      if let accessoryImage {\n        Image(nsImage: accessoryImage)\n          .accessibilityIdentifier(\"copy-history-item\")\n          .padding(.trailing, 5)\n          .padding(.vertical, 5)\n      }\n\n      if let image {\n        Image(nsImage: image)\n          .accessibilityIdentifier(\"copy-history-item\")\n          .padding(.trailing, 5)\n          .padding(.vertical, 5)\n      } else {\n        ListItemTitleView(attributedTitle: attributedTitle, title: title)\n          .padding(.trailing, 5)\n      }\n\n      Spacer()\n\n      HStack(spacing: 5) {\n        if let index = selectionIndex {\n          Text(\"\\(index + 1)\")\n            .font(.caption)\n            .frame(minWidth: 10, alignment: .center)\n            .padding(3)\n            .background(\n              Color.secondary.opacity(isSelected ? 0.5 : 0.8),\n              in: Capsule()\n            )\n            .foregroundStyle(Color.white)\n        }\n\n        if !shortcuts.isEmpty {\n          ZStack(alignment: .trailing) {\n            ForEach(shortcuts) { shortcut in\n              let visible = shortcut.isVisible(shortcuts, modifierFlags.flags)\n              KeyboardShortcutView(shortcut: shortcut)\n                .opacity(visible ? 1 : 0)\n                .frame(width: visible ? nil : 0)\n            }\n          }\n        }\n      }\n      .padding(.trailing, 10)\n    }\n    .frame(minHeight: Popup.itemHeight)\n    .id(id)\n    .frame(maxWidth: .infinity, alignment: .leading)\n    .foregroundStyle(isSelected ? Color.white : .primary)\n    // macOS 26 broke hovering if no background is present.\n    // The slight opcaity white background is a workaround\n    .background(isSelected ? Color.accentColor.opacity(0.8) : .white.opacity(0.001))\n    .clipShape(selectionAppearance.rect(cornerRadius: Popup.cornerRadius))\n    .hoverSelectionId(selectionId)\n    .help(help ?? \"\")\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/MouseMovedViewModifer.swift",
    "content": "import SwiftUI\n\nextension View {\n  func onMouseMove(_ mouseMoved: @escaping () -> Void) -> some View {\n    modifier(MouseMovedViewModifier(mouseMoved))\n  }\n}\n\nstruct MouseMovedViewModifier: ViewModifier {\n  let mouseMoved: () -> Void\n\n  init(_ mouseMoved: @escaping () -> Void) {\n    self.mouseMoved = mouseMoved\n  }\n\n  func body(content: Content) -> some View {\n    content.background(\n      GeometryReader { geo in\n        Representable(\n          mouseMoved: mouseMoved,\n          frame: geo.frame(in: .global)\n        )\n      }\n    )\n  }\n\n  private class Coordinator: NSResponder {\n    var mouseMoved: (() -> Void)?\n\n    override func mouseMoved(with event: NSEvent) {\n      mouseMoved?()\n    }\n  }\n\n  private struct Representable: NSViewRepresentable {\n    let mouseMoved: () -> Void\n    let frame: NSRect\n\n    func makeCoordinator() -> Coordinator {\n      let coordinator = Coordinator()\n      coordinator.mouseMoved = mouseMoved\n      return coordinator\n    }\n\n    func makeNSView(context: Context) -> NSView {\n      let view = NSView(frame: frame)\n\n      let options: NSTrackingArea.Options = [\n        .activeInKeyWindow,\n        .inVisibleRect,\n        .mouseMoved\n      ]\n\n      let trackingArea = NSTrackingArea(\n        rect: frame,\n        options: options,\n        owner: context.coordinator,\n        userInfo: nil\n      )\n\n      view.addTrackingArea(trackingArea)\n\n      return view\n    }\n\n    func updateNSView(_ nsView: NSView, context: Context) {}\n\n    static func dismantleNSView(_ nsView: NSView, coordinator: Coordinator) {\n      nsView.trackingAreas.forEach { nsView.removeTrackingArea($0) }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/MultipleSelectionListView.swift",
    "content": "import SwiftUI\n\nstruct MultipleSelectionListView<Element, ID, Content>: View\n    where ID: Hashable, Content: View, ID == Element.ID, Element: Identifiable {\n  var items: [Element]\n  var content: (Element?, Element, Element?, Int) -> Content\n\n  var body: some View {\n    LazyVStack(spacing: 0) {\n      ForEach(Array(items.enumerated()), id: \\.element.id) { (index, element) in\n        let previous = index > 0 ? items[index - 1] : nil\n        let next = index < items.count - 1 ? items[index + 1] : nil\n        content(previous, element, next, index)\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/PasteStackItemView.swift",
    "content": "import Defaults\nimport SwiftUI\n\nprivate struct PasteStackId: Hashable {\n  var pasteStackId: UUID\n  var itemId: UUID\n\n  static func == (lhs: PasteStackId, rhs: PasteStackId) -> Bool {\n    return lhs.pasteStackId == rhs.pasteStackId && lhs.itemId == rhs.itemId\n  }\n\n  func hash(into hasher: inout Hasher) {\n    hasher.combine(pasteStackId)\n    hasher.combine(itemId)\n  }\n}\n\nstruct PasteStackItemView: View {\n  var stack: PasteStack\n  var item: HistoryItemDecorator\n  var index: Int?\n  var isSelected: Bool\n\n  var body: some View {\n    ListItemView(\n      id: PasteStackId(pasteStackId: stack.id, itemId: item.id),\n      selectionId: stack.id,\n      appIcon: item.applicationImage,\n      image: index != nil ? item.thumbnailImage : nil,\n      accessoryImage: item.thumbnailImage != nil ? nil : ColorImage.from(item.title),\n      attributedTitle: item.attributedTitle,\n      shortcuts: [],\n      isSelected: isSelected,\n      selectionIndex: index,\n      selectionAppearance: .none\n    ) {\n      Text(verbatim: item.title)\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/PasteStackPreviewView.swift",
    "content": "import SwiftUI\n\nprivate struct PasteStackPreviewItemView: View {\n  var stack: PasteStack\n  var item: HistoryItemDecorator\n\n  var body: some View {\n    PasteStackItemView(\n      stack: stack,\n      item: item,\n      index: nil,\n      isSelected: false\n    )\n  }\n}\n\nstruct PasteStackPreviewView: View {\n  private static let padding = 2.0\n\n  var pasteStack: PasteStack\n  @State var pasteStackListHeight: CGFloat = 0\n\n  var body: some View {\n    ScrollView {\n      LazyVStack(spacing: 0) {\n        ForEach(Array(pasteStack.items.enumerated()), id: \\.element.id) { (index, element) in\n          PasteStackPreviewItemView(\n            stack: pasteStack,\n            item: element\n          )\n          if index != pasteStack.items.count - 1 {\n            Divider()\n              .padding(.vertical, Self.padding)\n          }\n        }\n      }\n      .padding(.vertical, Self.padding)\n      .readHeight($pasteStackListHeight)\n    }\n    .frame(maxHeight: pasteStackListHeight)\n    .background(.fill.tertiary)\n    .clipShape(SelectionAppearance.none.rect(cornerRadius: Popup.cornerRadius))\n    Spacer()\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/PasteStackView.swift",
    "content": "import SwiftUI\n\nstruct CollapsedStackItem<Content: View>: View {\n  let maxItems: Int\n  let index: Int\n  let open: Bool\n\n  @State var height: CGFloat = -1\n  var content: () -> Content\n\n  private var offset: Double {\n    if open || index == 0 {\n      return 0\n    }\n    if index + 1 > maxItems {\n      return -height\n    }\n    return -height * 0.75\n  }\n\n  private var scale: Double {\n    if open {\n      return 1\n    }\n    return pow(0.98, Double(index))\n  }\n\n  private var opacity: Double {\n    if open {\n      return 1\n    }\n    if index + 1 > maxItems {\n      return 0\n    }\n    return pow(0.95, Double(index))\n  }\n\n  var body: some View {\n    content()\n      .background(\n        GeometryReader { geo in\n          Color.clear\n            .task(id: geo.size.height) {\n              DispatchQueue.main.async {\n                height = geo.size.height\n              }\n            }\n        }\n      )\n      .offset(y: offset)\n      .padding(.bottom, offset)\n      .opacity(opacity)\n      .scaleEffect(scale, anchor: .center)\n      .zIndex(Double(-index))\n  }\n}\n\nstruct PasteStackView: View {\n  var stack: PasteStack\n  var open: Bool = false\n\n  @Environment(AppState.self) private var appState\n\n  private func indexTagFor(_ index: Int) -> Int? {\n    if open {\n      return index\n    }\n    if index == 0 {\n      return stack.items.count - 1\n    }\n    return nil\n  }\n\n  var body: some View {\n    let maxItems = min(3, stack.items.count)\n    LazyVStack(spacing: 0) {\n      ForEach(Array(stack.items[..<maxItems].enumerated()), id: \\.element.id) { (index, element) in\n        CollapsedStackItem(maxItems: maxItems, index: index, open: open) {\n          PasteStackItemView(\n            stack: self.stack,\n            item: element,\n            index: indexTagFor(index),\n            isSelected: appState.navigator.pasteStackSelected\n          )\n          .opacity(index > 0 ? 0 : 1)\n          .background(\n            appState.navigator.pasteStackSelected\n              ? Color.accentColor.opacity(0.8)\n              : Color(nsColor: .tertiarySystemFill).opacity(0.8)\n          )\n          .background(.thinMaterial)\n          .clipShape(SelectionAppearance.none.rect(cornerRadius: Popup.cornerRadius))\n          .shadow(\n            color: Color(.sRGBLinear, white: 0, opacity: open ? 0 : 0.1),\n            radius: 2,\n            y: 2\n          )\n        }\n      }\n    }\n    .hoverSelectionId(stack.id)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/PinsView.swift",
    "content": "import SwiftUI\n\nstruct PinsView: View {\n  @Environment(AppState.self) private var appState\n\n  var items: [HistoryItemDecorator]\n\n  var body: some View {\n    MultipleSelectionListView(items: items) { previous, item, next, index in\n      HistoryItemView(item: item, previous: previous, next: next, index: index)\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/PreviewItemView.swift",
    "content": "import KeyboardShortcuts\nimport SwiftUI\n\nstruct PreviewItemView: View {\n  var item: HistoryItemDecorator\n\n  @ViewBuilder\n  func previewImage(content: () -> some View) -> some View {\n    content()\n      .aspectRatio(contentMode: .fit)\n      .clipShape(.rect(cornerRadius: 5))\n  }\n\n  var body: some View {\n    VStack(alignment: .leading, spacing: 0) {\n      if item.hasImage {\n        AsyncView<NSImage?, _, _> {\n          return await item.asyncGetPreviewImage()\n        } content: { image in\n          if let image = image {\n            previewImage {\n              Image(nsImage: image)\n                .resizable()\n            }\n          } else {\n            previewImage {\n              ZStack {\n                Color.gray.opacity(0.3)\n                  .frame(\n                    idealWidth: HistoryItemDecorator.previewImageSize.width,\n                    idealHeight: HistoryItemDecorator.previewImageSize.height\n                  )\n                Image(systemName: \"photo.badge.exclamationmark\")\n                  .symbolRenderingMode(.multicolor)\n                  .frame(alignment: .center)\n              }\n            }\n          }\n        } placeholder: {\n          previewImage {\n            ZStack {\n              Color.gray.opacity(0.3)\n                .frame(\n                  idealWidth: HistoryItemDecorator.previewImageSize.width,\n                  idealHeight: HistoryItemDecorator.previewImageSize.height\n                )\n              ProgressView()\n                .frame(alignment: .center)\n            }\n          }\n        }\n      } else {\n        ScrollView {\n          Text(item.text)\n            .font(.body)\n        }\n      }\n\n      Spacer(minLength: 0)\n\n      Divider()\n        .padding(.vertical)\n\n      if let application = item.application {\n        HStack(spacing: 3) {\n          Text(\"Application\", tableName: \"PreviewItemView\")\n          AppImageView(\n            appImage: item.applicationImage,\n            size: NSSize(width: 11, height: 11)\n          )\n          Text(application)\n        }\n      }\n\n      HStack(spacing: 3) {\n        Text(\"FirstCopyTime\", tableName: \"PreviewItemView\")\n        Text(item.item.firstCopiedAt, style: .date)\n        Text(item.item.firstCopiedAt, style: .time)\n      }\n\n      HStack(spacing: 3) {\n        Text(\"LastCopyTime\", tableName: \"PreviewItemView\")\n        Text(item.item.lastCopiedAt, style: .date)\n        Text(item.item.lastCopiedAt, style: .time)\n      }\n\n      HStack(spacing: 3) {\n        Text(\"NumberOfCopies\", tableName: \"PreviewItemView\")\n        Text(String(item.item.numberOfCopies))\n      }\n    }\n    .controlSize(.small)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/SearchFieldView.swift",
    "content": "import SwiftUI\n\nstruct SearchFieldView: View {\n  var placeholder: LocalizedStringKey\n  @Binding var query: String\n\n  @Environment(AppState.self) private var appState\n\n  var body: some View {\n    ZStack {\n      RoundedRectangle(cornerRadius: Popup.cornerRadius, style: .continuous)\n        .fill(Color.secondary)\n        .opacity(0.1)\n        .frame(height: 23)\n\n      HStack {\n        Image(systemName: \"magnifyingglass\")\n          .frame(width: 11, height: 11)\n          .padding(.leading, 5)\n          .opacity(0.8)\n\n        TextField(placeholder, text: $query)\n          .disableAutocorrection(true)\n          .lineLimit(1)\n          .textFieldStyle(.plain)\n          .onSubmit {\n            appState.select()\n          }\n\n        if !query.isEmpty {\n          Button {\n            query = \"\"\n          } label: {\n            Image(systemName: \"xmark.circle.fill\")\n              .frame(width: 11, height: 11)\n              .padding(.trailing, 5)\n          }\n          .buttonStyle(.plain)\n          .opacity(0.9)\n        }\n      }\n    }\n  }\n}\n\n#Preview {\n  return List {\n    SearchFieldView(placeholder: \"search_placeholder\", query: .constant(\"\"))\n    SearchFieldView(placeholder: \"search_placeholder\", query: .constant(\"search\"))\n  }\n  .frame(width: 300)\n  .environment(\\.locale, .init(identifier: \"en\"))\n}\n"
  },
  {
    "path": "Maccy/Views/SlideoutContentView.swift",
    "content": "import SwiftUI\n\nstruct SlideoutContentView: View {\n  @Environment(AppState.self) var appState\n\n  var body: some View {\n    VStack {\n      ToolbarView()\n\n      if let item = appState.navigator.leadHistoryItem {\n        PreviewItemView(item: item)\n      } else if let pasteStack = appState.history.pasteStack,\n        appState.navigator.pasteStackSelected {\n        PasteStackPreviewView(pasteStack: pasteStack)\n      } else {\n        EmptyView()\n      }\n    }\n    .padding(.horizontal)\n    .padding(.bottom)\n    .padding(.top, Popup.verticalPadding)\n  }\n\n}\n"
  },
  {
    "path": "Maccy/Views/SlideoutView.swift",
    "content": "import SwiftUI\n\nprivate struct ConditionalWidthModifier: ViewModifier {\n  var width: CGFloat\n  var condition: Bool\n\n  func body(content: Content) -> some View {\n    if condition {\n      content\n        .frame(width: width)\n    } else {\n      content\n    }\n  }\n}\n\nextension View {\n  fileprivate func conditionalWidth(_ width: CGFloat, condition: Bool)\n    -> some View {\n    self.modifier(\n      ConditionalWidthModifier(width: width, condition: condition)\n    )\n  }\n}\n\nstruct SlideoutView<Content, Slideout>: View\nwhere Content: View, Slideout: View {\n  @Environment(AppState.self) private var appState\n\n  let controller: SlideoutController\n\n  @ViewBuilder var content: () -> Content\n  @ViewBuilder var slideout: () -> Slideout\n\n  var leftToRight: Bool {\n    return controller.placement == .right\n  }\n  var isAnimating: Bool {\n    return controller.state.isAnimating\n  }\n\n  var isContentResizing: Bool {\n    return controller.resizingMode == .content\n  }\n  var isSlideoutResizing: Bool {\n    return controller.resizingMode == .slideout\n  }\n\n  @ViewBuilder\n  private func resizeDivider() -> some View {\n    Divider()\n      .padding(.vertical)\n      .padding(.horizontal, Popup.horizontalPadding)\n      // macOS 26 broke gestures if no background is present.\n      // The slight opcaity white background is a workaround\n      .background(Color.white.opacity(0.001))\n      .onHover(perform: { inside in\n        if let window = appState.appDelegate?.panel {\n          window.isMovableByWindowBackground = !inside\n        }\n        if inside {\n          if #available(macOS 15.0, *) {\n            NSCursor.columnResize.push()\n          } else {\n            NSCursor.resizeLeftRight.push()\n          }\n        } else {\n          NSCursor.pop()\n        }\n      })\n      .gesture(\n        DragGesture()\n          .onChanged({ value in\n            if let window = controller.nswindow {\n              controller.slideoutWidth = min(\n                max(\n                  controller.minimumSlideoutWidth,\n                  controller.slideoutResizeWidth + (leftToRight ? -1 : 1)\n                    * value.translation.width\n                ),\n                window.frame.width - controller.minimumContentWidth\n              )\n              controller.contentWidth = window.frame.width - controller.slideoutWidth\n            }\n          })\n          .onEnded({ _ in\n            controller.slideoutWidth = controller.slideoutResizeWidth\n            controller.contentWidth = controller.contentResizeWidth\n          })\n      )\n      .disabled(controller.state != .open)\n      .frame(maxWidth: 0)\n      .opacity(controller.state != .closed ? 1 : 0)\n  }\n\n  var body: some View {\n    HStack(spacing: 0) {\n      VStack(spacing: 0) {\n        content()\n      }\n      .environment(\\.layoutDirection, .leftToRight)\n      .frame(\n        minWidth: controller.minimumContentWidth,\n        idealWidth: !isContentResizing ? controller.contentWidth.rounded() : nil,\n        alignment: .leading\n      )\n      .frame(\n        width: !isContentResizing ? controller.contentWidth.rounded() : nil\n      )\n      .fixedSize(\n        horizontal: isAnimating || isSlideoutResizing,\n        vertical: false\n      )\n      .readWidth(controller, into: \\.contentResizeWidth)\n\n      resizeDivider()\n\n      VStack(spacing: 0) {\n        slideout()\n          .frame(\n            minWidth: controller.minimumSlideoutWidth,\n            idealWidth: !isSlideoutResizing ? controller.slideoutWidth.rounded() : nil,\n            maxWidth: !isSlideoutResizing ? controller.slideoutWidth.rounded() : nil,\n            alignment: .leading\n          )\n          .conditionalWidth(\n            controller.slideoutWidth.rounded(),\n            condition: isAnimating\n          )\n          .transition(.identity)\n      }\n      .environment(\\.layoutDirection, .leftToRight)\n      .fixedSize(\n        horizontal: isAnimating || isContentResizing,\n        vertical: false\n      )\n      .frame(\n        minWidth: controller.state != .open ? 0 : nil,\n        maxWidth: controller.state == .closed ? 0 : nil\n      )\n      .clipped()\n      .readWidth(controller, into: \\.slideoutResizeWidth)\n    }\n    .environment(\\.layoutDirection, leftToRight ? .leftToRight : .rightToLeft)\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ToolbarView.swift",
    "content": "import Defaults\nimport KeyboardShortcuts\nimport SwiftUI\n\nprivate struct KeyboardShortcutHelpModifier: ViewModifier {\n  let name: KeyboardShortcuts.Name\n  let key: String\n  let tableName: String\n  let comment: String = \"\"\n  let replacementKey: String\n\n  func body(content: Content) -> some View {\n    if let shortcut = KeyboardShortcuts.Shortcut(name: name) {\n      content\n        .help(\n          Text(\n            NSLocalizedString(key, tableName: tableName, comment: comment)\n              .replacingOccurrences(\n                of: \"{\\(replacementKey)}\",\n                with: shortcut.description\n              )\n          )\n        )\n    } else {\n      content\n    }\n  }\n}\n\nstruct ToolbarButton<Label: View>: View {\n  @Environment(AppState.self) private var appState\n\n  let action: @MainActor () -> Void\n  let label: () -> Label\n\n  var body: some View {\n    Button(action: action) {\n      label()\n    }\n    .buttonStyle(.plain)\n    .frame(height: 23)\n    .onHover(perform: { inside in\n      if let window = appState.appDelegate?.panel {\n        window.isMovableByWindowBackground = !inside\n      }\n    })\n  }\n\n  func shortcutKeyHelp(\n    name: KeyboardShortcuts.Name,\n    key: String,\n    tableName: String,\n    replacementKey: String\n  ) -> some View {\n    self.modifier(\n      KeyboardShortcutHelpModifier(\n        name: name,\n        key: key,\n        tableName: tableName,\n        replacementKey: replacementKey\n      )\n    )\n  }\n\n}\n\nstruct ToolbarView: View {\n  @State private var appState = AppState.shared\n\n  @Namespace var unionNamespace\n\n  enum Section: Hashable {\n    case itemOptions\n  }\n\n  private var shouldUnpin: Bool {\n    return appState.navigator.selection.items.allSatisfy { $0.isPinned }\n  }\n\n  private var pinActionDisabled: Bool {\n    return appState.navigator.selection.items.contains { $0.isPinned }\n      && appState.navigator.selection.items.contains { !$0.isPinned }\n  }\n\n  var body: some View {\n    HStack {\n      if !appState.navigator.selection.isEmpty {\n        Spacer()\n\n        ToolbarButton {\n          withAnimation {\n            appState.togglePin()\n          }\n        } label: {\n          if (appState.navigator.selection.items.allSatisfy { $0.isPinned }) {\n            Image(systemName: \"pin.slash\")\n          } else {\n            Image(systemName: \"pin\")\n          }\n        }\n        .shortcutKeyHelp(\n          name: .pin,\n          key: shouldUnpin ? \"UnpinKey\" : \"PinKey\",\n          tableName: \"PreviewItemView\",\n          replacementKey: \"pinKey\"\n        )\n        .disabled(pinActionDisabled)\n\n        ToolbarButton {\n          appState.deleteSelection()\n        } label: {\n          Image(systemName: \"trash\")\n        }\n        .shortcutKeyHelp(\n          name: .delete,\n          key: \"DeleteKey\",\n          tableName: \"PreviewItemView\",\n          replacementKey: \"deleteKey\"\n        )\n      }\n\n      if appState.navigator.pasteStackSelected {\n        ToolbarButton {\n          appState.removePasteStack()\n        } label: {\n          Image(systemName: \"stop\")\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/VisualEffectView.swift",
    "content": "import SwiftUI\n\nstruct VisualEffectView: NSViewRepresentable {\n  let visualEffectView = NSVisualEffectView()\n\n  var material: NSVisualEffectView.Material = .popover\n  var blendingMode: NSVisualEffectView.BlendingMode = .behindWindow\n\n  func makeNSView(context: Context) -> NSVisualEffectView {\n    return visualEffectView\n  }\n\n  func updateNSView(_ view: NSVisualEffectView, context: Context) {\n    visualEffectView.material = material\n    visualEffectView.blendingMode = blendingMode\n  }\n}\n\n@available(macOS 26.0, *)\nstruct GlassEffectView: NSViewRepresentable {\n  let glassEffectView = NSGlassEffectView()\n\n  var style: NSGlassEffectView.Style = .regular\n\n  func makeNSView(context: Context) -> NSGlassEffectView {\n    return glassEffectView\n  }\n\n  func updateNSView(_ view: NSGlassEffectView, context: Context) {\n    glassEffectView.style = style\n  }\n}\n\n#Preview {\n  VisualEffectView(\n    material: .popover,\n    blendingMode: .behindWindow\n  )\n}\n"
  },
  {
    "path": "Maccy/Views/WrappingTextView.swift",
    "content": "import SwiftUI\n\n// A text view that properly wraps single-line content without extra horizontal or vertical spaces.\n// https://www.reddit.com/r/SwiftUI/comments/1gx1w6v/how_to_wrap_a_text_inside_a_macos_popover/\nstruct WrappingTextView: Layout {\n  let maxWidth: CGFloat = 800\n  let targetRatio: CGFloat = 1.2\n\n  func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize {\n    guard let text = subviews.first else {\n      return .zero\n    }\n\n    let maxHeight = NSScreen.main?.visibleFrame.height ?? 1000\n    let textSize = text.sizeThatFits(.unspecified)\n\n    // First, handle width constraints and scaling to targetRatio if needed\n    let width: CGFloat\n    let height: CGFloat\n\n    if textSize.width > maxWidth {\n      // If we need to scale down the width, recalculate height based on targetRatio\n      width = maxWidth\n      let scaledSize = text.sizeThatFits(.init(width: maxWidth, height: nil))\n      height = min(scaledSize.height, maxHeight)\n    } else {\n      width = textSize.width\n      height = min(textSize.height, maxHeight)\n    }\n\n    return CGSize(width: width, height: height)\n  }\n\n  func placeSubviews(\n    in bounds: CGRect,\n    proposal: ProposedViewSize,\n    subviews: Subviews,\n    cache: inout ()\n  ) {\n    guard let text = subviews.first else {\n      return\n    }\n\n    let maxHeight = NSScreen.main?.visibleFrame.height ?? 1000\n    let textSize = text.sizeThatFits(.unspecified)\n\n    // Apply the same width-based scaling logic\n    let scaledSize = textSize.width > maxWidth\n      ? text.sizeThatFits(.init(width: maxWidth, height: nil))\n      : textSize\n\n    let needsScrolling = scaledSize.height > maxHeight\n\n    text.place(\n      at: bounds.origin,\n      proposal: ProposedViewSize(\n        width: bounds.width,\n        height: needsScrolling ? scaledSize.height : bounds.height\n      )\n    )\n  }\n}\n"
  },
  {
    "path": "Maccy/Views/ar.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"التطبيق:\";\n\"FirstCopyTime\" = \"وقت أول نسخة:\";\n\"LastCopyTime\" = \"وقت آخر نسخة:\";\n\"NumberOfCopies\" = \"عدد النسخ:\";\n\"PinKey\" = \"اضغط على {pinKey} للتثبيت أو إلغاء التثبيت.\";\n\"UnpinKey\" = \"اضغط على {pinKey} للتثبيت أو إلغاء التثبيت.\";\n\"DeleteKey\" = \"اضغط على {deleteKey} للحذف.\";\n\"PreviewKey\" = \"اضغط على {previewKey} لتبديل المعاينة.\";\n"
  },
  {
    "path": "Maccy/Views/be.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Дадатак:\";\n\"FirstCopyTime\" = \"Час першага капіявання:\";\n\"NumberOfCopies\" = \"Колькасць капіяванняў:\";\n\"LastCopyTime\" = \"Час апошняга капіявання:\";\n\"PinKey\" = \"Націсніце {pinKey}, каб замацаваць.\";\n\"UnpinKey\" = \"Націсніце {pinKey}, каб адмацаваць.\";\n\"DeleteKey\" = \"Націсніце {deleteKey}, каб выдаліць.\";\n\"PreviewKey\" = \"Націсніце {previewKey} для пераключэння перадпрагляду.\";\n"
  },
  {
    "path": "Maccy/Views/bn.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"\";\n\"FirstCopyTime\" = \"\";\n\"LastCopyTime\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"PinKey\" = \"\";\n\"DeleteKey\" = \"\";\n\"UnpinKey\" = \"\";\n\"PreviewKey\" = \"\";\n"
  },
  {
    "path": "Maccy/Views/bs.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplikacija:\";\n\"FirstCopyTime\" = \"Prvi put kopirano:\";\n\"LastCopyTime\" = \"Zadnji put kopirano:\";\n\"NumberOfCopies\" = \"Broj kopija:\";\n\"PinKey\" = \"Pritisni {pinKey} Odkačiš.\";\n\"UnpinKey\" = \"Pritisni {pinKey} Zakačiš.\";\n\"DeleteKey\" = \"Pritisni {deleteKey} za brisanje.\";\n\"PreviewKey\" = \"Pritisni {previewKey} da uključite/isključite pregled.\";\n"
  },
  {
    "path": "Maccy/Views/ca.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"\";\n\"FirstCopyTime\" = \"\";\n\"LastCopyTime\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"PinKey\" = \"\";\n\"DeleteKey\" = \"\";\n\"UnpinKey\" = \"\";\n\"PreviewKey\" = \"\";\n"
  },
  {
    "path": "Maccy/Views/ckb.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"بەرنامە:\";\n\"FirstCopyTime\" = \"کاتی یەکەم کۆپی:\";\n\"LastCopyTime\" = \"دوایین کاتی کۆپی:\";\n\"NumberOfCopies\" = \"ژمارەی کۆپییەکان:\";\n\"PinKey\" = \"دوگمەی {pinKey} دابگرە بۆ چەسپاندن.\";\n\"UnpinKey\" = \"دوگمەی {pinKey} دابگرە بۆ لابردنی چەسپاندن.\";\n\"DeleteKey\" = \"دوگمەی {deleteKey} دابگرە بۆ سڕینەوە.\";\n\"PreviewKey\" = \"{previewKey} دابگرە بۆ گۆڕینی پێشبینین.\";\n"
  },
  {
    "path": "Maccy/Views/cs.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplikace:\";\n\"FirstCopyTime\" = \"Čas prvního kopírování:\";\n\"LastCopyTime\" = \"Čas posledního kopírování:\";\n\"NumberOfCopies\" = \"Počet kopírování:\";\n\"PinKey\" = \"Stiskni {pinKey} pro připnutí.\";\n\"UnpinKey\" = \"Stiskni {pinKey} pro odepnutí.\";\n\"DeleteKey\" = \"Stiskni {deleteKey} pro smazání.\";\n\"PreviewKey\" = \"Stiskni {previewKey} pro přepnutí náhledu.\";\n"
  },
  {
    "path": "Maccy/Views/de.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Programm:\";\n\"FirstCopyTime\" = \"Zuerst kopiert:\";\n\"LastCopyTime\" = \"Zuletzt kopiert:\";\n\"NumberOfCopies\" = \"Anzahl der Kopien:\";\n\"PinKey\" = \"Drücke {pinKey} zum Anheften.\";\n\"UnpinKey\" = \"Drücke {pinKey} zum Lösen.\";\n\"DeleteKey\" = \"Drücke {deleteKey} zum Löschen.\";\n\"PreviewKey\" = \"Drücke {previewKey} um Vorschau umzuschalten.\";\n"
  },
  {
    "path": "Maccy/Views/el.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"\";\n\"FirstCopyTime\" = \"\";\n\"LastCopyTime\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"PinKey\" = \"\";\n\"DeleteKey\" = \"\";\n\"UnpinKey\" = \"\";\n\"PreviewKey\" = \"\";\n"
  },
  {
    "path": "Maccy/Views/en.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Application:\";\n\"FirstCopyTime\" = \"First copy time:\";\n\"LastCopyTime\" = \"Last copy time:\";\n\"NumberOfCopies\" = \"Number of copies:\";\n\"PinKey\" = \"Press {pinKey} to pin.\";\n\"UnpinKey\" = \"Press {pinKey} to unpin.\";\n\"DeleteKey\" = \"Press {deleteKey} to delete.\";\n\"PreviewKey\" = \"Press {previewKey} to toggle preview.\";\n"
  },
  {
    "path": "Maccy/Views/eo.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplikaĵo:\";\n\"FirstCopyTime\" = \"Unue kopiita:\";\n\"LastCopyTime\" = \"Laste kopiita:\";\n\"NumberOfCopies\" = \"Nombro de kopioj:\";\n\"PinKey\" = \"Premu {pinKey} por fiksi.\";\n\"DeleteKey\" = \"Premu {deleteKey} por forigi.\";\n\"UnpinKey\" = \"Premu {pinKey} por malfiksi.\";\n\"PreviewKey\" = \"\";\n"
  },
  {
    "path": "Maccy/Views/es.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplicación:\";\n\"FirstCopyTime\" = \"Hora de la primera copia:\";\n\"LastCopyTime\" = \"Hora de la última copia:\";\n\"NumberOfCopies\" = \"Número de copias:\";\n\"PinKey\" = \"Presiona {pinKey} para anclar.\";\n\"UnpinKey\" = \"Presiona {pinKey} para desanclar.\";\n\"DeleteKey\" = \"Presiona {deleteKey} para borrar.\";\n\"PreviewKey\" = \"Presiona {previewKey} para alternar la vista previa.\";\n"
  },
  {
    "path": "Maccy/Views/fa.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"اپلیکیشن:\";\n\"FirstCopyTime\" = \"زمان اولین کپی:\";\n\"LastCopyTime\" = \"آخرین زمان کپی:\";\n\"NumberOfCopies\" = \"تعداد کپی‌ها:\";\n\"PinKey\" = \"برای سنجاق کردن، کلید {pinKey} را فشار دهید.\";\n\"DeleteKey\" = \"برای حذف، کلید {deleteKey} را فشار دهید.\";\n\"UnpinKey\" = \"برای برداشتن سنجاق، کلید {pinKey} را فشار دهید.\";\n\"PreviewKey\" = \"{previewKey} را فشار دهید تا پیش‌نمایش تغییر کند.\";\n"
  },
  {
    "path": "Maccy/Views/fr.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Application :\";\n\"FirstCopyTime\" = \"Date de la première copie :\";\n\"LastCopyTime\" = \"Date de la dernière copie :\";\n\"NumberOfCopies\" = \"Nombre de copies :\";\n\"PinKey\" = \"Appuyez sur {pinKey} pour épingler.\";\n\"UnpinKey\" = \"Appuyez sur {pinKey} pour épingler.\";\n\"DeleteKey\" = \"Appuyez sur {deleteKey} pour supprimer.\";\n\"PreviewKey\" = \"Appuyez sur {previewKey} pour basculer l'aperçu.\";\n"
  },
  {
    "path": "Maccy/Views/he.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"יישום:\";\n\"FirstCopyTime\" = \"מועד ההעתקה הראשונה:\";\n\"LastCopyTime\" = \"מועד ההעתקה האחרונה:\";\n\"NumberOfCopies\" = \"מספר העותקים:\";\n\"PinKey\" = \"יש ללחוץ על {pinKey} כדי לנעוץ / לשחרר.\";\n\"UnpinKey\" = \"יש ללחוץ על {pinKey} כדי לנעוץ / לשחרר.\";\n\"DeleteKey\" = \"יש ללחוץ על {deleteKey} כדי למחוק.\";\n\"PreviewKey\" = \"לחץ על {previewKey} כדי להחליף תצוגה מקדימה.\";\n"
  },
  {
    "path": "Maccy/Views/hi.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"\";\n\"FirstCopyTime\" = \"\";\n\"LastCopyTime\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"PinKey\" = \"\";\n\"DeleteKey\" = \"\";\n\"UnpinKey\" = \"\";\n\"PreviewKey\" = \"\";\n"
  },
  {
    "path": "Maccy/Views/hr.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Program:\";\n\"FirstCopyTime\" = \"Vrijeme prve kopije:\";\n\"LastCopyTime\" = \"Vrijeme zadnje kopije:\";\n\"NumberOfCopies\" = \"Broj kopija:\";\n\"PinKey\" = \"Pritisnite {pinKey} za prikvačivanje.\";\n\"UnpinKey\" = \"Pritisnite {pinKey} za otkvačivanje.\";\n\"DeleteKey\" = \"Pritisnite {deleteKey} za brisanje.\";\n\"PreviewKey\" = \"Pritisnite {previewKey} za uključivanje/isključivanje pregleda.\";\n"
  },
  {
    "path": "Maccy/Views/hu.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Alkalmazás:\";\n\"FirstCopyTime\" = \"Első másolás ideje:\";\n\"LastCopyTime\" = \"Utolsó másolás ideje:\";\n\"NumberOfCopies\" = \"Másolások száma:\";\n\"PinKey\" = \"Nyomd meg a {pinKey} gombokat a kitűzéshez és a kitűzés levételéhez.\";\n\"UnpinKey\" = \"Nyomd meg a {pinKey} gombokat a kitűzés levételéhez.\";\n\"DeleteKey\" = \"Nyomd meg a {deleteKey} gombokat a törléshez.\";\n\"PreviewKey\" = \"Nyomja meg a {previewKey} gombot az előnézet váltásához.\";\n"
  },
  {
    "path": "Maccy/Views/id.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplikasi:\";\n\"FirstCopyTime\" = \"Salinan pertama:\";\n\"LastCopyTime\" = \"Salinan terakhir:\";\n\"NumberOfCopies\" = \"Jumlah salinan:\";\n\"PinKey\" = \"Tekan tombol {pinKey} untuk pin.\";\n\"DeleteKey\" = \"Tekan tombol {deleteKey} untuk menghapus.\";\n\"UnpinKey\" = \"Tekan tombol {pinKey} untuk melepas pin.\";\n\"PreviewKey\" = \"Tekan tombol {previewKey} untuk beralih pratinjau.\";\n"
  },
  {
    "path": "Maccy/Views/it.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Applicazione:\";\n\"FirstCopyTime\" = \"Tempo della prima copia:\";\n\"LastCopyTime\" = \"Tempo dell'ultima copia:\";\n\"NumberOfCopies\" = \"Numero di copie:\";\n\"PinKey\" = \"Premi {pinKey} per bloccare.\";\n\"UnpinKey\" = \"Premi {pinKey} per sbloccare.\";\n\"DeleteKey\" = \"Premi {deleteKey} per cancellare.\";\n\"PreviewKey\" = \"Premi {previewKey} per attivare/disattivare l'anteprima.\";\n"
  },
  {
    "path": "Maccy/Views/ja.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"アプリケーション:\";\n\"FirstCopyTime\" = \"最初にコピーした日時:\";\n\"LastCopyTime\" = \"最後にコピーした日時:\";\n\"NumberOfCopies\" = \"コピー回数:\";\n\"PinKey\" = \"{pinKey}でピン留めします。\";\n\"DeleteKey\" = \"{deleteKey}で削除します。\";\n\"UnpinKey\" = \"{pinKey}でピン留めを外します。\";\n\"PreviewKey\" = \"{previewKey}でプレビューを切り替えます。\";\n"
  },
  {
    "path": "Maccy/Views/ko.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"어플리케이션:\";\n\"FirstCopyTime\" = \"처음 복사한 시간:\";\n\"LastCopyTime\" = \"마지막 복사한 시간:\";\n\"NumberOfCopies\" = \"복사 횟수:\";\n\"PinKey\" = \"{pinKey}를 눌러 고정(해제)합니다.\";\n\"UnpinKey\" = \"{pinKey}를 눌러 고정(해제)합니다.\";\n\"DeleteKey\" = \"{deleteKey}를 눌러 제거합니다.\";\n\"PreviewKey\" = \"{previewKey}를 눌러 미리보기를 전환합니다.\";\n"
  },
  {
    "path": "Maccy/Views/lt.lproj/PreviewItemView.strings",
    "content": "\"FirstCopyTime\" = \"Pirmojo kopijavimo laikas:\";\n\"LastCopyTime\" = \"Paskutinio kopijavimo laikas:\";\n\"DeleteKey\" = \"Paspauskite {deleteKey}, kad ištrintumėte.\";\n\"Application\" = \"Programa:\";\n\"NumberOfCopies\" = \"Kopijų skaičius:\";\n\"PinKey\" = \"Paspauskite {pinKey}, kad prisegtumėte.\";\n\"UnpinKey\" = \"Paspauskite {pinKey}, kad neprisegtumėte.\";\n\"PreviewKey\" = \"Paspauskite {previewKey} peržiūrai perjungti.\";\n"
  },
  {
    "path": "Maccy/Views/lv.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Lietotne:\";\n\"FirstCopyTime\" = \"Pirmās kopēšanas laiks:\";\n\"LastCopyTime\" = \"Pēdējās kopēšanas laiks:\";\n\"NumberOfCopies\" = \"Kopiju skaits:\";\n\"PinKey\" = \"Nospiediet {pinKey}, lai piespraust.\";\n\"UnpinKey\" = \"Nospiediet {pinKey}, lai atspraust.\";\n\"DeleteKey\" = \"Nospiediet {deleteKey}, lai dzēstu.\";\n\"PreviewKey\" = \"Nospiediet {previewKey}, lai pārslēgtu priekšskatījumu.\";\n"
  },
  {
    "path": "Maccy/Views/nb.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Applikasjon:\";\n\"FirstCopyTime\" = \"Tidspunkt første kopiering:\";\n\"LastCopyTime\" = \"Tidspunkt siste kopiering:\";\n\"NumberOfCopies\" = \"Antall ganger kopiert:\";\n\"PinKey\" = \"Trykk {pinKey} for å merke.\";\n\"UnpinKey\" = \"Trykk {pinKey} for å avmerke.\";\n\"DeleteKey\" = \"Trykk {deleteKey} for å slette.\";\n\"PreviewKey\" = \"Trykk {previewKey} for å veksle forhåndsvisning.\";\n"
  },
  {
    "path": "Maccy/Views/nl.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"App:\";\n\"FirstCopyTime\" = \"Eerste kopie:\";\n\"LastCopyTime\" = \"Laatste kopie:\";\n\"NumberOfCopies\" = \"Aantal kopieën:\";\n\"PinKey\" = \"Druk op {pinKey} om te pinnen.\";\n\"UnpinKey\" = \"Druk op {pinKey} om te ontpinnen.\";\n\"DeleteKey\" = \"Druk op {deleteKey} om te verwijderen.\";\n\"PreviewKey\" = \"Druk op {previewKey} om voorbeeld te schakelen.\";\n"
  },
  {
    "path": "Maccy/Views/pl.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplikacja:\";\n\"FirstCopyTime\" = \"Skopiowano:\";\n\"LastCopyTime\" = \"Ostatnio skopiowano:\";\n\"NumberOfCopies\" = \"Liczba kopii:\";\n\"PinKey\" = \"Naciśnij {pinKey} aby przypiąć wpis.\";\n\"UnpinKey\" = \"Naciśnij {pinKey} aby odpiąć wpis.\";\n\"DeleteKey\" = \"Naciśnij {deleteKey} aby usunąć wpis.\";\n\"PreviewKey\" = \"Naciśnij {previewKey}, aby przełączyć podgląd.\";\n"
  },
  {
    "path": "Maccy/Views/pt-BR.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplicação:\";\n\"FirstCopyTime\" = \"Data da primeira cópia:\";\n\"LastCopyTime\" = \"Data da última cópia:\";\n\"NumberOfCopies\" = \"Número de cópias:\";\n\"PinKey\" = \"Pressione {pinKey} para fixar.\";\n\"UnpinKey\" = \"Pressione {pinKey} para desafixar.\";\n\"DeleteKey\" = \"Pressione {deleteKey} para excluir.\";\n\"PreviewKey\" = \"Pressione {previewKey} para alternar a pré-visualização.\";\n"
  },
  {
    "path": "Maccy/Views/pt.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplicação:\";\n\"FirstCopyTime\" = \"Data da primeira cópia:\";\n\"LastCopyTime\" = \"Data da última cópia:\";\n\"PinKey\" = \"Pressione {pinKey} para fixar.\";\n\"DeleteKey\" = \"Pressione {deleteKey} para apagar.\";\n\"NumberOfCopies\" = \"Quantidade de cópias:\";\n\"UnpinKey\" = \"Pressione {pinKey} para desafixar.\";\n\"PreviewKey\" = \"Pressione {previewKey} para alternar a pré-visualização.\";\n"
  },
  {
    "path": "Maccy/Views/ro.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Aplicație:\";\n\"FirstCopyTime\" = \"Data primei copii:\";\n\"LastCopyTime\" = \"Data ultimei copii:\";\n\"NumberOfCopies\" = \"Numărul de copii:\";\n\"PinKey\" = \"Apasă {pinKey} pentru a fixa.\";\n\"UnpinKey\" = \"Apasă {pinKey} pentru a detașa.\";\n\"DeleteKey\" = \"Apasă {deleteKey} pentru a șterge.\";\n\"PreviewKey\" = \"Apasă {previewKey} pentru a comuta previzualizarea.\";\n"
  },
  {
    "path": "Maccy/Views/ru.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Приложение:\";\n\"FirstCopyTime\" = \"Время первого копирования:\";\n\"LastCopyTime\" = \"Время последнего копирования:\";\n\"NumberOfCopies\" = \"Количество копирований:\";\n\"PinKey\" = \"Нажмите {pinKey}, чтобы прикрепить.\";\n\"UnpinKey\" = \"Нажмите {pinKey}, чтобы открепить.\";\n\"DeleteKey\" = \"Нажмите {deleteKey}, чтобы удалить.\";\n\"PreviewKey\" = \"Нажмите {previewKey} для переключения предпросмотра.\";\n"
  },
  {
    "path": "Maccy/Views/sl.lproj/PreviewItemView.strings",
    "content": "\"DeleteKey\" = \"Pritisnite {deleteKey} za brisanje.\";\n\"Application\" = \"Aplikacija:\";\n\"FirstCopyTime\" = \"Čas prvega kopiranja:\";\n\"NumberOfCopies\" = \"Število kopiranj:\";\n\"LastCopyTime\" = \"Čas zadnjega kopiranja:\";\n\"PinKey\" = \"Pritisnite {pinKey} za zapenjanje.\";\n\"UnpinKey\" = \"Pritisnite {pinKey} za odzapenjanje.\";\n\"PreviewKey\" = \"Pritisnite {previewKey} za preklop predogleda.\";\n"
  },
  {
    "path": "Maccy/Views/sv.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"\";\n\"FirstCopyTime\" = \"\";\n\"LastCopyTime\" = \"\";\n\"NumberOfCopies\" = \"\";\n\"PinKey\" = \"\";\n\"UnpinKey\" = \"\";\n\"DeleteKey\" = \"\";\n\"PreviewKey\" = \"\";\n"
  },
  {
    "path": "Maccy/Views/ta.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"பயன்பாடு:\";\n\"FirstCopyTime\" = \"முதல் நகல் நேரம்:\";\n\"LastCopyTime\" = \"கடைசி நகல் நேரம்:\";\n\"NumberOfCopies\" = \"பிரதிகளின் எண்ணிக்கை:\";\n\"PinKey\" = \"{pinKey} பெறுநர் முள் அழுத்தவும்.\";\n\"DeleteKey\" = \"நீக்க {deleteKey} ஐ அழுத்தவும்.\";\n\"UnpinKey\" = \"முள்ளை அகற்ற {pinKey} ஐ அழுத்தவும்.\";\n\"PreviewKey\" = \"முன்னோட்டத்தை மாற்ற {previewKey} அழுத்தவும்.\";\n"
  },
  {
    "path": "Maccy/Views/th.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"แอปพลิเคชัน:\";\n\"FirstCopyTime\" = \"เวลาคัดลอกครั้งแรก:\";\n\"LastCopyTime\" = \"เวลาคัดลอกสุดท้าย:\";\n\"NumberOfCopies\" = \"จำนวนการคัดลอก:\";\n\"PinKey\" = \"กด {pinKey} เพื่อปักหมุด\";\n\"UnpinKey\" = \"กด {pinKy} เพื่อลบเข็มกลัด\";\n\"DeleteKey\" = \"กด {deleteKey} เพื่อลบ\";\n\"PreviewKey\" = \"กด {previewKey} เพื่อสลับตัวอย่าง\";\n"
  },
  {
    "path": "Maccy/Views/tr.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Uygulama:\";\n\"FirstCopyTime\" = \"İlk kopyalama zamanı:\";\n\"LastCopyTime\" = \"Son kopyalama zamanı:\";\n\"NumberOfCopies\" = \"Kopya sayısı:\";\n\"PinKey\" = \"İğnelemek için {pinKey}'a basın.\";\n\"UnpinKey\" = \"Kaldırmak için {pinKey}'a basın.\";\n\"DeleteKey\" = \"Silmek için {deleteKey}'a basın.\";\n\"PreviewKey\" = \"Önizlemeyi değiştirmek için {previewKey} tuşuna basın.\";\n"
  },
  {
    "path": "Maccy/Views/uk.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Додаток:\";\n\"FirstCopyTime\" = \"Час першої копії:\";\n\"LastCopyTime\" = \"Час останньої копії:\";\n\"NumberOfCopies\" = \"Кількість копій:\";\n\"PinKey\" = \"Натисніть {pinKey}, щоб кріпити.\";\n\"UnpinKey\" = \"Натисніть {pinKey}, щоб відкріпити.\";\n\"DeleteKey\" = \"Натисніть {deleteKey}, щоб видалити.\";\n\"PreviewKey\" = \"Натисніть {previewKey} для перемикання попереднього перегляду.\";\n"
  },
  {
    "path": "Maccy/Views/uz.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Dastur:\";\n\"FirstCopyTime\" = \"Nusxalangan vaqti:\";\n\"LastCopyTime\" = \"Oxirgi nusxa olingan vaqti:\";\n\"NumberOfCopies\" = \"Nusxalar jami soni:\";\n\"PinKey\" = \"Biriktirish uchun {pinKey} tugmasini bosing.\";\n\"UnpinKey\" = \"Biriktirishni o‘chirish uchun {pinKey} tugmasini bosing.\";\n\"DeleteKey\" = \"O‘chirish uchun {deleteKey} tugmasini bosing.\";\n\"PreviewKey\" = \"Oldindan ko'rishni yoqish/o'chirish uchun {previewKey} tugmasini bosing.\";\n"
  },
  {
    "path": "Maccy/Views/vi.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"Ứng dụng:\";\n\"FirstCopyTime\" = \"Sao chép lần đầu:\";\n\"LastCopyTime\" = \"Sao chép lần cuối:\";\n\"NumberOfCopies\" = \"Số lần sao chép:\";\n\"PinKey\" = \"Nhấn {pinKey} để ghim.\";\n\"UnpinKey\" = \"Nhấn {pinKey} để bỏ ghim.\";\n\"DeleteKey\" = \"Nhấn {deleteKey} để xóa.\";\n\"PreviewKey\" = \"Nhấn {previewKey} để chuyển đổi xem trước.\";\n"
  },
  {
    "path": "Maccy/Views/zh-Hans.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"应用:\";\n\"FirstCopyTime\" = \"首次复制时间:\";\n\"LastCopyTime\" = \"上次复制时间:\";\n\"NumberOfCopies\" = \"复制次数:\";\n\"PinKey\" = \"按 {pinKey} (取消)固定。\";\n\"UnpinKey\" = \"按 {pinKey} (取消)固定。\";\n\"DeleteKey\" = \"按 {deleteKey} 删除。\";\n\"PreviewKey\" = \"按 {previewKey} 切换预览。\";\n"
  },
  {
    "path": "Maccy/Views/zh-Hant.lproj/PreviewItemView.strings",
    "content": "\"Application\" = \"應用:\";\n\"FirstCopyTime\" = \"首次拷貝時間:\";\n\"LastCopyTime\" = \"上次拷貝時間:\";\n\"NumberOfCopies\" = \"拷貝次數:\";\n\"PinKey\" = \"按 {pinKey} (取消)固定。\";\n\"UnpinKey\" = \"按 {pinKey} (取消)固定。\";\n\"DeleteKey\" = \"按 {deleteKey} 刪除。\";\n\"PreviewKey\" = \"按 {previewKey} 切換預覽。\";\n"
  },
  {
    "path": "Maccy/ar.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"اكتب للبحث…\";\n\"clear_tooltip\" = \"امسح العناصر غير المثبتة.\\nاختر باستخدام ⇧ لمسح الكل.\";\n\"clear_all_tooltip\" = \"مسح كافة العناصر.\";\n\"about_tooltip\" = \"اقرأ المزيد عن التطبيق.\";\n\"quit_tooltip\" = \"قم بإنهاء التطبيق.\";\n\"clear\" = \"امسح\";\n\"clear_all\" = \"امسح الكل\";\n\"about\" = \"عن\";\n\"quit\" = \"إغلاق\";\n\"preferences\" = \"التفضيلات…\";\n\"preferences_advanced\" = \"متقدم\";\n\"preferences_pins\" = \"مثبتة\";\n\"copy_modifiers_config\" = \"• حدد مع الضغط على %@ لنسخ العنصر.\";\n\"paste_modifiers_config\" = \"• حدد مع الضغط على %@ لنسخ العنصر ولصقه.\";\n\"format_modifiers_config\" = \"• حدد مع الضغط على %@ للنسخ ومسح التنسيق ولصق العنصر.\";\n\"accessibility_alert_message\" = \"“\\\"Maccy\\\" يرغب في التحكم في هذا الكمبيوتر باستخدام ميزات إمكانية الوصول.\";\n\"accessibility_alert_comment\" = \"امنح حق الوصول إلى هذا التطبيق في {الجزء}، الموجود في {الإعدادات}.\\n\\nانقر على الزر +، وحدد Maccy ثم قم بالتبديل على مربع الاختيار المجاور له.\";\n\"accessibility_alert_deny\" = \"رفض\";\n\"accessibility_alert_open\" = \"افتح تفضيلات النظام\";\n\"clear_alert_message\" = \"هل أنت متأكد أنك تريد مسح سجل التاريخ؟\";\n\"clear_alert_comment\" = \"لا يمكنك التراجع عن هذا الإجراء.\";\n\"clear_alert_cancel\" = \"إلغاء\";\n\"clear_alert_confirm\" = \"مسح\";\n\"key_used_error\" = \"المفتاح مستخدم بالفعل.\";\n\"active_screen\" = \"شاشة نشطة\";\n\"screen\" = \"شاشة\";\n\"system_settings_name\" = \"اعدادات النظام\";\n\"system_settings_pane\" = \"إعدادات الخصوصية والأمان\";\n\"system_preferences_name\" = \"تفضيلات النظام\";\n\"system_preferences_pane\" = \"تفضيلات الأمان والخصوصية\";\n"
  },
  {
    "path": "Maccy/be.lproj/Localizable.strings",
    "content": "\"about_tooltip\" = \"Даведацца больш аб дадатку.\";\n\"quit_tooltip\" = \"Выйсці з дадатку.\";\n\"clear\" = \"Ачысціць\";\n\"clear_all\" = \"Ачысціць усё\";\n\"about\" = \"Аб дадатку\";\n\"quit\" = \"Зачыніць дадатак\";\n\"preferences\" = \"Налады…\";\n\"preferences_advanced\" = \"Прасунутыя\";\n\"preferences_pins\" = \"Замацаваныя\";\n\"copy_modifiers_config\" = \"• Выберыце, націснуўшы %@, каб скапіяваць элемент.\";\n\"paste_modifiers_config\" = \"• Выберыце, націснуўшы %@, каб скапіяваць і ўставіць элемент.\";\n\"format_modifiers_config\" = \"• Выберыце, націснуўшы %@, каб скапіяваць, ачысціць фарматаванне і ўставіць элемент.\";\n\"accessibility_alert_message\" = \"«Maccy» хацеў бы кіраваць гэтым кампутарам ужываючы функцыі магчымасці доступу.\";\n\"accessibility_alert_comment\" = \"Дазвольце доступ гэтаму дадатку ў наладах {pane} у {settings}.\\n\\nНацісніце кнопку «+», абярыце «Maccy» і ўсталюйце сцяжок побач з ім.\";\n\"accessibility_alert_deny\" = \"Адмовіць\";\n\"accessibility_alert_open\" = \"Адкрыйце «Сістэмныя налады»\";\n\"clear_alert_message\" = \"Вы сапраўды хочаце ачысціць гісторыю?\";\n\"clear_alert_comment\" = \"Вы не можаце адмяніць гэта дзеянне.\";\n\"clear_alert_cancel\" = \"Адмяніць\";\n\"clear_alert_confirm\" = \"Ачысціць\";\n\"key_used_error\" = \"Клавіша ўжо выкарыстоўваецца.\";\n\"active_screen\" = \"Актыўны экран\";\n\"screen\" = \"Экран\";\n\"system_settings_pane\" = \"«Налады прыватнасці і бяспекі»\";\n\"system_preferences_pane\" = \"«Налады прыватнасці і бяспекі»\";\n\"system_settings_name\" = \"Сістэмных наладах\";\n\"search_placeholder\" = \"пачніце пісаць для пошуку…\";\n\"clear_tooltip\" = \"Ачысціць незамацаваныя элементы.\\nВыберыце з ⇧, каб выдаліць усе.\";\n\"clear_all_tooltip\" = \"Ачысціць усе элементы.\";\n\"system_preferences_name\" = \"Сістэмных наладах\";\n"
  },
  {
    "path": "Maccy/bn.lproj/Localizable.strings",
    "content": "\"clear_all_tooltip\" = \"সমস্ত আইটেম মুছুন।\";\n\"quit_tooltip\" = \"অ্যাপলিকেশনটি বন্ধ করুন।\";\n\"clear\" = \"মুছুন\";\n\"clear_all\" = \"সবগুলো মুছুন\";\n\"about\" = \"সম্পর্ক\";\n\"quit\" = \"বন্ধ\";\n\"preferences\" = \"পছন্দসমূহ…\";\n\"preferences_advanced\" = \"অত্যাধুনিক উন্নত\";\n\"preferences_pins\" = \"পিনগুলো\";\n\"copy_modifiers_config\" = \"• আইটেম কপি করতে %@ চাপ দিয়ে নির্বাচন করুন।\";\n\"accessibility_alert_comment\" = \"{settings}-এ অবস্থিত {pane}-এ এই অ্যাপ্লিকেশনটিতে অ্যাক্সেস মঞ্জুর করুন৷\\n\\n+ বোতামে ক্লিক করুন, Maccy নির্বাচন করুন এবং এর পাশের চেকবক্সে টগল করুন।\";\n\"clear_alert_comment\" = \"আপনি এই কাজটি করতে পারবেন না।\";\n\"clear_alert_cancel\" = \"বাতিল করুন\";\n\"clear_alert_confirm\" = \"মুছুন\";\n\"key_used_error\" = \"কি ইতিমধ্যে ব্যবহার করা হয়েছে।\";\n\"active_screen\" = \"সক্রিয় স্ক্রিন\";\n\"system_settings_pane\" = \"গোপনীয়তা এবং নিরাপত্তা সেটিংস\";\n\"system_preferences_name\" = \"সিস্টেম পছন্দসমূহ\";\n\"system_preferences_pane\" = \"নিরাপত্তা এবং গোপনীয়তা পছন্দ\";\n\"search_placeholder\" = \"খুঁজতে টাইপ করুন…\";\n\"clear_tooltip\" = \"আনপিন করা আইটেমগুলি মুছুন।\\nসব মুছতে ⇧ দিয়ে নির্বাচন করুন।\";\n\"about_tooltip\" = \"অ্যাপলিকেশন সম্পর্কে আরো পড়ুন।\";\n\"paste_modifiers_config\" = \"• আইটেম কপি এবং পেস্ট করতে %@ চাপ দিয়ে নির্বাচন করুন।\";\n\"format_modifiers_config\" = \"• অনুলিপি করতে %@ চাপ দিয়ে নির্বাচন করুন, বিন্যাস পরিষ্কার করুন এবং আইটেম পেস্ট করুন।\";\n\"accessibility_alert_open\" = \"সিস্টেম পছন্দগুলি খুলুন\";\n\"accessibility_alert_message\" = \"\\\"Maccy\\\" অ্যাক্সেসিবিলিটি বৈশিষ্ট্যগুলি ব্যবহার করে এই কম্পিউটারটিকে নিয়ন্ত্রণ করতে চায়।\";\n\"accessibility_alert_deny\" = \"অস্বীকার\";\n\"clear_alert_message\" = \"আপনি কি নিশ্চিত আপনি ইতিহাস মুছে ফেলতে চান?\";\n\"system_settings_name\" = \"সিস্টেম সেটিংস\";\n\"screen\" = \"স্ক্রিন\";\n"
  },
  {
    "path": "Maccy/bs.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"počni kucati za pretragu…\";\n\"clear_tooltip\" = \"Očisti sve stavke.\\nOznači sa ⇧ da očistiš sve.\";\n\"clear_all_tooltip\" = \"Očisti sve stavke.\";\n\"about_tooltip\" = \"Pročitaj više o aplikaciji.\";\n\"quit_tooltip\" = \"Ugasi aplikaciju.\";\n\"clear\" = \"Očisti\";\n\"clear_all\" = \"Očisti sve\";\n\"about\" = \"O Aplikaciji\";\n\"quit\" = \"Zatvori\";\n\"preferences\" = \"Podešavanja…\";\n\"preferences_advanced\" = \"Napredno\";\n\"preferences_pins\" = \"Zakačke\";\n\"copy_modifiers_config\" = \"• Označi sa %@ da kopiraš stavku.\";\n\"paste_modifiers_config\" = \"• Označi sa %@ da kopiraš i zalijepiš stavku.\";\n\"format_modifiers_config\" = \"• Označi sa %@ kopiraš, očistiš formatiranje i zalijepiš stavku.\";\n\"accessibility_alert_message\" = \"“Maccy” želi da kontroliše ovaj računar koristeći funkcije pristupačnosti.\";\n\"accessibility_alert_comment\" = \"Odobrite pristup ovoj aplikaciji u postavkama {pane}, koje se nalaze u {settings}.\\n\\nKliknite na dugme +, izaberite Maccy i potvrdite izbor u polju za potvrdu pored njega.\";\n\"accessibility_alert_deny\" = \"Nemoj dozvoliti\";\n\"accessibility_alert_open\" = \"Otvori Sistemska podešavanja\";\n\"clear_alert_message\" = \"Da li ste sigurni?\";\n\"clear_alert_comment\" = \"Ne možeš povratiti ovu radnju.\";\n\"clear_alert_cancel\" = \"Odustani\";\n\"clear_alert_confirm\" = \"Očisti\";\n\"key_used_error\" = \"Tipka je več u upotrebi.\";\n\"active_screen\" = \"Aktivni zaslon\";\n\"screen\" = \"Zaslon\";\n\"system_settings_name\" = \"Postavki sustava\";\n\"system_settings_pane\" = \"Privatnosti i sigurnosti\";\n\"system_preferences_name\" = \"Postavki sustava\";\n\"system_preferences_pane\" = \"Sigurnosti i privatnosti\";\n"
  },
  {
    "path": "Maccy/ca.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"comença a escriure per buscar…\";\n\"about_tooltip\" = \"Llegeix més sobre l'aplicació.\";\n\"quit_tooltip\" = \"Tanca l'aplicació.\";\n\"clear\" = \"Neteja\";\n\"clear_all\" = \"Neteja tots\";\n\"about\" = \"Sobre\";\n\"quit\" = \"Tanca\";\n\"preferences\" = \"Preferències…\";\n\"preferences_advanced\" = \"Avançat\";\n\"preferences_pins\" = \"Fixats\";\n\"paste_modifiers_config\" = \"• Selecciona pressionant %@ per copiar i enganxar l'element.\";\n\"copy_modifiers_config\" = \"• Selecciona pressionant %@ per copiar element.\";\n\"accessibility_alert_message\" = \"“Maccy” demana accés per controlar aquest ordinador mitjançant les funcionalitats d'accessibilitat.\";\n\"accessibility_alert_deny\" = \"Denegar\";\n\"accessibility_alert_open\" = \"Obre les Preferències del Sistema\";\n\"clear_alert_message\" = \"Estàs segur que vols esborrar l'històric?\";\n\"clear_tooltip\" = \"Neteja elements no fixats.\\nSelecciona amb ⇧ per netejar tots els elements.\";\n\"accessibility_alert_comment\" = \"Dóna accés a aquesta aplicació al {panell}, dins els {ajustaments}.\\n\\nFes clic al botó +, selecciona Maccy, i confirma la casella de selecció al costat d'aquest.\";\n\"clear_all_tooltip\" = \"Neteja tots els elements.\";\n\"format_modifiers_config\" = \"• Selecciona pressionant %@ per copiar, netejar-ne el format i enganxar l'element.\";\n\"clear_alert_comment\" = \"Aquesta acció no és pot desfer.\";\n\"clear_alert_cancel\" = \"Anul·lar\";\n\"clear_alert_confirm\" = \"Esborra\";\n\"key_used_error\" = \"Clau ja utilitzada.\";\n\"active_screen\" = \"Pantalla activa\";\n\"screen\" = \"Pantalla\";\n\"system_settings_name\" = \"Ajustaments del Sistema\";\n\"system_settings_pane\" = \"Ajustaments de Privacitat & Seguretat\";\n\"system_preferences_name\" = \"Ajustaments del Sistema\";\n\"system_preferences_pane\" = \"Ajustaments de Seguretat & Privacitat\";\n"
  },
  {
    "path": "Maccy/ckb.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"بنووسە بۆ گەڕان…\";\n\"clear_tooltip\" = \"پاککردنەوەی ئایتەمە دەستنەکراوەکان.\\nهەڵبژێرە لەگەڵ ⇧ بۆ پاککردنەوەی هەموو.\";\n\"clear_all_tooltip\" = \"پاککردنەوەی هەموو ئایتەمەکان.\";\n\"about_tooltip\" = \"زیاتر بخوێنەرەوە دەربارەی ئەپلیکەیشنەکە.\";\n\"quit_tooltip\" = \"چوونە دەرەوە لە ئەپلیکەیشنەکە.\";\n\"clear\" = \"پاککردنەوە\";\n\"clear_all\" = \"پاککردنەوەی هەموو\";\n\"about\" = \"دەربارە\";\n\"quit\" = \"چوونە دەرەوە\";\n\"preferences\" = \"رێکخستنەکان…\";\n\"preferences_advanced\" = \"رێکخستنە پێشکەوتووەکان\";\n\"preferences_pins\" = \"دەستکراوەکان\";\n\"copy_modifiers_config\" = \"• هەڵبژێرە لەگەڵ پەنجەدانان لەسەر %@ بۆ کۆپیکردنی ئایتەمەکە.\";\n\"paste_modifiers_config\" = \"• هەڵبژێرە لەگەڵ پەنجەدانان لەسەر %@ بۆ کۆپی و پاستکردنی ئایتەمەکە.\";\n\"format_modifiers_config\" = \"• هەڵبژێرە لەگەڵ پەنجەدانان لەسەر %@ بۆ کۆپیکردن، پاککردنەوەی فۆرمات و پاستکردنی ئایتەمەکە.\";\n\"accessibility_alert_message\" = \"“Maccy” دەیەوێت کۆنترۆڵی ئەم کۆمپیوتەرە بکات بە بەکارهێنانی تایبەتمەندییە دەستڕاگەیشتنەکان.\";\n\"accessibility_alert_comment\" = \"دەستڕاگەیشتن بدە بەم ئەپلیکەیشنە لە {pane}، کە لە {settings} دایە.\\n\\nکلیک لەسەر دوگمەی +، Maccy هەڵبژێرە، و سندوقچەکەی تەنیشتی چالاک بکە.\";\n\"accessibility_alert_deny\" = \"ڕەتکردنەوە\";\n\"accessibility_alert_open\" = \"کردنەوەی رێکخستنەکانی سیستەم\";\n\"clear_alert_message\" = \"دڵنیایت دەتەوێت مێژووەکە پاک بکەیتەوە؟\";\n\"clear_alert_comment\" = \"ناتوانیت ئەم کردەوەیە بگەڕێنیتەوە.\";\n\"clear_alert_cancel\" = \"هەڵوەشاندنەوە\";\n\"clear_alert_confirm\" = \"پاککردنەوە\";\n\"key_used_error\" = \"کلیلەکە پێشتر بەکارهێنراوە.\";\n\"active_screen\" = \"شاشەی چالاک\";\n\"screen\" = \"شاشە\";\n\"system_settings_name\" = \"رێکخستنەکانی سیستەم\";\n\"system_settings_pane\" = \"رێکخستنەکانی تایبەتێتی و ئاسایش\";\n\"system_preferences_name\" = \"هەڵبژاردەکانی سیستەم\";\n\"system_preferences_pane\" = \"هەڵبژاردەکانی ئاسایش و تایبەتێti\";\n"
  },
  {
    "path": "Maccy/cs.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"piš pro hledání…\";\n\"about_tooltip\" = \"Přečíst si víc o aplikaci.\";\n\"clear_all_tooltip\" = \"Odebrat všechny položky.\";\n\"clear_all\" = \"Odebrat všechny\";\n\"quit\" = \"Ukončit\";\n\"preferences\" = \"Předvolby…\";\n\"preferences_advanced\" = \"Pokročilé\";\n\"preferences_pins\" = \"Připnuté\";\n\"accessibility_alert_message\" = \"„Maccy” by ráda ovládala tento počítač přes fuknce Zpřístupnění.\";\n\"accessibility_alert_deny\" = \"Odmítnout\";\n\"accessibility_alert_open\" = \"Otevřít Nastavení systému\";\n\"clear_alert_message\" = \"Opravdu chceš vymazat historii?\";\n\"clear_alert_comment\" = \"Tuto akci nemůžeš vrátit.\";\n\"paste_modifiers_config\" = \"• Vyber se stisknutím %@ pro zkopírování a vložení položky.\";\n\"clear_alert_cancel\" = \"Zrušit\";\n\"clear_alert_confirm\" = \"Vymazat\";\n\"key_used_error\" = \"Klávesa je už používána.\";\n\"active_screen\" = \"Aktivní obrazovka\";\n\"screen\" = \"Obrazovka\";\n\"system_settings_name\" = \"Nastavení systému\";\n\"system_settings_pane\" = \"Nastavení Soukromí a zabezpečení\";\n\"system_preferences_name\" = \"Nastavení systému\";\n\"system_preferences_pane\" = \"Nastavení Soukromí a zabezpečení\";\n\"clear\" = \"Vyčistit\";\n\"clear_tooltip\" = \"Odebrat nepřipnuté položky.\\nVyber s ⇧ pro odebrání všech.\";\n\"quit_tooltip\" = \"Ukončit aplikaci.\";\n\"accessibility_alert_comment\" = \"Uděl aplikaci přístup v {pane}, umístěném v {settings}.\\n\\nKlikni na tlačítko +, vyber Maccy a zapni přepínač vedle názvu.\";\n\"about\" = \"O aplikaci\";\n\"copy_modifiers_config\" = \"• Vyber se stisknutím %@ pro zkopírování položky.\";\n\"format_modifiers_config\" = \"• Vyber se stisknutím %@ pro zkopírování, odstranění formátování a vložení položky.\";\n"
  },
  {
    "path": "Maccy/cs.lproj/Preview.strings",
    "content": "\"Application\" = \"Aplikace:\";\n\"FirstCopyTime\" = \"Čas prvního kopírování:\";\n\"LastCopyTime\" = \"Čas posledního kopírování:\";\n\"NumberOfCopies\" = \"Počet kopírování:\";\n\"PinKey\" = \"Stiskni {pinKey} pro připnutí/odepnutí.\";\n\"DeleteKey\" = \"Stiskni {deleteKey} pro smazání.\";"
  },
  {
    "path": "Maccy/de.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"Suchen …\";\n\"clear_tooltip\" = \"Lösche nur die nicht angehefteten Einträge.\\nHalte zusätzlich ⇧ gedrückt, um alle Einträge zu löschen.\";\n\"clear_all_tooltip\" = \"Lösche alle Einträge.\";\n\"about_tooltip\" = \"Informationen über die Anwendung.\";\n\"quit_tooltip\" = \"Beende die Anwendung.\";\n\"clear\" = \"Löschen\";\n\"clear_all\" = \"Alle löschen\";\n\"about\" = \"Über\";\n\"quit\" = \"Beenden\";\n\"preferences\" = \"Einstellungen…\";\n\"preferences_advanced\" = \"Erweitert\";\n\"preferences_pins\" = \"Pins\";\n\"copy_modifiers_config\" = \"• Drücke %@, um den gewählten Eintrag zu kopieren.\";\n\"paste_modifiers_config\" = \"• Drücke %@, um den gewählten Eintrag zu kopieren und einzufügen.\";\n\"format_modifiers_config\" = \"• Drücke %@, um den gewählten Eintrag zu kopieren und unformatiert einzufügen.\";\n\"accessibility_alert_message\" = \"“Maccy” möchte diesen Computer mittels Bedienungshilfen steuern.\";\n\"accessibility_alert_comment\" = \"Erlaube den Zugriff für diese Anwendung in “{settings} > {pane} > Datenschutz > Bedienungshilfen”.\\n\\nKlicken Sie auf die Schaltfläche “+“, wählen Sie “Maccy“ aus und aktivieren Sie das Kontrollkästchen daneben.\";\n\"accessibility_alert_deny\" = \"Ablehnen\";\n\"accessibility_alert_open\" = \"Öffne Systemeinstellungen\";\n\"clear_alert_message\" = \"Möchtest du den Verlauf wirklich leeren?\";\n\"clear_alert_comment\" = \"Diese Aktion kann nicht widerrufen werden.\";\n\"clear_alert_cancel\" = \"Abbrechen\";\n\"clear_alert_confirm\" = \"Bestätigen\";\n\"key_used_error\" = \"Hotkey ist bereits belegt.\";\n\"active_screen\" = \"Aktiver Bildschirm\";\n\"screen\" = \"Bildschirm\";\n\"system_settings_name\" = \"Systemeinstellungen\";\n\"system_settings_pane\" = \"Datenschutz & Sicherheit\";\n\"system_preferences_name\" = \"Systemeinstellungen\";\n\"system_preferences_pane\" = \"Sicherheit & Datenschutz\";\n"
  },
  {
    "path": "Maccy/el.lproj/Localizable.strings",
    "content": "\"accessibility_alert_message\" = \"Το “Maccy” θέλει να ελέγξει αυτόν τον υπολογιστή χρησιμοποιώντας χαρακτηριστικά προσβασιμότητας.\";\n\"clear_alert_comment\" = \"Δεν θα μπορέσεις να αναιρέσεις αυτήν την ενέργεια.\";\n\"clear_alert_cancel\" = \"Άκυρο\";\n\"clear_alert_confirm\" = \"Καθαρισμός\";\n\"system_settings_pane\" = \"Ρυθμίσεις απόρρητου & ασφαλείας\";\n\"about_tooltip\" = \"Διάβασε περισσότερα σχετικά με την εφαρμογή.\";\n\"quit_tooltip\" = \"Έξοδος από την εφαρμογή.\";\n\"clear\" = \"Καθαρισμός\";\n\"clear_all\" = \"Καθαρισμός όλων\";\n\"preferences\" = \"Ρυθμίσεις…\";\n\"paste_modifiers_config\" = \"• Επίλεξε με %@ πατημένο για αντιγραφή/επικόλληση αντικειμένου.\";\n\"accessibility_alert_comment\" = \"Δώσε πρόσβαση σε αυτήν την εφαρμογή στο {pane}, που βρίσκεται στις {settings}\\n\\nΠάτα το κουμπί +, επίλεξε Maccy, και ενεργοποίησε το κουτάκι δίπλα του.\";\n\"accessibility_alert_deny\" = \"Άρνηση\";\n\"clear_alert_message\" = \"Είσαι σίγουρος πως θέλεις να καθαρίσεις το ιστορικό;\";\n\"key_used_error\" = \"Το πλήκτρο χρησιμοποιείται ήδη.\";\n\"active_screen\" = \"Ενεργή οθόνη\";\n\"system_preferences_name\" = \"Προτιμήσεις Συστήματος\";\n\"system_preferences_pane\" = \"Προτιμήσεις Ασφαλείας & Απορρήτου\";\n\"search_placeholder\" = \"πληκτρολόγησε για αναζήτηση…\";\n\"about\" = \"Σχετικά\";\n\"quit\" = \"Έξοδος\";\n\"preferences_advanced\" = \"Για προχωρημένους\";\n\"preferences_pins\" = \"Καρφιτσωμένα\";\n\"copy_modifiers_config\" = \"• Επίλεξε με %@ πατημένο για αντιγραφή αντικειμένου.\";\n\"clear_tooltip\" = \"Καθαρισμός μη καρφιτσωμένων αντικειμένων.\\nΕπίλεξε με ⇧ για εκκαθάριση όλων.\";\n\"clear_all_tooltip\" = \"Καθαρισμός όλων των αντικειμένων.\";\n\"format_modifiers_config\" = \"• Επίλεξε με %@ πατημένο για αντιγραφή, καθαρισμό μορφοποίησης και επικόλληση αντικειμένου.\";\n\"accessibility_alert_open\" = \"Άνοιγμα Προτιμήσεων Συστήματος\";\n\"screen\" = \"Οθόνη\";\n\"system_settings_name\" = \"Ρυθμίσεις Συστήματος\";\n"
  },
  {
    "path": "Maccy/en.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"type to search…\";\n\"clear_tooltip\" = \"Clear unpinned items.\\nSelect with ⇧ to clear all.\";\n\"clear_all_tooltip\" = \"Clear all items.\";\n\"about_tooltip\" = \"Read more about the application.\";\n\"quit_tooltip\" = \"Quit application.\";\n\"clear\" = \"Clear\";\n\"clear_all\" = \"Clear all\";\n\"about\" = \"About\";\n\"quit\" = \"Quit\";\n\"preferences\" = \"Preferences…\";\n\"preferences_advanced\" = \"Advanced\";\n\"preferences_pins\" = \"Pins\";\n\"copy_modifiers_config\" = \"• Select with %@ pressed to copy item.\";\n\"paste_modifiers_config\" = \"• Select with %@ pressed to copy and paste item.\";\n\"format_modifiers_config\" = \"• Select with %@ pressed to copy, clear formatting and paste item.\";\n\"accessibility_alert_message\" = \"“Maccy” would like to control this computer using accessibility features.\";\n\"accessibility_alert_comment\" = \"Grant access to this application in {pane}, located in {settings}.\\n\\nClick + button, select Maccy, and toggle on the checkbox next to it.\";\n\"accessibility_alert_deny\" = \"Deny\";\n\"accessibility_alert_open\" = \"Open System Preferences\";\n\"clear_alert_message\" = \"Are you sure you want to clear the history?\";\n\"clear_alert_comment\" = \"You can't undo this action.\";\n\"clear_alert_cancel\" = \"Cancel\";\n\"clear_alert_confirm\" = \"Clear\";\n\"key_used_error\" = \"Key is already used.\";\n\"active_screen\" = \"Active screen\";\n\"screen\" = \"Screen\";\n\"system_settings_name\" = \"System Settings\";\n\"system_settings_pane\" = \"Privacy & Security settings\";\n\"system_preferences_name\" = \"System Preferences\";\n\"system_preferences_pane\" = \"Security & Privacy preferences\";\n"
  },
  {
    "path": "Maccy/eo.lproj/Localizable.strings",
    "content": "\"about\" = \"Pri\";\n\"quit\" = \"Forlasi\";\n\"clear_alert_cancel\" = \"Nuligi\";\n\"screen\" = \"Ekrano\";\n\"search_placeholder\" = \"tajpu por serĉi…\";\n\"clear_all_tooltip\" = \"Forigi ĉiujn erojn.\";\n\"about_tooltip\" = \"Ekscii pli pri la aplikaĵo.\";\n\"quit_tooltip\" = \"Forlasi la aplikaĵon.\";\n\"clear\" = \"Forigi\";\n\"clear_all\" = \"Forigi ĉion\";\n\"preferences\" = \"Agordoj…\";\n\"accessibility_alert_deny\" = \"Rifuzi\";\n\"accessibility_alert_open\" = \"Malfermi la sistemajn agordojn\";\n\"clear_alert_message\" = \"Ĉu vi certas, ke vi volas forigi la historion?\";\n\"clear_alert_comment\" = \"Vi ne povas malfari ĉi tiun agon.\";\n\"clear_alert_confirm\" = \"Forigi\";\n\"active_screen\" = \"Aktiva ekrano\";\n\"system_settings_name\" = \"Sistemaj agordoj\";\n\"system_preferences_name\" = \"Sistemaj agordoj\";\n\"preferences_advanced\" = \"Altnivelaj agordoj\";\n\"accessibility_alert_message\" = \"“Maccy” volas regi la komputilon per alireblecaj funkcioj.\";\n\"key_used_error\" = \"La klavo estas jam uzata.\";\n\"system_settings_pane\" = \"Privatecaj kaj sekurecaj agordoj\";\n\"system_preferences_pane\" = \"Sekurecaj kaj privatecaj agordoj\";\n\"preferences_pins\" = \"Fiksitaj eroj\";\n\"clear_tooltip\" = \"Forigi la nefiksitajn erojn.\\nElekti per ⇧ por forigi ĉion.\";\n\"copy_modifiers_config\" = \"• Elekti premante %@ por kopii la eron.\";\n\"paste_modifiers_config\" = \"• Elekti premante %@ por kopii kaj alglui la eron.\";\n\"format_modifiers_config\" = \"• Elekti premante %@ por kopii, forigi tekstaranĝon, alglui la eron.\";\n\"accessibility_alert_comment\" = \"Donu aliron al la aplikaĵo en {pane}, trovebla en {settings}.\\n\\nAlklaku la butonon +, elektu Maccy, kaj ŝaltu la elektobutonon apud ĝi.\";\n"
  },
  {
    "path": "Maccy/es.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"escribir para buscar…\";\n\"clear_tooltip\" = \"Limpiar elementos no anclados.\\nSeleccionar con ⇧ para limpiar todo.\";\n\"clear_all_tooltip\" = \"Limpiar todo.\";\n\"about_tooltip\" = \"Leer más sobre la aplicación.\";\n\"quit_tooltip\" = \"Cerrar la aplicación.\";\n\"clear\" = \"Limpiar\";\n\"clear_all\" = \"Limpiar todo\";\n\"about\" = \"Acerca de\";\n\"quit\" = \"Salir\";\n\"preferences\" = \"Preferencias…\";\n\"preferences_advanced\" = \"Avanzado\";\n\"preferences_pins\" = \"Anclas\";\n\"copy_modifiers_config\" = \"• Para copiar el elemento, seleccionar con %@ presionado.\";\n\"paste_modifiers_config\" = \"• Para copiar y pegar el elemento, seleccionar con %@ presionado.\";\n\"format_modifiers_config\" = \"• Para copiar, borrar el formato y pegar el elemento el elemento, seleccionar con %@ presionado.\";\n\"accessibility_alert_message\" = \"“Maccy” requiere controlar esta computadora mediante las funciones de accesibilidad.\";\n\"accessibility_alert_comment\" = \"Otorgar acceso a esta aplicación en {panel}, ubicado en {settings}.\\n\\nHaga clic en el botón +, seleccionar Maccy y activar la casilla de verificación junto a él.\";\n\"accessibility_alert_deny\" = \"Denegar\";\n\"accessibility_alert_open\" = \"Abrir Preferencias del Sistema\";\n\"clear_alert_message\" = \"¿Seguro que deseas borrar el historial?\";\n\"clear_alert_comment\" = \"Esta acción no puede deshacerse.\";\n\"clear_alert_cancel\" = \"Cancelar\";\n\"clear_alert_confirm\" = \"Limpiar\";\n\"key_used_error\" = \"Clave ya en uso.\";\n\"active_screen\" = \"Pantalla activa\";\n\"screen\" = \"Pantalla\";\n\"system_settings_name\" = \"Ajustes del Sistema\";\n\"system_settings_pane\" = \"Ajustes de Privacidad y seguridad\";\n\"system_preferences_name\" = \"Preferencias del Sistema\";\n\"system_preferences_pane\" = \"Preferencias de Privacidad y seguridad\";\n"
  },
  {
    "path": "Maccy/fa.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"جستجو کنید…\";\n\"clear_tooltip\" = \"پاک کردن موارد سنجاق نشده\\nبرای پاک کردن همه ⇧ را نگه دارید.\";\n\"clear_all_tooltip\" = \"پاک کردن همه ی موارد\";\n\"about_tooltip\" = \"اطلاعات بیشتری دربارهٔ برنامه بخوانید.\";\n\"quit_tooltip\" = \"خروج از برنامه.\";\n\"clear\" = \"پاک کردن\";\n\"clear_all\" = \"\";\n\"about\" = \"\";\n\"quit\" = \"\";\n\"preferences\" = \"\";\n\"preferences_advanced\" = \"\";\n\"preferences_pins\" = \"\";\n\"copy_modifiers_config\" = \"\";\n\"paste_modifiers_config\" = \"\";\n\"format_modifiers_config\" = \"\";\n\"accessibility_alert_message\" = \"\";\n\"accessibility_alert_comment\" = \"\";\n\"accessibility_alert_deny\" = \"\";\n\"accessibility_alert_open\" = \"\";\n\"clear_alert_message\" = \"\";\n\"clear_alert_comment\" = \"\";\n\"clear_alert_cancel\" = \"\";\n\"clear_alert_confirm\" = \"\";\n\"key_used_error\" = \"\";\n\"active_screen\" = \"\";\n\"screen\" = \"\";\n\"system_settings_name\" = \"\";\n\"system_settings_pane\" = \"\";\n\"system_preferences_name\" = \"\";\n\"system_preferences_pane\" = \"\";\n"
  },
  {
    "path": "Maccy/fr.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"tapez pour rechercher…\";\n\"clear_tooltip\" = \"Supprimer les éléments non épinglés.\\nSélectionnez avec ⇧ pour tout supprimer.\";\n\"clear_all_tooltip\" = \"Supprimer toute la liste.\";\n\"about_tooltip\" = \"Plus d'informations à propos de l'application.\";\n\"quit_tooltip\" = \"Quitter l'application.\";\n\"clear\" = \"Supprimer\";\n\"clear_all\" = \"Tout supprimer\";\n\"about\" = \"À propos\";\n\"quit\" = \"Quitter\";\n\"preferences\" = \"Préférences…\";\n\"preferences_advanced\" = \"Avancé\";\n\"preferences_pins\" = \"Épingles\";\n\"copy_modifiers_config\" = \"• Selectionnez avec %@ pressé pour copier un élément.\";\n\"paste_modifiers_config\" = \"• Selectionnez avec %@ pressé pour copier et coller l'élément.\";\n\"format_modifiers_config\" = \"• Selectionnez avec %@ pressé pour copier, reformater et coller l'élément.\";\n\"accessibility_alert_message\" = \"“Maccy” souhaite contrôler cet ordinateur en utilisant des fonctions d'accessibilité.\";\n\"accessibility_alert_comment\" = \"Accorder les droits à cette application dans le panneau {pane}, situé dans {settings}.\\n\\nCliquez sur le bouton +, sélectionnez “Maccy“ et cochez la case à côté.\";\n\"accessibility_alert_deny\" = \"Refuser\";\n\"accessibility_alert_open\" = \"Ouvrir les Préférences Système\";\n\"clear_alert_message\" = \"Voulez-vous vraiment effacer l'historique ?\";\n\"clear_alert_comment\" = \"Vous ne pouvez pas annuler cette action.\";\n\"clear_alert_cancel\" = \"Annuler\";\n\"clear_alert_confirm\" = \"Supprimer\";\n\"key_used_error\" = \"La clé est déjà utilisée.\";\n\"active_screen\" = \"Écran actif\";\n\"screen\" = \"Écran\";\n\"system_settings_name\" = \"Réglages Système\";\n\"system_settings_pane\" = \"Confidentialité et sécurité\";\n\"system_preferences_name\" = \"Préférences Système\";\n\"system_preferences_pane\" = \"Sécurité & confidentialité\";\n"
  },
  {
    "path": "Maccy/he.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"הקלדה כאן תחפש…\";\n\"clear_tooltip\" = \"פינוי פריטים שלא ננעצו.\\nאפשר לבחור עם ⇧ כדי לפנות הכול.\";\n\"clear_all_tooltip\" = \"לפנות את כל הפריטים.\";\n\"about_tooltip\" = \"מידע נוסף על היישום.\";\n\"quit_tooltip\" = \"יציאה מהיישום.\";\n\"clear\" = \"פינוי\";\n\"clear_all\" = \"פינוי של הכול\";\n\"about\" = \"על אודות\";\n\"quit\" = \"יציאה\";\n\"preferences\" = \"העדפות…\";\n\"preferences_advanced\" = \"מתקדם\";\n\"preferences_pins\" = \"נעוצים\";\n\"copy_modifiers_config\" = \"• יש לבחור תוך לחיצה על %@ כדי להעתיק פריט.\";\n\"paste_modifiers_config\" = \"• יש לבחור תוך לחיצה על %@ כדי להעתיק ולהדביק פריט.\";\n\"format_modifiers_config\" = \"• יש לבחור תוך לחיצה על %@ כדי להעתיק, להסיר עיצוב ולהדביק פריט.\";\n\"accessibility_alert_message\" = \"„Maccy” רוצה להשתלט על המחשב הזה דרך יכולות הנגישות.\";\n\"accessibility_alert_comment\" = \"הענקת גישה ליישום הזה דרך {pane}, שנמצא תחת {settings}.\\n\\nלחיצה + כפתור, לבחור ב־Maccy ולהחליף את מצב תיבת הסימון שלידו.\";\n\"accessibility_alert_deny\" = \"דחייה\";\n\"accessibility_alert_open\" = \"פתיחת העדפות המערכת\";\n\"clear_alert_message\" = \"לפנות את ההיסטוריה?\";\n\"clear_alert_comment\" = \"זו פעולה בלתי הפיכה.\";\n\"clear_alert_cancel\" = \"ביטול\";\n\"clear_alert_confirm\" = \"פינוי\";\n\"key_used_error\" = \"המפתח כבר בשימוש.\";\n\"active_screen\" = \"מסך פעיל\";\n\"screen\" = \"מסך\";\n\"system_settings_name\" = \"הגדרות מערכת\";\n\"system_settings_pane\" = \"הגדרות פרטיות ואבטחה\";\n\"system_preferences_name\" = \"העדפות מערכת\";\n\"system_preferences_pane\" = \"העדפות אבטחה ופרטיות\";\n"
  },
  {
    "path": "Maccy/hi.lproj/Localizable.strings",
    "content": "\"about_tooltip\" = \"एप्लिकेशन के बारे में अधिक पढ़ें।\";\n\"quit_tooltip\" = \"एप्लिकेशन बंद करें।\";\n\"clear\" = \"साफ़ करें\";\n\"clear_all\" = \"सभी साफ़ करें\";\n\"preferences_advanced\" = \"विस्तृत विकल्प\";\n\"preferences_pins\" = \"पिन्स\";\n\"copy_modifiers_config\" = \"• %@ दबाकर आइटम कॉपी करने के लिए चुनें।\";\n\"accessibility_alert_message\" = \"“मैकी” इस कंप्यूटर को एक्सेसिबिलिटी फ़ीचर्स का उपयोग करके नियंत्रित करना चाहता है।\";\n\"accessibility_alert_deny\" = \"अस्वीकृत करें\";\n\"accessibility_alert_open\" = \"सिस्टम विकल्प खोलें\";\n\"clear_alert_message\" = \"क्या आप सुनिश्चित हैं कि आप इतिहास साफ़ करना चाहते हैं?\";\n\"clear_alert_comment\" = \"आप इस कार्रवाई को वापस नहीं ले सकते।\";\n\"clear_alert_cancel\" = \"रद्द करें\";\n\"clear_alert_confirm\" = \"साफ़ करें\";\n\"key_used_error\" = \"key पहले से उपयोग में है।\";\n\"active_screen\" = \"Active स्क्रीन\";\n\"screen\" = \"स्क्रीन\";\n\"system_settings_name\" = \"सिस्टम सेटिंग्स\";\n\"system_settings_pane\" = \"गोपनीयता और सुरक्षा सेटिंग्स\";\n\"system_preferences_name\" = \"सिस्टम प्राथमिकताएँ\";\n\"system_preferences_pane\" = \"सुरक्षा और गोपनीयता प्राथमिकताएँ\";\n\"search_placeholder\" = \"खोजने के लिए टाइप करें…\";\n\"clear_all_tooltip\" = \"सभी वस्तुओं को हटाएँ।\";\n\"preferences\" = \"विकल्प…\";\n\"clear_tooltip\" = \"अनपिन की गई वस्तुओं को हटाएँ। सभी हटाने के लिए ⇧ के साथ चयन करें।\";\n\"about\" = \"अधिक जानकारी\";\n\"quit\" = \"बंद करें\";\n\"format_modifiers_config\" = \"• %@ दबाकर आइटम को कॉपी, फॉर्मेटिंग साफ़ करें और पेस्ट करने के लिए चुनें।\";\n\"paste_modifiers_config\" = \"• %@ दबाकर आइटम को कॉपी और पेस्ट करने के लिए चुनें।\";\n\"accessibility_alert_comment\" = \"इस एप्लिकेशन को {pane} में, जो कि {settings} में स्थित है, एक्सेस दें।\\n\\n+ बटन पर क्लिक करें, मैकी का चयन करें, और उसके बगल में स्थित चेकबॉक्स को सक्रिय करें।\";\n"
  },
  {
    "path": "Maccy/hr.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"tipkaj za pretraživanje …\";\n\"clear_tooltip\" = \"Izbriši neprikvačene.\\nIzbriši sve pomoću tipke ⇧.\";\n\"clear_all_tooltip\" = \"Izbriši sve.\";\n\"about_tooltip\" = \"Saznaj više o programu.\";\n\"quit_tooltip\" = \"Zatvori program.\";\n\"clear\" = \"Izbriši\";\n\"clear_all\" = \"Izbriši sve\";\n\"about\" = \"Informacije\";\n\"quit\" = \"Zatvori program\";\n\"preferences\" = \"Postavke …\";\n\"preferences_advanced\" = \"Napredno\";\n\"preferences_pins\" = \"Pribadače\";\n\"copy_modifiers_config\" = \"• Za kopiranje elementa odaberi zajedno s pritisnutom tipkom %@.\";\n\"paste_modifiers_config\" = \"• Za kopiranje i umetanje elementa odaberi zajedno s pritisnutom tipkom %@.\";\n\"format_modifiers_config\" = \"• Za kopiranje, uklanjanje formata i umetanje elementa odaberi zajedno s pritisnutom tipkom %@.\";\n\"accessibility_alert_message\" = \"„Maccy” želi upravljati ovim računalom koristeći funkcije pristupačnosti.\";\n\"accessibility_alert_comment\" = \"Dozvoli pristup ovoj aplikaciji u postavkama {pane} unutar {settings}.\\n\\nKliknite gumb „+”, odaberite „Maccy” i uključite potvrdni okvir pokraj njega.\";\n\"accessibility_alert_deny\" = \"Zabrani\";\n\"accessibility_alert_open\" = \"Otvori postavke sustava\";\n\"clear_alert_message\" = \"Stvarno želiš izbrisati povijest?\";\n\"clear_alert_comment\" = \"To je nepovratna radnja.\";\n\"clear_alert_cancel\" = \"Odustani\";\n\"clear_alert_confirm\" = \"Izbriši\";\n\"key_used_error\" = \"Tipka se već koristi.\";\n\"active_screen\" = \"Aktivni ekran\";\n\"screen\" = \"Ekran\";\n\"system_settings_name\" = \"Postavki sustava\";\n\"system_settings_pane\" = \"Privatnost i sigurnost\";\n\"system_preferences_name\" = \"Postavki sustava\";\n\"system_preferences_pane\" = \"Sigurnost i privatnost\";\n"
  },
  {
    "path": "Maccy/hu.lproj/Localizable.strings",
    "content": "\"preferences\" = \"Beállítások…\";\n\"search_placeholder\" = \"írj a kereséshez…\";\n\"clear_tooltip\" = \"Rögzítettlen elemek törlése\\nVálassz a ⇧-el az összes törléséhez.\";\n\"about_tooltip\" = \"Tudj meg többet az alkalmazásról.\";\n\"quit_tooltip\" = \"Alkalmazás bezárása.\";\n\"clear\" = \"Törlés\";\n\"clear_all\" = \"Összes törlése\";\n\"about\" = \"Névjegy\";\n\"quit\" = \"Bezárás\";\n\"preferences_pins\" = \"Rögzítések\";\n\"paste_modifiers_config\" = \"• Válassz a(z) %@ lenyomásával az elem másolásához és beillesztéséhez.\";\n\"format_modifiers_config\" = \"• Válassz a(z) %@ lenyomásával az elem másolásához, formázásának törléséhez és beillesztéséhez.\";\n\"clear_alert_cancel\" = \"Mégse\";\n\"clear_alert_confirm\" = \"Törlés\";\n\"key_used_error\" = \"A billentyű már használatban van.\";\n\"accessibility_alert_deny\" = \"Elutasít\";\n\"clear_alert_message\" = \"Biztosan törölni szeretnéd az előzményeket?\";\n\"clear_alert_comment\" = \"Ezt a műveletet nem lehet visszavonni.\";\n\"active_screen\" = \"Aktív képernyő\";\n\"system_preferences_pane\" = \"Adatvédelem és biztonság\";\n\"preferences_advanced\" = \"Haladó\";\n\"clear_all_tooltip\" = \"Minden elem törlése.\";\n\"copy_modifiers_config\" = \"• Válassz a(z) %@ lenyomásával az elem másolásához.\";\n\"accessibility_alert_message\" = \"A “Maccy” irányítani szeretné ezt a számítógépet akadálymentesítési funkciók használatával.\";\n\"accessibility_alert_open\" = \"Rendszerbeállítások megnyitása\";\n\"accessibility_alert_comment\" = \"Adj engedélyt az alkalmazásnak a {pane} részben, amely a {settings} beállításoknál található.\\n\\nKattints a + gombra, válaszd a Maccy-t, majd kapcsold be a mellette lévő jelölőnégyzetet.\";\n\"system_settings_name\" = \"Rendszerbeállítások\";\n\"screen\" = \"Képernyő\";\n\"system_settings_pane\" = \"Adatvédelem és biztonság\";\n\"system_preferences_name\" = \"Rendszerbeállítások\";\n"
  },
  {
    "path": "Maccy/id.lproj/Localizable.strings",
    "content": "\"clear_all_tooltip\" = \"Bersihkan semuanya.\";\n\"clear_tooltip\" = \"Bersihkan item yang tak disematkan.\\nKlik item bersamaan ⇧ untuk bersihkan.\";\n\"about_tooltip\" = \"Baca selengkapnya mengenai aplikasi.\";\n\"quit_tooltip\" = \"Keluar aplikasi.\";\n\"clear\" = \"Bersihkan\";\n\"clear_all\" = \"Bersihkan semua\";\n\"about\" = \"Mengenai\";\n\"quit\" = \"Keluar\";\n\"preferences\" = \"Preferensi…\";\n\"preferences_advanced\" = \"Lanjutan\";\n\"preferences_pins\" = \"Semat\";\n\"copy_modifiers_config\" = \"• Memilih dengan menekan %@ untuk menyalin.\";\n\"format_modifiers_config\" = \"• Memilih dengan menekan %@ untuk menyalin, membersikan format lalu menempel.\";\n\"paste_modifiers_config\" = \"• Memilih dengan menekan %@ untuk menyalin lalu menempel.\";\n\"search_placeholder\" = \"Ketik untuk mencari…\";\n\"accessibility_alert_deny\" = \"Tolak\";\n\"accessibility_alert_open\" = \"Buka Preferensi Sistem\";\n\"accessibility_alert_message\" = \"\";\n\"accessibility_alert_comment\" = \"\";\n\"clear_alert_message\" = \"\";\n\"clear_alert_comment\" = \"\";\n\"clear_alert_cancel\" = \"Batal\";\n\"clear_alert_confirm\" = \"\";\n\"key_used_error\" = \"\";\n\"active_screen\" = \"\";\n\"screen\" = \"\";\n\"system_settings_name\" = \"\";\n\"system_settings_pane\" = \"Pengaturan Privasi & Keamanan\";\n\"system_preferences_name\" = \"Preferensi Sistem\";\n\"system_preferences_pane\" = \"Preferensi Keamanan & Privasi\";\n"
  },
  {
    "path": "Maccy/it.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"scrivi per cercare…\";\n\"clear_tooltip\" = \"Elimina gli elementi sbloccati.\\nSeleziona con ⇧ per eliminarli tutti.\";\n\"clear_all_tooltip\" = \"Pulisci tutto.\";\n\"about_tooltip\" = \"Leggi più informazioni sull'applicazione.\";\n\"quit_tooltip\" = \"Chiudi l' applicazione.\";\n\"clear\" = \"Pulisci\";\n\"clear_all\" = \"Pulisci tutto\";\n\"about\" = \"Informazioni\";\n\"quit\" = \"Chiudi\";\n\"preferences\" = \"Preferenze…\";\n\"preferences_advanced\" = \"Avanzate\";\n\"preferences_pins\" = \"Bloccati\";\n\"copy_modifiers_config\" = \"• Seleziona con %@ premuto per copiare l'elemento.\";\n\"paste_modifiers_config\" = \"• Seleziona con %@ premuto per copiare e incollare l'elemento.\";\n\"format_modifiers_config\" = \"• Seleziona con %@ premuto per copiare, eliminare la formattazione e incollare l'elemento.\";\n\"accessibility_alert_message\" = \"“Maccy” vorrebbe controllare questo computer utilizzando le funzionalità di accessibilità.\";\n\"accessibility_alert_comment\" = \"Concedi l'accesso a questa applicazione nella sezione {pane}, situata in {settings}.\\n\\nFai clic sul pulsante “+“, seleziona “Maccy“ e attiva la casella di controllo accanto ad esso.\";\n\"accessibility_alert_deny\" = \"Nega\";\n\"accessibility_alert_open\" = \"Apri Preferenze di Sistema\";\n\"clear_alert_message\" = \"Sei sicuro di voler cancellare la cronologia?\";\n\"clear_alert_comment\" = \"Questa azione non può essere annullata.\";\n\"clear_alert_cancel\" = \"Annulla\";\n\"clear_alert_confirm\" = \"Pulisci\";\n\"key_used_error\" = \"La chiave è già in uso.\";\n\"active_screen\" = \"Schermo attivo\";\n\"screen\" = \"Schermo\";\n\"system_settings_name\" = \"Impostazioni di Sistema\";\n\"system_settings_pane\" = \"Privacy e sicurezza\";\n\"system_preferences_name\" = \"Preferenze di Sistema\";\n\"system_preferences_pane\" = \"Sicurezza e Privacy\";\n"
  },
  {
    "path": "Maccy/ja.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"入力して検索…\";\n\"clear_tooltip\" = \"固定されていない項目をクリアします。\\n⇧を押しながら選択すると全てクリアします。\";\n\"clear_all_tooltip\" = \"全ての項目をクリアします。\";\n\"about_tooltip\" = \"アプリケーションについての詳細を表示します。\";\n\"quit_tooltip\" = \"アプリケーションを終了します。\";\n\"clear\" = \"クリア\";\n\"clear_all\" = \"全てクリア\";\n\"about\" = \"Maccyについて\";\n\"quit\" = \"終了\";\n\"preferences\" = \"設定…\";\n\"preferences_advanced\" = \"詳細\";\n\"preferences_pins\" = \"ピン留め\";\n\"copy_modifiers_config\" = \"• %を押しながら選択すると項目をコピーします。\";\n\"paste_modifiers_config\" = \"• %@を押しながら選択すると項目をコピーして貼り付けます。\";\n\"format_modifiers_config\" = \"• %@を押しながら選択すると項目をコピーし、 書式なしで貼り付けます。\";\n\"accessibility_alert_message\" = \"“Maccy”は、アクセシビリティ機能を使用してこのコンピュータを制御することを求めています。\";\n\"accessibility_alert_comment\" = \"{settings}{pane}環境設定で、このアプリケーションへのアクセスを許可してください。\\n\\n“+“ボタンをクリックし、“Maccy“を選択して、その横のチェックボックスをオンにします。\";\n\"accessibility_alert_deny\" = \"拒否\";\n\"accessibility_alert_open\" = \"“システム環境設定”を開く\";\n\"clear_alert_message\" = \"履歴をクリアしますか？\";\n\"clear_alert_comment\" = \"このアクションは元に戻すことができません。\";\n\"clear_alert_cancel\" = \"キャンセル\";\n\"clear_alert_confirm\" = \"クリア\";\n\"key_used_error\" = \"キーが既に使用中です。\";\n\"active_screen\" = \"アクティブスクリーン\";\n\"screen\" = \"画面\";\n\"system_settings_name\" = \"システム設定\";\n\"system_settings_pane\" = \"“プライバシーとセキュリティ”\";\n\"system_preferences_name\" = \"システム環境設定の\";\n\"system_preferences_pane\" = \"“セキュリティとプライバシー”\";\n"
  },
  {
    "path": "Maccy/ko.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"검색어를 입력하세요…\";\n\"clear_tooltip\" = \"고정되지 않은 항목들을 지웁니다.\\n⇧와 함께 선택시 모두 지웁니다.\";\n\"clear_all_tooltip\" = \"모든 항목을 지웁니다.\";\n\"about_tooltip\" = \"어플리케이션에 관하여 더 보기.\";\n\"quit_tooltip\" = \"어플리케이션을 종료합니다.\";\n\"clear\" = \"지우기\";\n\"clear_all\" = \"모두 지우기\";\n\"about\" = \"관하여\";\n\"quit\" = \"종료\";\n\"preferences\" = \"설정…\";\n\"preferences_advanced\" = \"고급\";\n\"preferences_pins\" = \"고정\";\n\"copy_modifiers_config\" = \"• %@와 함께 선택시 항목을 복사합니다.\";\n\"paste_modifiers_config\" = \"• %@와 함께 선택시 항목을 복사하여 붙여넣기 합니다.\";\n\"format_modifiers_config\" = \"• %@와 함께 선택시 항목을 복사하여 서식없이 붙여넣기 합니다.\";\n\"accessibility_alert_message\" = \"“Maccy”가 손쉬운 사용 기능을 사용하여 이 컴퓨터를 제어하려고 합니다.\";\n\"accessibility_alert_comment\" = \"{settings} 있는 {pane} 정보 보호 환경설정에서 이 응용 프로그램에 접근 권한을 부여하십시오.\\n\\n“+“ 버튼을 클릭하고 “Maccy“를 선택한 다음 옆에 있는 확인란을 토글합니다.\";\n\"accessibility_alert_deny\" = \"거부\";\n\"accessibility_alert_open\" = \"시스템 환경설정 열기\";\n\"clear_alert_message\" = \"기록을 지우시겠습니까?\";\n\"clear_alert_comment\" = \"이 작업은 되돌릴 수 없습니다.\";\n\"clear_alert_cancel\" = \"취소\";\n\"clear_alert_confirm\" = \"지우기\";\n\"key_used_error\" = \"키가 이미 사용 중입니다.\";\n\"active_screen\" = \"활성 화면\";\n\"screen\" = \"화면\";\n\"system_settings_name\" = \"시스템 설정\";\n\"system_settings_pane\" = \"개인정보 보호 및 보안\";\n\"system_preferences_name\" = \"시스템 환경설정에\";\n\"system_preferences_pane\" = \"보안 및 개인\";\n"
  },
  {
    "path": "Maccy/lt.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"įveskite paiešką…\";\n\"about_tooltip\" = \"Sužinokite daugiau apie programą.\";\n\"clear\" = \"Išvalyti\";\n\"clear_all\" = \"Išvalyti visus\";\n\"about\" = \"Apie\";\n\"quit\" = \"Uždaryti\";\n\"clear_all_tooltip\" = \"Išvalyti visus elementus.\";\n\"preferences\" = \"Parinktys…\";\n\"preferences_advanced\" = \"Išplėstiniai nustatymai\";\n\"preferences_pins\" = \"Prisegtukai\";\n\"copy_modifiers_config\" = \"• Pasirinkite paspaudę %@, kad nukopijuotumėte elementą.\";\n\"format_modifiers_config\" = \"• Pasirinkite paspaudę %@, kad nukopijuotumėte, panaikintumėte formatavimą ir įklijuotumėte elementą.\";\n\"accessibility_alert_message\" = \"„Maccy“ norėtų valdyti šį kompiuterį naudodamasis prieinamumo funkcijomis.\";\n\"accessibility_alert_deny\" = \"Atsisakyti\";\n\"accessibility_alert_open\" = \"Atidaryti Sistemos Nuostatas\";\n\"clear_alert_message\" = \"Ar tikrai norite išvalyti istoriją?\";\n\"clear_alert_comment\" = \"Šio veiksmo nebus galima atšaukti.\";\n\"clear_alert_cancel\" = \"Atšaukti\";\n\"key_used_error\" = \"Spartusis klavišas jau naudojamas.\";\n\"active_screen\" = \"Aktyvus ekranas\";\n\"screen\" = \"Ekranas\";\n\"system_settings_name\" = \"Sistemos Nustatymai\";\n\"system_settings_pane\" = \"Privatumo ir Saugumo nustatymai\";\n\"system_preferences_name\" = \"Sistemos Parinktys\";\n\"system_preferences_pane\" = \"Saugumo ir Privatumo nuostatos\";\n\"clear_tooltip\" = \"Išvalyti neprisegtus elementus.\\nPasirinkite su ⇧, kad išvalytumėte visus.\";\n\"quit_tooltip\" = \"Uždaryti programą.\";\n\"paste_modifiers_config\" = \"• Pasirinkite paspaudę %@, kad nukopijuotumėte ir įklijuotumėte elementą.\";\n\"accessibility_alert_comment\" = \"Suteikite prieigą šiai programai {pane}, esančiai {settings}.\\n\\nSpustelėjimas + mygtukas, pasirinkite Maccy ir pažymėkite šalia esantį žymimąjį langelį.\";\n\"clear_alert_confirm\" = \"Išvalyti\";\n"
  },
  {
    "path": "Maccy/lv.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"ierakstiet, lai meklētu…\";\n\"clear_tooltip\" = \"Notīriet nepiespraustos vienumus.\\nAtlasiet ar ⇧, lai notīrītu visus.\";\n\"clear_all\" = \"Notīrīt visu\";\n\"about\" = \"Par\";\n\"quit\" = \"Iziet\";\n\"preferences\" = \"Iestatījumi…\";\n\"preferences_advanced\" = \"Papildu iestatījumi\";\n\"preferences_pins\" = \"Piespraudes\";\n\"copy_modifiers_config\" = \"• Lai kopētu vienumu, izvēlieties, nospiežot %@.\";\n\"paste_modifiers_config\" = \"• Lai kopētu un ielīmētu vienumu, izvēlieties, nospiežot %@.\";\n\"accessibility_alert_deny\" = \"Liegt\";\n\"clear_alert_confirm\" = \"Notīrīt\";\n\"key_used_error\" = \"Poga jau tiek izmantota.\";\n\"active_screen\" = \"Aktīvais ekrāns\";\n\"screen\" = \"Ekrāns\";\n\"system_settings_name\" = \"Sistēmas iestatījumi\";\n\"system_settings_pane\" = \"Konfidencialitātes un drošības iestatījumi\";\n\"system_preferences_name\" = \"Sistēmas iestatījumi\";\n\"system_preferences_pane\" = \"Drošības un konfidencialitātes iestatījumi\";\n\"quit_tooltip\" = \"Iziet no lietotnes.\";\n\"clear_all_tooltip\" = \"Notīrīt visus vienumus.\";\n\"about_tooltip\" = \"Lasīt vairāk par lietotni.\";\n\"clear\" = \"Notīrīt\";\n\"format_modifiers_config\" = \"• Lai kopētu, notīrītu formatējumu un ielīmētu vienumu, izvēlieties, nospiežot %@.\";\n\"accessibility_alert_open\" = \"Atvērt sistēmas iestatījumus\";\n\"clear_alert_message\" = \"Vai tiešām vēlaties notīrīt vēsturi?\";\n\"clear_alert_comment\" = \"Šo darbību nevar atsaukt.\";\n\"accessibility_alert_comment\" = \"Piešķirt piekļuvi šai lietotnei izvelnē {pane}, kas atrodas {settings}.\\n\\nNoklikšķiniet uz + pogas, atlasiet Maccy un ieslēdziet tai blakus esošo izvēles ķeksīti.\";\n\"clear_alert_cancel\" = \"Atcelt\";\n\"accessibility_alert_message\" = \"“Maccy” vēlas kontrolēt šo datoru, izmantojot pieejamības līdzekļus.\";\n"
  },
  {
    "path": "Maccy/nb.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"skriv for å søke…\";\n\"clear_tooltip\" = \"Slett avmerkede elementer.\\nVelg med ⇧ for å slette alle.\";\n\"clear_all_tooltip\" = \"Slett alle elementer.\";\n\"about_tooltip\" = \"Les mer om programmet.\";\n\"quit_tooltip\" = \"Avslutt programmet.\";\n\"clear\" = \"Slett\";\n\"clear_all\" = \"Slett alt\";\n\"about\" = \"Om\";\n\"quit\" = \"Avslutt\";\n\"preferences\" = \"Valg…\";\n\"preferences_advanced\" = \"Avansert\";\n\"preferences_pins\" = \"Merker\";\n\"copy_modifiers_config\" = \"• Velg med %@ nedtrykket for å kopiere element.\";\n\"paste_modifiers_config\" = \"• Velg med %@ nedtrykket for å kopiere og lime inn element.\";\n\"format_modifiers_config\" = \"• Velg med %@ nedtrykket for å kopiere, slette formattering og lime inn element.\";\n\"accessibility_alert_message\" = \"“Maccy” vil ha adgang til denne datamaskinen for tjenester tilknyttet tilgjengelighet.\";\n\"accessibility_alert_comment\" = \"Gi tillatelse til dette programmet i {pane} innstillingene, lokalisert i {settings}.\\n\\nKlikk på +-knappen, velg “Maccy“ og velg avmerkingsboksen ved siden av.\";\n\"accessibility_alert_deny\" = \"Avslå\";\n\"accessibility_alert_open\" = \"Åpne System Valg\";\n\"clear_alert_message\" = \"Er du sikker på at du vil tømme historikken?\";\n\"clear_alert_comment\" = \"Du kan ikke angre denne handlingen.\";\n\"clear_alert_cancel\" = \"Avbryt\";\n\"clear_alert_confirm\" = \"Slett\";\n\"key_used_error\" = \"Nøkkel er allerede brukt.\";\n\"active_screen\" = \"Aktiv skjerm\";\n\"screen\" = \"Skjerm\";\n\"system_settings_name\" = \"System­innstillinger\";\n\"system_settings_pane\" = \"Personvern og sikkerhet\";\n\"system_preferences_name\" = \"System Valg\";\n\"system_preferences_pane\" = \"Sikkerhet & Personvern\";\n"
  },
  {
    "path": "Maccy/nl.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"type om te zoeken…\";\n\"clear_tooltip\" = \"Wis niet vastgemaakte items.\\nSelecteer met ⇧ om alles te wissen.\";\n\"clear_all_tooltip\" = \"Wis alle items.\";\n\"about_tooltip\" = \"Lees meer over de app.\";\n\"quit_tooltip\" = \"Sluit app.\";\n\"clear\" = \"Wis\";\n\"clear_all\" = \"Wis alles\";\n\"about\" = \"Over\";\n\"quit\" = \"Sluit\";\n\"preferences\" = \"Voorkeuren…\";\n\"preferences_advanced\" = \"Geavanceerd\";\n\"preferences_pins\" = \"Spelden\";\n\"copy_modifiers_config\" = \"• Selecteer met %@ ingedrukt om item te kopiëren.\";\n\"paste_modifiers_config\" = \"• Selecteer met %@ ingedrukt om het item te kopiëren en te plakken.\";\n\"format_modifiers_config\" = \"• Selecteer met %@ ingedrukt om te kopiëren, opmaak te wissen en item te plakken.\";\n\"accessibility_alert_message\" = \"“Maccy” wil deze computer bedienen met toegankelijkheidsfuncties.\";\n\"accessibility_alert_comment\" = \"Verleen toegang tot deze app in {pane}, te vinden in {settings}.\\n\\nKlik op de + knop, selecteer Maccy en schakel het selectievakje ernaast in.\";\n\"accessibility_alert_deny\" = \"Weiger\";\n\"accessibility_alert_open\" = \"Open Systeemvoorkeuren\";\n\"clear_alert_message\" = \"Weet je zeker dat je de geschiedenis wilt wissen?\";\n\"clear_alert_comment\" = \"Je kan deze actie niet ongedaan maken.\";\n\"clear_alert_cancel\" = \"Annuleer\";\n\"clear_alert_confirm\" = \"Wis\";\n\"key_used_error\" = \"Toets is al gebruikt.\";\n\"active_screen\" = \"Actief scherm\";\n\"screen\" = \"Scherm\";\n\"system_settings_name\" = \"Systeeminstellingen\";\n\"system_settings_pane\" = \"Privacy- en Beveiligingsinstellingen\";\n\"system_preferences_name\" = \"Systeemvoorkeuren\";\n\"system_preferences_pane\" = \"Beveiliging en Privacyvoorkeuren\";\n"
  },
  {
    "path": "Maccy/pl.lproj/Localizable.strings",
    "content": "\"clear_all_tooltip\" = \"Wyczyść wszystkie pozycje.\";\n\"about_tooltip\" = \"Przeczytaj więcej o aplikacji.\";\n\"clear_all\" = \"Wyczyść wszystkie\";\n\"about\" = \"O aplikacji\";\n\"quit\" = \"Wyjdź\";\n\"preferences\" = \"Ustawienia…\";\n\"preferences_advanced\" = \"Zaawansowane\";\n\"preferences_pins\" = \"Przypięte\";\n\"copy_modifiers_config\" = \"• Wybierz z %@ aby skopiować.\";\n\"paste_modifiers_config\" = \"• Wybierz z %@ aby skopiować i wkleić.\";\n\"format_modifiers_config\" = \"• Wybierz %@ aby skopiować i wkleić z wyczyszczonym formatowaniem.\";\n\"accessibility_alert_message\" = \"“Maccy” chce kontrolować Twój komputer używając funkcji dostępności.\";\n\"accessibility_alert_deny\" = \"Zabroń\";\n\"accessibility_alert_open\" = \"Otwórz ustawienia systemowe\";\n\"clear_alert_message\" = \"Czy na pewno chcesz wyczyścić historię?\";\n\"clear_alert_cancel\" = \"Anuluj\";\n\"clear_alert_confirm\" = \"Wyczyść\";\n\"key_used_error\" = \"Klawisz jest już użyty.\";\n\"active_screen\" = \"Aktywny ekran\";\n\"system_preferences_name\" = \"Preferencje systemowe\";\n\"system_preferences_pane\" = \"Preferencje ochrony i prywatności\";\n\"screen\" = \"Ekran\";\n\"system_settings_name\" = \"Ustawienia systemowe\";\n\"system_settings_pane\" = \"Ustawienia prywatności i ochrony\";\n\"search_placeholder\" = \"Wpisz aby wyszukać…\";\n\"quit_tooltip\" = \"Wyjdź z aplikacji.\";\n\"clear_tooltip\" = \"Wyczyść nieprzypięte pozycje\\nWybierz z ⇧ aby wyczyścić wszystkie.\";\n\"clear\" = \"Wyczyść\";\n\"accessibility_alert_comment\" = \"Daj dostęp tej aplikacji w {pane}, w {settings}.\\n\\nKliknij przycisk +, wybierz Maccy i kliknij przełącznik obok.\";\n\"clear_alert_comment\" = \"Nie możesz cofnąć tej akcji.\";\n"
  },
  {
    "path": "Maccy/pt-BR.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"digite para buscar…\";\n\"about\" = \"Sobre\";\n\"preferences\" = \"Preferências…\";\n\"preferences_advanced\" = \"Avançado\";\n\"clear_all\" = \"Limpar tudo\";\n\"clear_all_tooltip\" = \"Limpar todos os itens.\";\n\"about_tooltip\" = \"Ler mais sobre o aplicativo.\";\n\"clear_alert_confirm\" = \"Limpar\";\n\"accessibility_alert_open\" = \"Abrir Ajustes do Sistema\";\n\"clear_alert_message\" = \"Tem certeza de que deseja limpar o histórico?\";\n\"clear_alert_cancel\" = \"Cancelar\";\n\"clear_tooltip\" = \"Limpar itens não fixados.\\nSelecione com ⇧ para limpar tudo.\";\n\"quit\" = \"Sair\";\n\"copy_modifiers_config\" = \"• Selecione com %@ pressionado para copiar o item.\";\n\"paste_modifiers_config\" = \"• Selecione com %@ pressionado para copiar e colar o item.\";\n\"accessibility_alert_message\" = \"“Maccy” gostaria de controlar este computador usando as funções de acessibilidade.\";\n\"accessibility_alert_deny\" = \"Negar\";\n\"key_used_error\" = \"A tecla já está em uso.\";\n\"active_screen\" = \"Tela ativa\";\n\"screen\" = \"Tela\";\n\"system_settings_name\" = \"Ajustes do Sistema\";\n\"system_settings_pane\" = \"Privacidade e Segurança\";\n\"system_preferences_pane\" = \"Privacidade e Segurança\";\n\"preferences_pins\" = \"Fixar\";\n\"clear\" = \"Limpar\";\n\"clear_alert_comment\" = \"Você não pode desfazer esta ação.\";\n\"quit_tooltip\" = \"Sair do aplicativo.\";\n\"format_modifiers_config\" = \"• Selecione com %@ pressionado para copiar, limpar a formatação e colar o item.\";\n\"accessibility_alert_comment\" = \"Conceda acesso a este aplicativo em {pane}, localizado em {settings}.\\n\\nClique + botão, selecione Maccy e ative a caixa de seleção próxima a ele.\";\n\"system_preferences_name\" = \"Preferências do Sistema\";\n"
  },
  {
    "path": "Maccy/pt-BR.lproj/Preview.strings",
    "content": "\"Application\" = \"Aplicação:\";\n\"FirstCopyTime\" = \"Data da primeira cópia:\";\n\"LastCopyTime\" = \"Data da última cópia:\";\n\"NumberOfCopies\" = \"Número de cópias:\";\n\"PinKey\" = \"Pressione {pinKey} para (desa)fixar.\";\n\"DeleteKey\" = \"Pressione {deleteKey} para excluir.\";"
  },
  {
    "path": "Maccy/pt.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"digite para procurar…\";\n\"clear_tooltip\" = \"Limpar elementos não fixados.\\nSelecione com ⇧ para limpar tudo.\";\n\"clear_all_tooltip\" = \"Limpar todos os elementos.\";\n\"about_tooltip\" = \"Ler mais sobre a aplicação.\";\n\"quit_tooltip\" = \"Sair da aplicação.\";\n\"clear\" = \"Limpar\";\n\"clear_all\" = \"Limpar tudo\";\n\"about\" = \"Sobre\";\n\"quit\" = \"Sair\";\n\"preferences\" = \"Preferências…\";\n\"preferences_advanced\" = \"Avançado\";\n\"preferences_pins\" = \"Fixar\";\n\"copy_modifiers_config\" = \"• Selecione com %@ pressionado para copiar o elemento.\";\n\"paste_modifiers_config\" = \"• Selecione com %@ pressionado para copiar e colar o elemento.\";\n\"format_modifiers_config\" = \"• Selecione com %@ pressionado para copiar, limpar a formatação e colar o elemento.\";\n\"accessibility_alert_message\" = \"“Maccy” gostaria de controlar este computador usando as funções de acessibilidade.\";\n\"accessibility_alert_comment\" = \"Conceda acesso a esta aplicação em {pane}, localizado em {settings}.\\n\\nClique o botão +, selecione Maccy e ative a caixa de seleção próxima dele.\";\n\"accessibility_alert_deny\" = \"Negar\";\n\"accessibility_alert_open\" = \"Abrir Ajustes do Sistema\";\n\"clear_alert_message\" = \"Tem certeza de que deseja limpar o histórico?\";\n\"clear_alert_comment\" = \"Não pode desfazer esta ação.\";\n\"clear_alert_cancel\" = \"Cancelar\";\n\"clear_alert_confirm\" = \"Limpar\";\n\"key_used_error\" = \"A tecla já está em uso.\";\n\"active_screen\" = \"Ecrã ativo\";\n\"screen\" = \"Ecrã\";\n\"system_settings_name\" = \"Ajustes do Sistema\";\n\"system_settings_pane\" = \"Privacidade e Segurança\";\n\"system_preferences_name\" = \"Preferências do Sistema\";\n\"system_preferences_pane\" = \"Configurações de Privacidade e Segurança\";\n"
  },
  {
    "path": "Maccy/ro.lproj/Localizable.strings",
    "content": "\"system_settings_name\" = \"Configurări sistem\";\n\"clear\" = \"Șterge\";\n\"accessibility_alert_open\" = \"Deschide Configurări sistem\";\n\"clear_tooltip\" = \"Șterge elementele nefixate.\\nSelectează cu ⇧ pentru a șterge tot.\";\n\"paste_modifiers_config\" = \"• Selectează cu %@ apăsat pentru a copia și lipi un element.\";\n\"preferences\" = \"Configurări…\";\n\"clear_all_tooltip\" = \"Șterge tot.\";\n\"quit_tooltip\" = \"Închide aplicația.\";\n\"quit\" = \"Închide\";\n\"preferences_advanced\" = \"Avansat\";\n\"preferences_pins\" = \"Elemente fixate\";\n\"copy_modifiers_config\" = \"• Selectează cu %@ apăsat pentru a copia un element.\";\n\"format_modifiers_config\" = \"• Selectează cu %@ apăsat pentru a copia, elimina formatarea și lipi un element.\";\n\"accessibility_alert_message\" = \"“Maccy” dorește să controleze acest calculator utilizând funcțiile de accesibilitate.\";\n\"accessibility_alert_deny\" = \"Refuză\";\n\"clear_alert_message\" = \"Ești sigur că dorești să ștergi istoricul?\";\n\"clear_alert_comment\" = \"Nu poți anula această acțiune.\";\n\"clear_alert_cancel\" = \"Anulează\";\n\"screen\" = \"Ecran\";\n\"system_settings_pane\" = \"Configurări Intimitate și securitate\";\n\"system_preferences_name\" = \"Preferințe de sistem\";\n\"system_preferences_pane\" = \"Preferințe de Securitate și Intimitate\";\n\"about_tooltip\" = \"Citește mai mult despre aplicație.\";\n\"about\" = \"Despre\";\n\"clear_all\" = \"Șterge tot\";\n\"search_placeholder\" = \"tastează pentru a căuta…\";\n\"key_used_error\" = \"Tasta e deja utilizată.\";\n\"clear_alert_confirm\" = \"Șterge\";\n\"active_screen\" = \"Ecranul activ\";\n\"accessibility_alert_comment\" = \"Acordă acces acestei aplicații în {pane}, aflat în {settings}.\\n\\nFă clic pe butonul +, selectează Maccy și bifează caseta de selectare de lânga aceasta.\";\n"
  },
  {
    "path": "Maccy/ru.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"начните печатать для поиска…\";\n\"clear_tooltip\" = \"Очистить неприкреплённые записи.\\nВыберите нажав ⇧ чтобы очистить всё.\";\n\"clear_all_tooltip\" = \"Очистить все записи.\";\n\"about_tooltip\" = \"Узнать больше о приложении.\";\n\"quit_tooltip\" = \"Завершить приложение.\";\n\"clear\" = \"Очистить\";\n\"clear_all\" = \"Очистить всё\";\n\"about\" = \"О приложении\";\n\"quit\" = \"Завершить\";\n\"preferences\" = \"Настройки…\";\n\"preferences_advanced\" = \"Дополнения\";\n\"preferences_pins\" = \"Прикреплённые\";\n\"copy_modifiers_config\" = \"• Выберите, зажав %@, чтобы скопировать запись.\";\n\"paste_modifiers_config\" = \"• Выберите, зажав %@, чтобы скопировать и вставить запись.\";\n\"format_modifiers_config\" = \"• Выберите, зажав %@, чтобы скопировать, очистить форматирование и вставить запись.\";\n\"accessibility_alert_message\" = \"Приложение «Maccy» запрашивает разрешение на управление компьютером с помощью функций универсального доступа.\";\n\"accessibility_alert_comment\" = \"Предоставьте права доступа этой программе в настройках {pane} в {settings}.\\n\\nНажмите кнопку «+», выберите «Maccy» и установите флажок рядом с ним.\";\n\"accessibility_alert_deny\" = \"Запретить\";\n\"accessibility_alert_open\" = \"Открыть «Системные настройки»\";\n\"clear_alert_message\" = \"Вы дейстительно хотите очистить историю?\";\n\"clear_alert_comment\" = \"Это действие необратимо.\";\n\"clear_alert_cancel\" = \"Отмена\";\n\"clear_alert_confirm\" = \"Очистить\";\n\"key_used_error\" = \"Клавиша уже используется.\";\n\"active_screen\" = \"Активынй экран\";\n\"screen\" = \"Экран\";\n\"system_settings_name\" = \"Системных настройках\";\n\"system_settings_pane\" = \"«Конфиденциальность и безопасность»\";\n\"system_preferences_name\" = \"Системных настройках\";\n\"system_preferences_pane\" = \"«Защита и безопасность»\";\n"
  },
  {
    "path": "Maccy/sl.lproj/Localizable.strings",
    "content": "\"accessibility_alert_message\" = \"“Maccy” želi ta računalnik nadzorovati s funkcijami dostopnosti.\";\n\"clear_alert_message\" = \"Ali ste prepričani, da želite počistiti zgodovino?\";\n\"active_screen\" = \"Aktivni zaslon\";\n\"clear_alert_comment\" = \"Tega dejanja ne morete razveljaviti.\";\n\"system_settings_pane\" = \"Nastavitve zasebnosti in varnosti\";\n\"search_placeholder\" = \"vnesite za iskanje …\";\n\"clear_all_tooltip\" = \"Počisti vse elemente.\";\n\"quit_tooltip\" = \"Zapri aplikacijo.\";\n\"clear_all\" = \"Izbriši vse\";\n\"about\" = \"Informacije\";\n\"preferences\" = \"Nastavitve…\";\n\"preferences_pins\" = \"Pini\";\n\"copy_modifiers_config\" = \"• Izberite s pritisnjenim %@, da kopirate element.\";\n\"accessibility_alert_deny\" = \"Zavrni\";\n\"accessibility_alert_open\" = \"Odprite sistemske nastavitve\";\n\"clear_alert_cancel\" = \"Prekliči\";\n\"clear_alert_confirm\" = \"Izbriši\";\n\"key_used_error\" = \"Ključ je že v uporabi.\";\n\"screen\" = \"Zaslon\";\n\"system_settings_name\" = \"Sistemske nastavitve\";\n\"system_preferences_name\" = \"Sistemske nastavitve\";\n\"system_preferences_pane\" = \"Nastavitve varnosti in zasebnosti\";\n\"clear_tooltip\" = \"Počisti nepripete elemente.\\nIzberite z ⇧, da počistite vse.\";\n\"about_tooltip\" = \"Preberite več o aplikaciji.\";\n\"clear\" = \"Izbriši\";\n\"quit\" = \"Zapri\";\n\"paste_modifiers_config\" = \"• Izberite s pritisnjenim %@, da kopirate in prilepite element.\";\n\"preferences_advanced\" = \"Napredno\";\n\"format_modifiers_config\" = \"• Izberite s pritisnjenim %@, da kopirate, počistite oblikovanje in prilepite element.\";\n\"accessibility_alert_comment\" = \"Odobrite dostop do te aplikacije v {pane}, ki se nahaja v {settings}.\\n\\nKliknite gumb +, izberite Maccy in vklopite potrditveno polje poleg njega.\";\n"
  },
  {
    "path": "Maccy/sv.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"\";\n\"clear_tooltip\" = \"\";\n\"clear_all_tooltip\" = \"\";\n\"about_tooltip\" = \"\";\n\"quit_tooltip\" = \"\";\n\"clear\" = \"\";\n\"clear_all\" = \"\";\n\"about\" = \"\";\n\"quit\" = \"\";\n\"preferences\" = \"\";\n\"preferences_advanced\" = \"\";\n\"preferences_pins\" = \"\";\n\"copy_modifiers_config\" = \"\";\n\"paste_modifiers_config\" = \"\";\n\"format_modifiers_config\" = \"\";\n\"accessibility_alert_message\" = \"\";\n\"accessibility_alert_comment\" = \"\";\n\"accessibility_alert_deny\" = \"\";\n\"accessibility_alert_open\" = \"\";\n\"clear_alert_message\" = \"\";\n\"clear_alert_comment\" = \"\";\n\"clear_alert_cancel\" = \"\";\n\"clear_alert_confirm\" = \"\";\n\"key_used_error\" = \"\";\n\"active_screen\" = \"\";\n\"screen\" = \"\";\n\"system_settings_name\" = \"\";\n\"system_settings_pane\" = \"\";\n\"system_preferences_name\" = \"\";\n\"system_preferences_pane\" = \"\";\n"
  },
  {
    "path": "Maccy/ta.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"தேட தட்டச்சு செய்யுங்கள்…\";\n\"clear_all_tooltip\" = \"எல்லா பொருட்களையும் அழிக்கவும்.\";\n\"preferences_advanced\" = \"மேம்பட்ட\";\n\"preferences_pins\" = \"ஊசிகள்\";\n\"accessibility_alert_deny\" = \"மறுக்கவும்\";\n\"accessibility_alert_open\" = \"கணினி விருப்பத்தேர்வுகள்\";\n\"clear_alert_cancel\" = \"ரத்துசெய்\";\n\"clear_tooltip\" = \"இணைக்கப்படாத உருப்படிகளை அழிக்கவும்.\\n அனைத்தையும் அழிக்க with உடன் தேர்ந்தெடுக்கவும்.\";\n\"about_tooltip\" = \"பயன்பாடு பற்றி மேலும் வாசிக்க.\";\n\"quit_tooltip\" = \"விண்ணப்பத்தை விட்டு.\";\n\"clear\" = \"தெளிவான\";\n\"clear_all\" = \"அனைத்தையும் அழிக்கவும்\";\n\"about\" = \"பற்றி\";\n\"quit\" = \"வெளியேறு\";\n\"preferences\" = \"விருப்பத்தேர்வுகள்…\";\n\"copy_modifiers_config\" = \"The %உடன் என்பதைத் தேர்ந்தெடுக்கவும் உருப்படியை நகலெடுக்க அழுத்தவும்.\";\n\"paste_modifiers_config\" = \"Tempentation %உடன் தேர்ந்தெடுக்கவும் ஒட்டவும்@ அழுத்தவும்.\";\n\"format_modifiers_config\" = \"The %உடன் தேர்ந்தெடுக்கவும், வடிவமைத்தல் மற்றும் ஒட்டுதல் உருப்படியை நகலெடுக்க அழுத்தவும்.\";\n\"accessibility_alert_message\" = \"அணுகல் அம்சங்களைப் பயன்படுத்தி இந்த கணினியைக் கட்டுப்படுத்த “மேக்சி” விரும்புகிறது.\";\n\"accessibility_alert_comment\" = \"இந்த பயன்பாட்டிற்கான அணுகலை {pane} இல், {அமைப்புகள் in இல் அமைந்துள்ளது.\\n\\n + பொத்தானைக் சொடுக்கு செய்து, மேக்சியைத் தேர்ந்தெடுத்து, அதற்கு அடுத்த தேர்வுப்பெட்டியில் மாற்றவும்.\";\n\"clear_alert_message\" = \"வரலாற்றை அழிக்க விரும்புகிறீர்களா?\";\n\"clear_alert_comment\" = \"இந்த செயலை நீங்கள் செயல்தவிர்க்க முடியாது.\";\n\"clear_alert_confirm\" = \"தெளிவான\";\n\"key_used_error\" = \"விசை ஏற்கனவே பயன்படுத்தப்படுகிறது.\";\n\"active_screen\" = \"செயலில் உள்ள திரை\";\n\"screen\" = \"திரை\";\n\"system_settings_name\" = \"கணினி அமைப்புகள்\";\n\"system_settings_pane\" = \"தனியுரிமை மற்றும் பாதுகாப்பு அமைப்புகள்\";\n\"system_preferences_name\" = \"கணினி விருப்பத்தேர்வுகள்\";\n\"system_preferences_pane\" = \"பாதுகாப்பு மற்றும் தனியுரிமை விருப்பத்தேர்வுகள்\";\n"
  },
  {
    "path": "Maccy/th.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"พิมพ์เพื่อค้นหา…\";\n\"clear_tooltip\" = \"ล้างรายการปักหมุด.\\nเลือกแล้วกด ⇧ เพื่อล้างทั้งหมด\";\n\"clear_all_tooltip\" = \"ล้างรายการทั้งหมด\";\n\"about_tooltip\" = \"อ่านเพิ่มเติมเกี่ยวกับแอปพลิเคชัน\";\n\"quit_tooltip\" = \"ออกแอปพลิเคชัน\";\n\"clear\" = \"ล้าง\";\n\"clear_all\" = \"ล้างทั้งหมด\";\n\"about\" = \"เกี่ยวกับเรา\";\n\"quit\" = \"ออก\";\n\"preferences\" = \"ตั้งค่า…\";\n\"preferences_advanced\" = \"ขั้นสูง\";\n\"preferences_pins\" = \"ปักหมุด\";\n\"copy_modifiers_config\" = \"• เลือกแล้วกด %@ เพื่อคัดลอก\";\n\"paste_modifiers_config\" = \"• เลือกแล้วกด %@ เพื่อคัดลอกและวางรายการ\";\n\"format_modifiers_config\" = \"• เลือกแล้วกด %@ เพื่อคัดลอก, ล้างรูปแบบและวางรายการ\";\n\"accessibility_alert_message\" = \"“Maccy” ต้องการใช้สิทธิ์ฟีเจอร์การช่วยการเข้าถึง\";\n\"accessibility_alert_comment\" = \"ให้สิทธิ์แอปพลิเคชันนี้ในเมนูการตั้งค่า{pane} ใน {settings}.\\n\\nคลิกปุ่ม ”+” เลือก ”Maccy” และสลับช่องทำเครื่องหมายถัดจากนั้น.\";\n\"accessibility_alert_deny\" = \"ปฎิเสธ\";\n\"accessibility_alert_open\" = \"เปิดการตั้งค่าระบบ\";\n\"clear_alert_message\" = \"คุณต้องการล้างประวัติหรือไม่?\";\n\"clear_alert_comment\" = \"คุณไม่สามารถย้อนกลับการกระทำนี้ได้\";\n\"clear_alert_cancel\" = \"ยกเลิก\";\n\"clear_alert_confirm\" = \"ล้าง\";\n\"key_used_error\" = \"คีย์นี้ถูกใช้แล้ว\";\n\"active_screen\" = \"หน้าจอที่ใช้งานอยู่\";\n\"screen\" = \"หน้าจอ\";\n\"system_settings_name\" = \"การตั้งค่าระบบ\";\n\"system_settings_pane\" = \"ความเป็นส่วนตัวและความปลอดภัย\";\n\"system_preferences_name\" = \"การตั้งค่าระบบ\";\n\"system_preferences_pane\" = \"ความปลอดภัยและความเป็นส่วนตัว\";\n"
  },
  {
    "path": "Maccy/tr.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"aramak için yazın…\";\n\"clear_tooltip\" = \"Sabitlenmemiş öğeleri temizle.\\nHepsini temizlemek için ⇧ ile seçin.\";\n\"clear_all_tooltip\" = \"Tüm ögeleri temizle.\";\n\"about_tooltip\" = \"Uygulama hakkında daha fazla bilgi edinin.\";\n\"quit_tooltip\" = \"Uygulamadan çık.\";\n\"clear\" = \"Temizle\";\n\"clear_all\" = \"Hepsini temizle\";\n\"about\" = \"Hakkında\";\n\"quit\" = \"Çık\";\n\"preferences\" = \"Tercihler…\";\n\"preferences_advanced\" = \"Gelişmiş\";\n\"preferences_pins\" = \"Sabitlemeler\";\n\"copy_modifiers_config\" = \"• %@ basılıyken seçerek öğeyi kopyalayın.\";\n\"paste_modifiers_config\" = \"• %@ basılıyken seçerek öğeyi kopyalayın ve yapıştırın.\";\n\"format_modifiers_config\" = \"• %@ basılıyken seçerek öğeyi kopyalayın, biçimlendirmeyi temizleyin ve yapıştırın.\";\n\"accessibility_alert_message\" = \"“Maccy”, erişilebilirlik özelliklerini kullanarak bu bilgisayarı denetlemek istiyor.\";\n\"accessibility_alert_comment\" = \"Bu uygulamaya, {settings} {pane} bölümünden izin verin.\\n\\n“+“ düğmesine tıklayın, Maccy'yi seçin ve yanındaki onay kutusunu işaretleyin.\";\n\"accessibility_alert_deny\" = \"Reddet\";\n\"accessibility_alert_open\" = \"Sistem Ayarları'nı Aç\";\n\"clear_alert_message\" = \"Geçmişi temizlemek istediğinize emin misiniz?\";\n\"clear_alert_comment\" = \"Bu işlemi geri alamazsınız.\";\n\"clear_alert_cancel\" = \"İptal\";\n\"clear_alert_confirm\" = \"Temizle\";\n\"key_used_error\" = \"Düğme, halihazırda kullanılıyor.\";\n\"active_screen\" = \"Aktif ekran\";\n\"screen\" = \"Ekran\";\n\"system_settings_name\" = \"Sistem Ayarları\";\n\"system_settings_pane\" = \"Gizlilik ve Güvenlik\";\n\"system_preferences_name\" = \"Sistem Tercihleri\";\n\"system_preferences_pane\" = \"Güvenlik ve Gizlilik Tercihleri\";\n"
  },
  {
    "path": "Maccy/uk.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"введіть для пошуку…\";\n\"clear_tooltip\" = \"Очистити незакріплені елементи.\\nВиберіть за допомогою ⇧, щоб видалити всі.\";\n\"clear_all_tooltip\" = \"Очистити всі елементи.\";\n\"about_tooltip\" = \"Докладніше про додаток.\";\n\"quit_tooltip\" = \"Вийти з програми.\";\n\"clear\" = \"Очистити\";\n\"clear_all\" = \"Очистити все\";\n\"about\" = \"Про додаток\";\n\"quit\" = \"Вийти\";\n\"preferences\" = \"Налаштування…\";\n\"preferences_advanced\" = \"Розширені опції\";\n\"preferences_pins\" = \"Прикріплення\";\n\"copy_modifiers_config\" = \"• Виберіть, натиснувши %@, щоб скопіювати елемент.\";\n\"paste_modifiers_config\" = \"• Виберіть, натиснувши %@, щоб скопіювати та вставити елемент.\";\n\"format_modifiers_config\" = \"• Виберіть, натиснувши %@, щоб скопіювати, очистити форматування та вставити елемент.\";\n\"accessibility_alert_message\" = \"“Maccy” хоче керувати цим комп’ютером за допомогою функцій доступності.\";\n\"accessibility_alert_comment\" = \"Надайте доступ до цієї програми в налаштуваннях {pane}, розташованих у {settings}.\\n\\nНатисніть кнопку “+“, виберіть “Maccy“ і встановіть прапорець поруч із ним.\";\n\"accessibility_alert_deny\" = \"Відказати\";\n\"accessibility_alert_open\" = \"Відкрити Системні налаштування\";\n\"clear_alert_message\" = \"Ви впевнені, що бажаєте очистити історію?\";\n\"clear_alert_comment\" = \"Ви не можете скасувати цю дію.\";\n\"clear_alert_cancel\" = \"Скасувати\";\n\"clear_alert_confirm\" = \"Очистити\";\n\"key_used_error\" = \"Клавіша вже використовується.\";\n\"active_screen\" = \"Активний екран\";\n\"screen\" = \"Екран\";\n\"system_settings_name\" = \"«Системні параметри»\";\n\"system_settings_pane\" = \"«Безпека та конфіденційність»\";\n\"system_preferences_name\" = \"«Налаштуваннях системи»\";\n\"system_preferences_pane\" = \"«Безпека та конфіденційність»\";\n"
  },
  {
    "path": "Maccy/uz.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"qidirish uchun yozing…\";\n\"clear_tooltip\" = \"Ochilmagan elemetlarni tozalang.\\nHammasini tozalash uchun ⇧ bosing.\";\n\"clear_all_tooltip\" = \"Barcha elementlarni tozlash.\";\n\"about_tooltip\" = \"Ilova haqida ko'proq o'qish.\";\n\"quit_tooltip\" = \"Ilovadan chiqish.\";\n\"clear\" = \"Tozalash\";\n\"clear_all\" = \"Hammasini tozalash\";\n\"about\" = \"Ilova haqida\";\n\"quit\" = \"Chiqish\";\n\"preferences\" = \"Moslashtirish…\";\n\"preferences_advanced\" = \"Qo'shimchalar\";\n\"preferences_pins\" = \"Qadalganlar\";\n\"copy_modifiers_config\" = \"• Elementni nusxalash uchun %@ bosilganda tanlang.\";\n\"paste_modifiers_config\" = \"• Elementni nusxalash va joylashtirish uchun %@ bosilganda tanlang.\";\n\"format_modifiers_config\" = \"• Nusxa olish, formatlashni tozalash va elementni joylashtirish uchun %@ tugmasini bosib tanlang.\";\n\"accessibility_alert_message\" = \"“Maccy” ushbu kompyuterni maxsus imkoniyatlardan foydalangan holda boshqarishni xohlaydi.\";\n\"accessibility_alert_comment\" = \"{settings} boʻlimida joylashgan {pane} ilovasiga kirishga ruxsat bering.\\n\\nMaccy-ni tanlang va yonidagi katakchani yoqing.\";\n\"accessibility_alert_deny\" = \"Rad etish\";\n\"accessibility_alert_open\" = \"Tizim sozlamalarini ochish\";\n\"clear_alert_message\" = \"Haqiqatan ham tarixni tozalamoqchimisiz?\";\n\"clear_alert_comment\" = \"Bu amalni bekor qila olmaysiz.\";\n\"clear_alert_cancel\" = \"Bekor qilish\";\n\"clear_alert_confirm\" = \"Tozalash\";\n\"key_used_error\" = \"Kalit allaqachon ishlatilgan.\";\n\"active_screen\" = \"Aktiv ekran\";\n\"screen\" = \"Ekran\";\n\"system_settings_name\" = \"Tizim Sozlamalari\";\n\"system_settings_pane\" = \"Maxfiylik va Xavfsizlik sozlamalari\";\n\"system_preferences_name\" = \"Tizim sozlamalari\";\n\"system_preferences_pane\" = \"Xavfsizlik va Maxfiylik sozlamalari\";\n"
  },
  {
    "path": "Maccy/vi.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"nhập từ khóa để tìm kiếm…\";\n\"clear_tooltip\" = \"Xóa các mục chưa được ghim.\\nChọn với ⇧ để xóa tất cả.\";\n\"clear_all_tooltip\" = \"Xóa tất cả các mục.\";\n\"about_tooltip\" = \"Đọc thêm thông tin về ứng dụng.\";\n\"quit_tooltip\" = \"Thoát ứng dụng.\";\n\"clear\" = \"Dọn dẹp\";\n\"clear_all\" = \"Xóa tất cả\";\n\"about\" = \"Thông tin\";\n\"quit\" = \"Thoát\";\n\"preferences\" = \"Thiết lập…\";\n\"preferences_advanced\" = \"Nâng cao\";\n\"preferences_pins\" = \"Ghim\";\n\"copy_modifiers_config\" = \"• Chọn bằng cách nhấn %@ để sao chép mục.\";\n\"paste_modifiers_config\" = \"• Chọn bằng cách nhấn %@ để sao chép và dán mục.\";\n\"format_modifiers_config\" = \"• Chọn bằng cách nhấn %@ để sao chép, xóa định dạng và dán mục.\";\n\"accessibility_alert_message\" = \"\\\"Maccy\\\" muốn điều khiển máy tính này bằng các tính năng trợ năng.\";\n\"accessibility_alert_comment\" = \"Cấp quyền truy cập vào ứng dụng này trong {pane}, nằm trong {settings}.\\n\\nNhấn nút +, chọn Maccy, và bật tùy chọn hộp kiểm bên cạnh nó.\";\n\"accessibility_alert_deny\" = \"Từ chối\";\n\"accessibility_alert_open\" = \"Mở Thiết lập Hệ thống\";\n\"clear_alert_message\" = \"Bạn có chắc chắn muốn xóa lịch sử không?\";\n\"clear_alert_comment\" = \"Bạn không thể hoàn tác hành động này.\";\n\"clear_alert_cancel\" = \"Hủy bỏ\";\n\"clear_alert_confirm\" = \"Dọn dẹp\";\n\"key_used_error\" = \"Khóa đã được sử dụng.\";\n\"active_screen\" = \"Màn hình đang hoạt động\";\n\"screen\" = \"Màn hình\";\n\"system_settings_name\" = \"Cài đặt Hệ thống\";\n\"system_settings_pane\" = \"Cài đặt bảo mật và quyền riêng tư\";\n\"system_preferences_name\" = \"Thiết lập Hệ thống\";\n\"system_preferences_pane\" = \"Tùy chọn Bảo mật & Quyền riêng tư\";\n"
  },
  {
    "path": "Maccy/zh-Hans.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"搜索…\";\n\"clear_tooltip\" = \"清除未固定的项目。\\n按住 ⇧ 以全部清除。\";\n\"clear_all_tooltip\" = \"清除全部项目。\";\n\"about_tooltip\" = \"查看更多应用信息。\";\n\"quit_tooltip\" = \"退出应用。\";\n\"clear\" = \"清除\";\n\"clear_all\" = \"全部清除\";\n\"about\" = \"关于\";\n\"quit\" = \"退出\";\n\"preferences\" = \"偏好设置…\";\n\"preferences_advanced\" = \"高级\";\n\"preferences_pins\" = \"固定\";\n\"copy_modifiers_config\" = \"• 按住 %@ 选择项目以复制。\";\n\"paste_modifiers_config\" = \"• 按住 %@ 选择项目以复制并粘贴。\";\n\"format_modifiers_config\" = \"• 按住 %@ 选择项目以复制并匹配格式粘贴。\";\n\"accessibility_alert_message\" = \"“Maccy“想要使用“辅助功能”控制此计算机。\";\n\"accessibility_alert_comment\" = \"在{settings}中的{pane}设置中授予此应用程序权限。\\n\\n单击 ”+” 按钮，选择 ”Maccy” 并打开旁边的复选框。\";\n\"accessibility_alert_deny\" = \"拒绝\";\n\"accessibility_alert_open\" = \"打开系统偏好设置\";\n\"clear_alert_message\" = \"确定要清除历史记录吗？\";\n\"clear_alert_comment\" = \"无法撤消此操作。\";\n\"clear_alert_cancel\" = \"取消\";\n\"clear_alert_confirm\" = \"清除\";\n\"key_used_error\" = \"键位已被使用。\";\n\"active_screen\" = \"活动屏幕\";\n\"screen\" = \"屏幕\";\n\"system_settings_name\" = \"“系统设置“\";\n\"system_settings_pane\" = \"“隐私与安全性“\";\n\"system_preferences_name\" = \"“系统偏好设置”\";\n\"system_preferences_pane\" = \"“安全性和隐私”\";\n"
  },
  {
    "path": "Maccy/zh-Hant.lproj/Localizable.strings",
    "content": "\"search_placeholder\" = \"搜尋…\";\n\"clear_tooltip\" = \"清除未釘選的項目。\\n按住 ⇧ 並選取以全部清除。\";\n\"clear_all_tooltip\" = \"清除全部項目。\";\n\"about_tooltip\" = \"了解應用程式詳情。\";\n\"quit_tooltip\" = \"退出應用程式。\";\n\"clear\" = \"清除\";\n\"clear_all\" = \"全部清除\";\n\"about\" = \"關於\";\n\"quit\" = \"結束\";\n\"preferences\" = \"偏好設定…\";\n\"preferences_advanced\" = \"進階\";\n\"preferences_pins\" = \"釘選項目\";\n\"copy_modifiers_config\" = \"• 按住 %@ 並選取以拷貝所選項目。\";\n\"paste_modifiers_config\" = \"• 按住 %@ 並選取以貼上所選項目。\";\n\"format_modifiers_config\" = \"• 按住 %@ 並選取以拷貝所選項目的格式設定。\";\n\"accessibility_alert_message\" = \"「Maccy「想要使用「輔助功能」控制此 Mac。\";\n\"accessibility_alert_comment\" = \"在{settings}中的{pane}頁面中授權此應用程式。\\n\\n按下 + 按鈕，選擇 Maccy 並勾選旁邊的核取方塊。\";\n\"accessibility_alert_deny\" = \"拒絕\";\n\"accessibility_alert_open\" = \"開啟系統偏好設定\";\n\"clear_alert_message\" = \"確定要清除歷史記錄嗎？\";\n\"clear_alert_comment\" = \"您無法還原此操作。\";\n\"clear_alert_cancel\" = \"取消\";\n\"clear_alert_confirm\" = \"清除\";\n\"key_used_error\" = \"快捷鍵已被使用。\";\n\"active_screen\" = \"使用中的螢幕\";\n\"screen\" = \"螢幕\";\n\"system_settings_name\" = \"「系統設定」\";\n\"system_settings_pane\" = \"「隱私權與安全性」\";\n\"system_preferences_name\" = \"「系統偏好設定」\";\n\"system_preferences_pane\" = \"「安全性和隱私權」\";\n"
  },
  {
    "path": "Maccy.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 54;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t0ABDD5122BB47F1E0054963B /* NSWorkspace+ApplicationName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ABDD5112BB47F1E0054963B /* NSWorkspace+ApplicationName.swift */; };\n\t\t2F0EC7792E7727E3003E2EA9 /* HeightReaderModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC7782E7727E3003E2EA9 /* HeightReaderModifier.swift */; };\n\t\t2F0EC77B2E772899003E2EA9 /* PinsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC77A2E772899003E2EA9 /* PinsView.swift */; };\n\t\t2F0EC77D2E773314003E2EA9 /* Selection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC77C2E773314003E2EA9 /* Selection.swift */; };\n\t\t2F0EC77F2E773DBA003E2EA9 /* MultipleSelectionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC77E2E773DBA003E2EA9 /* MultipleSelectionListView.swift */; };\n\t\t2F0EC7812E773F1D003E2EA9 /* PasteStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC7802E773F1D003E2EA9 /* PasteStack.swift */; };\n\t\t2F0EC7852E774083003E2EA9 /* PasteStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC7842E77407C003E2EA9 /* PasteStackView.swift */; };\n\t\t2F0EC7872E774099003E2EA9 /* PasteStackItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC7862E774093003E2EA9 /* PasteStackItemView.swift */; };\n\t\t2F0EC7892E7743D9003E2EA9 /* HoverSelectionModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F0EC7882E7743D9003E2EA9 /* HoverSelectionModifier.swift */; };\n\t\t2F1091D72F2B6E8400F5C454 /* AsyncView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F1091D62F2B6E8100F5C454 /* AsyncView.swift */; };\n\t\t2F12271E2E5C932200A1592A /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = 2F12271D2E5C932200A1592A /* Logging */; };\n\t\t2F162E802F1E7B30001FBAFF /* PasteStackPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F162E7F2F1E7B28001FBAFF /* PasteStackPreviewView.swift */; };\n\t\t2F1A79C02C6DFB7800C98EBD /* SearchVisibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F1A79BF2C6DFB7800C98EBD /* SearchVisibility.swift */; };\n\t\t2F39CB042AD9A93C00B749FD /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = 2F39CB032AD9A93C00B749FD /* Sparkle */; };\n\t\t2F39CB0A2AD9AE1F00B749FD /* Settings in Frameworks */ = {isa = PBXBuildFile; productRef = 2F39CB092AD9AE1F00B749FD /* Settings */; };\n\t\t2F578C3D2EFFE8400088B759 /* ItemsProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F578C3C2EFFE8400088B759 /* ItemsProtocol.swift */; };\n\t\t2F578C3F2EFFE8720088B759 /* SlideoutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F578C3E2EFFE8720088B759 /* SlideoutController.swift */; };\n\t\t2F578C422EFFE8920088B759 /* SlideoutContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F578C402EFFE8920088B759 /* SlideoutContentView.swift */; };\n\t\t2F578C432EFFE8920088B759 /* SlideoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F578C412EFFE8920088B759 /* SlideoutView.swift */; };\n\t\t2F8B9DE62C5D6E5D0046EF69 /* NSPoint+DefaultsSerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F8B9DE52C5D6E5D0046EF69 /* NSPoint+DefaultsSerializable.swift */; };\n\t\t2F9B42EF2F1A494C006548E5 /* ListHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F9B42EE2F1A4948006548E5 /* ListHeaderView.swift */; };\n\t\t2F9B42F12F1A499D006548E5 /* ToolbarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F9B42F02F1A4999006548E5 /* ToolbarView.swift */; };\n\t\t2FA81FE02E43D9B700C12F92 /* Dictionary+RemoveItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FA81FDF2E43D9A600C12F92 /* Dictionary+RemoveItem.swift */; };\n\t\t2FB5BCA02CD8F73F008B33F4 /* ApplicationImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FB5BC9F2CD8F73C008B33F4 /* ApplicationImage.swift */; };\n\t\t2FF2E94E2E774B5B0093D72C /* NavigationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FF2E94D2E774B570093D72C /* NavigationManager.swift */; };\n\t\t2FF2E9502E7808470093D72C /* AppImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FF2E94F2E7808420093D72C /* AppImageView.swift */; };\n\t\t4762D6972467226100B3A2BA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4762D6992467226100B3A2BA /* Localizable.strings */; };\n\t\tDA009931256411F90030E697 /* appcast.xml in Resources */ = {isa = PBXBuildFile; fileRef = DA00992C256411F90030E697 /* appcast.xml */; };\n\t\tDA009932256411F90030E697 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = DA00992D256411F90030E697 /* README.md */; };\n\t\tDA009934256411F90030E697 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = DA00992F256411F90030E697 /* LICENSE */; };\n\t\tDA009947256414800030E697 /* SwiftHEXColors in Frameworks */ = {isa = PBXBuildFile; productRef = DA009946256414800030E697 /* SwiftHEXColors */; };\n\t\tDA009955256414E60030E697 /* KeyboardShortcuts in Frameworks */ = {isa = PBXBuildFile; productRef = DA009954256414E60030E697 /* KeyboardShortcuts */; };\n\t\tDA05B5112C234CB2006980FE /* MaccyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA05B5102C234CB1006980FE /* MaccyApp.swift */; };\n\t\tDA05B5142C234DCF006980FE /* HistoryItemContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA05B5122C234DCF006980FE /* HistoryItemContent.swift */; };\n\t\tDA05B5152C234DCF006980FE /* HistoryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA05B5132C234DCF006980FE /* HistoryItem.swift */; };\n\t\tDA083A6E2C42E8E8004259A0 /* NSImage+Resized.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA083A6D2C42E8E8004259A0 /* NSImage+Resized.swift */; };\n\t\tDA0EE7B9204657830025FC60 /* MaccyUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0EE7B8204657830025FC60 /* MaccyUITests.swift */; };\n\t\tDA0EF1881E444B2A00E58577 /* Clipboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0EF1871E444B2A00E58577 /* Clipboard.swift */; };\n\t\tDA0FFA2A2C8D100C00A66C97 /* ModifierFlags+Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0FFA292C8D0FEC00A66C97 /* ModifierFlags+Description.swift */; };\n\t\tDA13D7CA2C19F52B00FA9E23 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = DA13D7C92C19F52B00FA9E23 /* LaunchAtLogin */; };\n\t\tDA13D7D02C19F8C300FA9E23 /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = DA13D7CF2C19F8C300FA9E23 /* Defaults */; };\n\t\tDA13D7D22C19F91B00FA9E23 /* Defaults.Keys+Names.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7D12C19F91B00FA9E23 /* Defaults.Keys+Names.swift */; };\n\t\tDA13D7D82C1A223E00FA9E23 /* Select.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7D32C1A223E00FA9E23 /* Select.swift */; };\n\t\tDA13D7D92C1A223E00FA9E23 /* Get.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7D42C1A223E00FA9E23 /* Get.swift */; };\n\t\tDA13D7DA2C1A223E00FA9E23 /* Clear.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7D52C1A223E00FA9E23 /* Clear.swift */; };\n\t\tDA13D7DB2C1A223E00FA9E23 /* Delete.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7D62C1A223E00FA9E23 /* Delete.swift */; };\n\t\tDA13D7DC2C1A223E00FA9E23 /* HistoryItemAppEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7D72C1A223E00FA9E23 /* HistoryItemAppEntity.swift */; };\n\t\tDA13D7DE2C1A436E00FA9E23 /* AppIntentError.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA13D7DD2C1A436E00FA9E23 /* AppIntentError.swift */; };\n\t\tDA181177247D14DA00066D55 /* Settings.PaneIdentifier+Panes.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA181176247D14DA00066D55 /* Settings.PaneIdentifier+Panes.swift */; };\n\t\tDA19690E2C3EEFA900258481 /* KeyboardShortcutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA19690D2C3EEFA900258481 /* KeyboardShortcutView.swift */; };\n\t\tDA1969102C3F0AAC00258481 /* KeyShortcut.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA19690F2C3F0AAC00258481 /* KeyShortcut.swift */; };\n\t\tDA1969122C3F0DD200258481 /* HistoryItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1969112C3F0DD200258481 /* HistoryItemView.swift */; };\n\t\tDA1969142C3F11D600258481 /* PreviewItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1969132C3F11D600258481 /* PreviewItemView.swift */; };\n\t\tDA1969182C3F327500258481 /* SearchFieldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1969172C3F327500258481 /* SearchFieldView.swift */; };\n\t\tDA19691A2C3F369800258481 /* HeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1969192C3F369800258481 /* HeaderView.swift */; };\n\t\tDA19691C2C3F3EAC00258481 /* Collection+Surrounding.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA19691B2C3F3EAC00258481 /* Collection+Surrounding.swift */; };\n\t\tDA19691F2C3F5F0600258481 /* KeyHandlingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA19691E2C3F5F0600258481 /* KeyHandlingView.swift */; };\n\t\tDA1969212C3F6C6800258481 /* HistoryItemAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1969202C3F6C6800258481 /* HistoryItemAction.swift */; };\n\t\tDA1EDE432045B35300479723 /* HistoryDecoratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA1EDE422045B35300479723 /* HistoryDecoratorTests.swift */; };\n\t\tDA20FA722B082DD600056DD5 /* Notifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20FA712B082DD600056DD5 /* Notifier.swift */; };\n\t\tDA20FA742B082E0100056DD5 /* Knock.caf in Resources */ = {isa = PBXBuildFile; fileRef = DA20FA732B082E0100056DD5 /* Knock.caf */; };\n\t\tDA20FA762B082E0800056DD5 /* Write.caf in Resources */ = {isa = PBXBuildFile; fileRef = DA20FA752B082E0800056DD5 /* Write.caf */; };\n\t\tDA20FA782B082E1A00056DD5 /* NSSound+Named.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20FA772B082E1A00056DD5 /* NSSound+Named.swift */; };\n\t\tDA243D122C2F64830012A27F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA243D112C2F64820012A27F /* ContentView.swift */; };\n\t\tDA243D142C2F66DD0012A27F /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA243D132C2F66DD0012A27F /* Storage.swift */; };\n\t\tDA360DB31E3DF137005C6F6B /* HistoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA360DB21E3DF137005C6F6B /* HistoryTests.swift */; };\n\t\tDA384E86232746D800603999 /* SearchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA384E85232746D800603999 /* SearchTests.swift */; };\n\t\tDA3BCB8E2C3E015000B01BC1 /* ModifierFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3BCB8D2C3E015000B01BC1 /* ModifierFlags.swift */; };\n\t\tDA3BCB922C3EEC3C00B01BC1 /* History.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3BCB912C3EEC3C00B01BC1 /* History.swift */; };\n\t\tDA3BCB942C3EECBB00B01BC1 /* HistoryItemDecorator.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3BCB932C3EECBB00B01BC1 /* HistoryItemDecorator.swift */; };\n\t\tDA3CE8001E44A62500B3AA98 /* ClipboardTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3CE7FF1E44A62500B3AA98 /* ClipboardTests.swift */; };\n\t\tDA3EAE0C2AE30F7500F39108 /* NSApplication+Windows.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3EAE0B2AE30F7500F39108 /* NSApplication+Windows.swift */; };\n\t\tDA3F1B452C90084600267632 /* Sauce+KeyboardShortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA3F1B442C90083800267632 /* Sauce+KeyboardShortcuts.swift */; };\n\t\tDA44C5E42C1C858400819834 /* StorageSettingsPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA44C5E32C1C858400819834 /* StorageSettingsPane.swift */; };\n\t\tDA48AE892A5F0548006D4894 /* guy.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = DA48AE882A5F0548006D4894 /* guy.jpeg */; };\n\t\tDA49EE7528B59468002752E0 /* NSRect+Centered.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA49EE7428B59468002752E0 /* NSRect+Centered.swift */; };\n\t\tDA49EE7928B594DC002752E0 /* NSRunningApplication+WindowFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA49EE7828B594DC002752E0 /* NSRunningApplication+WindowFrame.swift */; };\n\t\tDA5078992CF2676B00215488 /* MouseMovedViewModifer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA5078982CF2676400215488 /* MouseMovedViewModifer.swift */; };\n\t\tDA5154D82564102900C01004 /* Sauce in Frameworks */ = {isa = PBXBuildFile; productRef = DA5154D72564102900C01004 /* Sauce */; };\n\t\tDA555F082CF0F994009608BD /* ApplicationImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA555F072CF0F98F009608BD /* ApplicationImageCache.swift */; };\n\t\tDA555F122CF155A8009608BD /* WrappingTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA555F112CF155A2009608BD /* WrappingTextView.swift */; };\n\t\tDA5E62802C39E53F00F4C710 /* PreviewItemView.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA5E627E2C39E53F00F4C710 /* PreviewItemView.strings */; };\n\t\tDA5F46512020E9FB00425C11 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5F464F2020E4DF00425C11 /* Carbon.framework */; };\n\t\tDA6373981E4AB9BB00263391 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA6373971E4AB9BB00263391 /* Assets.xcassets */; };\n\t\tDA6491B029ABCF2400837D93 /* NSScreen+ForPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6491AF29ABCF2400837D93 /* NSScreen+ForPopup.swift */; };\n\t\tDA689FB02C1CD3B00009B887 /* StorageSettings.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA689FAE2C1CD3B00009B887 /* StorageSettings.strings */; };\n\t\tDA689FC42C1CF0F00009B887 /* AppearanceSettingsPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA689FC32C1CF0F00009B887 /* AppearanceSettingsPane.swift */; };\n\t\tDA689FC62C1D14F10009B887 /* PopupPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA689FC52C1D14F10009B887 /* PopupPosition.swift */; };\n\t\tDA689FC82C1D15140009B887 /* PinsPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA689FC72C1D15140009B887 /* PinsPosition.swift */; };\n\t\tDA689FCA2C1D18890009B887 /* HighlightMatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA689FC92C1D18890009B887 /* HighlightMatch.swift */; };\n\t\tDA689FCC2C1D1D510009B887 /* MenuIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA689FCB2C1D1D510009B887 /* MenuIcon.swift */; };\n\t\tDA689FCF2C1DEE570009B887 /* AppearanceSettings.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA689FCD2C1DEE570009B887 /* AppearanceSettings.strings */; };\n\t\tDA696BCE240177E800DE80CF /* Sorter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA696BCD240177E800DE80CF /* Sorter.swift */; };\n\t\tDA696BD22401EEE900DE80CF /* SorterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA696BD12401EEE900DE80CF /* SorterTests.swift */; };\n\t\tDA6D98E22AEABE03008A77CE /* Accessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6D98E12AEABE03008A77CE /* Accessibility.swift */; };\n\t\tDA740D7A2C21E6B0007B1A36 /* AdvancedSettings.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA740D782C21E6B0007B1A36 /* AdvancedSettings.strings */; };\n\t\tDA7A753E26A52F0F00DC16EF /* NSImage+Names.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7A753D26A52F0F00DC16EF /* NSImage+Names.swift */; };\n\t\tDA81D674252A056B009977BC /* Throttler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA81D673252A056B009977BC /* Throttler.swift */; };\n\t\tDA9C3C452C207AF80056795D /* IgnoreSettingsPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9C3C442C207AF80056795D /* IgnoreSettingsPane.swift */; };\n\t\tDA9C3C472C20B91D0056795D /* String+Identifiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9C3C462C20B91D0056795D /* String+Identifiable.swift */; };\n\t\tDA9C3C4A2C20D4B40056795D /* IgnoreSettings.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA9C3C482C20D4B40056795D /* IgnoreSettings.strings */; };\n\t\tDA9C3C5E2C20E1190056795D /* IgnoreApplicationsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9C3C5D2C20E1190056795D /* IgnoreApplicationsSettingsView.swift */; };\n\t\tDA9C3C602C20E1890056795D /* IgnorePasteboardTypesSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9C3C5F2C20E1890056795D /* IgnorePasteboardTypesSettingsView.swift */; };\n\t\tDA9C3C622C20E1BF0056795D /* IgnoreRegexpsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9C3C612C20E1BF0056795D /* IgnoreRegexpsSettingsView.swift */; };\n\t\tDA9C3C652C211B5F0056795D /* AdvancedSettingsPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9C3C642C211B5F0056795D /* AdvancedSettingsPane.swift */; };\n\t\tDAA072D12C4089D3006DDFD2 /* VisualEffectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072D02C4089D3006DDFD2 /* VisualEffectView.swift */; };\n\t\tDAA072D32C40A961006DDFD2 /* Color+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072D22C40A961006DDFD2 /* Color+Random.swift */; };\n\t\tDAA072D52C40AC52006DDFD2 /* HistoryListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072D42C40AC52006DDFD2 /* HistoryListView.swift */; };\n\t\tDAA072D72C41C574006DDFD2 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072D62C41C574006DDFD2 /* AppState.swift */; };\n\t\tDAA072D92C41C5AD006DDFD2 /* Footer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072D82C41C5AD006DDFD2 /* Footer.swift */; };\n\t\tDAA072DB2C41C5DD006DDFD2 /* FooterItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072DA2C41C5DD006DDFD2 /* FooterItem.swift */; };\n\t\tDAA072DD2C41C61F006DDFD2 /* FooterItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072DC2C41C61F006DDFD2 /* FooterItemView.swift */; };\n\t\tDAA072DF2C41C63C006DDFD2 /* ConfirmationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072DE2C41C63C006DDFD2 /* ConfirmationView.swift */; };\n\t\tDAA072E12C41C6E8006DDFD2 /* FooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072E02C41C6E8006DDFD2 /* FooterView.swift */; };\n\t\tDAA072E32C41D1D5006DDFD2 /* ListItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072E22C41D1D5006DDFD2 /* ListItemView.swift */; };\n\t\tDAA072E72C423617006DDFD2 /* NSSize+DefaultsSerializable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072E62C423617006DDFD2 /* NSSize+DefaultsSerializable.swift */; };\n\t\tDAA072E92C42C6AA006DDFD2 /* ListItemTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA072E82C42C6AA006DDFD2 /* ListItemTitleView.swift */; };\n\t\tDAA365CE2C4BF9DD00A394F8 /* PinsSettingsPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA365CD2C4BF9DD00A394F8 /* PinsSettingsPane.swift */; };\n\t\tDAA365D12C4C147400A394F8 /* PinsSettings.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAA365CF2C4C147400A394F8 /* PinsSettings.strings */; };\n\t\tDAA365E72C4C57E600A394F8 /* KeyEquivalent+Keys.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA365E62C4C57E600A394F8 /* KeyEquivalent+Keys.swift */; };\n\t\tDAA54BFA2C3C951900B7FDD8 /* FloatingPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA54BF92C3C951900B7FDD8 /* FloatingPanel.swift */; };\n\t\tDAA5ACB22C1B3F8800B58513 /* GeneralSettingsPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA5ACB12C1B3F8800B58513 /* GeneralSettingsPane.swift */; };\n\t\tDAA5ACB52C1B803000B58513 /* GeneralSettings.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAA5ACB32C1B803000B58513 /* GeneralSettings.strings */; };\n\t\tDAA5ACCA2C1BEE8A00B58513 /* SoftwareUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAA5ACC92C1BEE8A00B58513 /* SoftwareUpdater.swift */; };\n\t\tDAAEB196219694AE00A7883C /* About.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAAEB195219694AE00A7883C /* About.swift */; };\n\t\tDAB082962A2B7B850053E463 /* AppStoreReview.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAB082952A2B7B850053E463 /* AppStoreReview.swift */; };\n\t\tDABDE97F2974706C005B32E9 /* KeyboardLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DABDE97E2974706C005B32E9 /* KeyboardLayout.swift */; };\n\t\tDAC0CA3E2C88E7A4003BF498 /* Fuse in Frameworks */ = {isa = PBXBuildFile; productRef = DAC0CA3D2C88E7A4003BF498 /* Fuse */; };\n\t\tDAC14124232367B200FCFA30 /* Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC14123232367B200FCFA30 /* Search.swift */; };\n\t\tDAC929D7297A0E8B00814F19 /* NSPasteboard.PasteboardType+Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC929D6297A0E8B00814F19 /* NSPasteboard.PasteboardType+Types.swift */; };\n\t\tDAD665662898A1C000975096 /* KeyChord.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD665652898A1C000975096 /* KeyChord.swift */; };\n\t\tDAE28500232257D20080E394 /* ColorImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE284FF232257D20080E394 /* ColorImage.swift */; };\n\t\tDAE2850223225BD90080E394 /* ColorImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE2850123225BD90080E394 /* ColorImageTests.swift */; };\n\t\tDAE8F5D42C43262B00851CA9 /* Popup.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE8F5D32C43262B00851CA9 /* Popup.swift */; };\n\t\tDAEE38471E3DBEB100DD2966 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAEE38461E3DBEB100DD2966 /* AppDelegate.swift */; };\n\t\tDAFE2DDA268A521B00990986 /* String+Shortened.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFE2DD9268A521A00990986 /* String+Shortened.swift */; };\n\t\tDAFE2DE9268A9B1B00990986 /* HistoryItemTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFE2DE8268A9B1B00990986 /* HistoryItemTests.swift */; };\n\t\tDAFEF0B8249D7DEE006029E8 /* KeyboardShortcuts.Name+Shortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAFEF0B7249D7DEE006029E8 /* KeyboardShortcuts.Name+Shortcuts.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tDA0EE7BB204657840025FC60 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = DAEE383B1E3DBEB100DD2966 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = DAEE38421E3DBEB100DD2966;\n\t\t\tremoteInfo = Maccy;\n\t\t};\n\t\tDA360DB51E3DF137005C6F6B /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = DAEE383B1E3DBEB100DD2966 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = DAEE38421E3DBEB100DD2966;\n\t\t\tremoteInfo = Maccy;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\tDAAAAB942C7664A2004FBC3C /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t088F4DA628BECBC40003AD19 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t0ABDD5112BB47F1E0054963B /* NSWorkspace+ApplicationName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSWorkspace+ApplicationName.swift\"; sourceTree = \"<group>\"; };\n\t\t1180C7372826B6140086870C /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t11EB892C281DADFF00A78CB4 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t2F0EC7782E7727E3003E2EA9 /* HeightReaderModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeightReaderModifier.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC77A2E772899003E2EA9 /* PinsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinsView.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC77C2E773314003E2EA9 /* Selection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Selection.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC77E2E773DBA003E2EA9 /* MultipleSelectionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipleSelectionListView.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC7802E773F1D003E2EA9 /* PasteStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteStack.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC7842E77407C003E2EA9 /* PasteStackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteStackView.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC7862E774093003E2EA9 /* PasteStackItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteStackItemView.swift; sourceTree = \"<group>\"; };\n\t\t2F0EC7882E7743D9003E2EA9 /* HoverSelectionModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HoverSelectionModifier.swift; sourceTree = \"<group>\"; };\n\t\t2F1091D62F2B6E8100F5C454 /* AsyncView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncView.swift; sourceTree = \"<group>\"; };\n\t\t2F162E7F2F1E7B28001FBAFF /* PasteStackPreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteStackPreviewView.swift; sourceTree = \"<group>\"; };\n\t\t2F1A79BF2C6DFB7800C98EBD /* SearchVisibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchVisibility.swift; sourceTree = \"<group>\"; };\n\t\t2F578C3C2EFFE8400088B759 /* ItemsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemsProtocol.swift; sourceTree = \"<group>\"; };\n\t\t2F578C3E2EFFE8720088B759 /* SlideoutController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlideoutController.swift; sourceTree = \"<group>\"; };\n\t\t2F578C402EFFE8920088B759 /* SlideoutContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlideoutContentView.swift; sourceTree = \"<group>\"; };\n\t\t2F578C412EFFE8920088B759 /* SlideoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlideoutView.swift; sourceTree = \"<group>\"; };\n\t\t2F8B9DE52C5D6E5D0046EF69 /* NSPoint+DefaultsSerializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSPoint+DefaultsSerializable.swift\"; sourceTree = \"<group>\"; };\n\t\t2F9B42EE2F1A4948006548E5 /* ListHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListHeaderView.swift; sourceTree = \"<group>\"; };\n\t\t2F9B42F02F1A4999006548E5 /* ToolbarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolbarView.swift; sourceTree = \"<group>\"; };\n\t\t2FA81FDF2E43D9A600C12F92 /* Dictionary+RemoveItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Dictionary+RemoveItem.swift\"; sourceTree = \"<group>\"; };\n\t\t2FB5BC9F2CD8F73C008B33F4 /* ApplicationImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationImage.swift; sourceTree = \"<group>\"; };\n\t\t2FF2E94D2E774B570093D72C /* NavigationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationManager.swift; sourceTree = \"<group>\"; };\n\t\t2FF2E94F2E7808420093D72C /* AppImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppImageView.swift; sourceTree = \"<group>\"; };\n\t\t2FFF8BCF2CE2116600235A78 /* Data+Encoding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Data+Encoding.swift\"; sourceTree = \"<group>\"; };\n\t\t3EBDD1E32BBEF22800C57500 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t4762D6982467226100B3A2BA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t4762D69A2467226400B3A2BA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t4DC4D112252713D700FE5FAC /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t5212BB662E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\t5212BB672E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\t5212BB682E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\t5212BB692E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\t5212BB6A2E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\t5212BB6B2E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\t5212BB6C2E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\t5212BB6D2E59AA5200E74A24 /* ckb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ckb; path = ckb.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t7CEEFDF124F41F8500ECAD2A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/Localizable.strings\"; sourceTree = \"<group>\"; };\n\t\tABC72863283A9053001EE086 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA00992C256411F90030E697 /* appcast.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = appcast.xml; sourceTree = \"<group>\"; };\n\t\tDA00992D256411F90030E697 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = \"<group>\"; };\n\t\tDA00992F256411F90030E697 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = \"<group>\"; };\n\t\tDA05B5102C234CB1006980FE /* MaccyApp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaccyApp.swift; sourceTree = \"<group>\"; };\n\t\tDA05B5122C234DCF006980FE /* HistoryItemContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItemContent.swift; sourceTree = \"<group>\"; };\n\t\tDA05B5132C234DCF006980FE /* HistoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItem.swift; sourceTree = \"<group>\"; };\n\t\tDA083A6D2C42E8E8004259A0 /* NSImage+Resized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSImage+Resized.swift\"; sourceTree = \"<group>\"; };\n\t\tDA08FDE7282596FA0001F3DA /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/Localizable.strings\"; sourceTree = \"<group>\"; };\n\t\tDA0D57762E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57772E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57782E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57792E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D577A2E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D577B2E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D577C2E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA0D577D2E4246B3005101AF /* ro */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ro; path = ro.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA0D577E2E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D577F2E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57802E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57812E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57822E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57832E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57842E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA0D57852E424784005101AF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA0EE7B6204657830025FC60 /* MaccyUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MaccyUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tDA0EE7B8204657830025FC60 /* MaccyUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaccyUITests.swift; sourceTree = \"<group>\"; };\n\t\tDA0EF1871E444B2A00E58577 /* Clipboard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Clipboard.swift; sourceTree = \"<group>\"; };\n\t\tDA0FFA292C8D0FEC00A66C97 /* ModifierFlags+Description.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"ModifierFlags+Description.swift\"; sourceTree = \"<group>\"; };\n\t\tDA13D7D12C19F91B00FA9E23 /* Defaults.Keys+Names.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Defaults.Keys+Names.swift\"; sourceTree = \"<group>\"; };\n\t\tDA13D7D32C1A223E00FA9E23 /* Select.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Select.swift; sourceTree = \"<group>\"; };\n\t\tDA13D7D42C1A223E00FA9E23 /* Get.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Get.swift; sourceTree = \"<group>\"; };\n\t\tDA13D7D52C1A223E00FA9E23 /* Clear.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Clear.swift; sourceTree = \"<group>\"; };\n\t\tDA13D7D62C1A223E00FA9E23 /* Delete.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Delete.swift; sourceTree = \"<group>\"; };\n\t\tDA13D7D72C1A223E00FA9E23 /* HistoryItemAppEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItemAppEntity.swift; sourceTree = \"<group>\"; };\n\t\tDA13D7DD2C1A436E00FA9E23 /* AppIntentError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIntentError.swift; sourceTree = \"<group>\"; };\n\t\tDA181176247D14DA00066D55 /* Settings.PaneIdentifier+Panes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Settings.PaneIdentifier+Panes.swift\"; sourceTree = \"<group>\"; };\n\t\tDA19690D2C3EEFA900258481 /* KeyboardShortcutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardShortcutView.swift; sourceTree = \"<group>\"; };\n\t\tDA19690F2C3F0AAC00258481 /* KeyShortcut.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyShortcut.swift; sourceTree = \"<group>\"; };\n\t\tDA1969112C3F0DD200258481 /* HistoryItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItemView.swift; sourceTree = \"<group>\"; };\n\t\tDA1969132C3F11D600258481 /* PreviewItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewItemView.swift; sourceTree = \"<group>\"; };\n\t\tDA1969172C3F327500258481 /* SearchFieldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchFieldView.swift; sourceTree = \"<group>\"; };\n\t\tDA1969192C3F369800258481 /* HeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderView.swift; sourceTree = \"<group>\"; };\n\t\tDA19691B2C3F3EAC00258481 /* Collection+Surrounding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Collection+Surrounding.swift\"; sourceTree = \"<group>\"; };\n\t\tDA19691E2C3F5F0600258481 /* KeyHandlingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyHandlingView.swift; sourceTree = \"<group>\"; };\n\t\tDA1969202C3F6C6800258481 /* HistoryItemAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItemAction.swift; sourceTree = \"<group>\"; };\n\t\tDA1EDE422045B35300479723 /* HistoryDecoratorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryDecoratorTests.swift; sourceTree = \"<group>\"; };\n\t\tDA20FA712B082DD600056DD5 /* Notifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notifier.swift; sourceTree = \"<group>\"; };\n\t\tDA20FA732B082E0100056DD5 /* Knock.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Knock.caf; sourceTree = \"<group>\"; };\n\t\tDA20FA752B082E0800056DD5 /* Write.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Write.caf; sourceTree = \"<group>\"; };\n\t\tDA20FA772B082E1A00056DD5 /* NSSound+Named.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSSound+Named.swift\"; sourceTree = \"<group>\"; };\n\t\tDA243D112C2F64820012A27F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = \"<group>\"; };\n\t\tDA243D132C2F66DD0012A27F /* Storage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Storage.swift; sourceTree = \"<group>\"; };\n\t\tDA2595D82CBC44BD00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA2595D92CBC44BD00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA2595DA2CBC44BD00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA2595DB2CBC44BE00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA2595DC2CBC44BE00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA2595DD2CBC44BE00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA2595DE2CBC44BE00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA2595DF2CBC44BE00A0A7F2 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA2F1B0926F22DF4005D30BA /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA360DB01E3DF137005C6F6B /* MaccyTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MaccyTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tDA360DB21E3DF137005C6F6B /* HistoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = HistoryTests.swift; sourceTree = \"<group>\"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };\n\t\tDA360DB41E3DF137005C6F6B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tDA384E85232746D800603999 /* SearchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchTests.swift; sourceTree = \"<group>\"; };\n\t\tDA3873FA2D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA3873FB2D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA3873FC2D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA3873FD2D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA3873FE2D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA3873FF2D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA3874002D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA3874012D09EB7600E7B251 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA3B306D2C2CE46800853E9E /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/Localizable.strings\"; sourceTree = \"<group>\"; };\n\t\tDA3BCB8D2C3E015000B01BC1 /* ModifierFlags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierFlags.swift; sourceTree = \"<group>\"; };\n\t\tDA3BCB912C3EEC3C00B01BC1 /* History.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = History.swift; sourceTree = \"<group>\"; };\n\t\tDA3BCB932C3EECBB00B01BC1 /* HistoryItemDecorator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItemDecorator.swift; sourceTree = \"<group>\"; };\n\t\tDA3CE7FF1E44A62500B3AA98 /* ClipboardTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ClipboardTests.swift; sourceTree = \"<group>\"; };\n\t\tDA3EAE0B2AE30F7500F39108 /* NSApplication+Windows.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSApplication+Windows.swift\"; sourceTree = \"<group>\"; };\n\t\tDA3F1B442C90083800267632 /* Sauce+KeyboardShortcuts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Sauce+KeyboardShortcuts.swift\"; sourceTree = \"<group>\"; };\n\t\tDA44C5E32C1C858400819834 /* StorageSettingsPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StorageSettingsPane.swift; sourceTree = \"<group>\"; };\n\t\tDA4566C22CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C32CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C42CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C52CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C62CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C72CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C82CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA4566C92CB0320200059A82 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA48AE882A5F0548006D4894 /* guy.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = guy.jpeg; sourceTree = \"<group>\"; };\n\t\tDA49EE7428B59468002752E0 /* NSRect+Centered.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSRect+Centered.swift\"; sourceTree = \"<group>\"; };\n\t\tDA49EE7828B594DC002752E0 /* NSRunningApplication+WindowFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSRunningApplication+WindowFrame.swift\"; sourceTree = \"<group>\"; };\n\t\tDA4B706A271B7B5300FF324C /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA4C056C2BD416F000FE5FEC /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA5078982CF2676400215488 /* MouseMovedViewModifer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MouseMovedViewModifer.swift; sourceTree = \"<group>\"; };\n\t\tDA555F072CF0F98F009608BD /* ApplicationImageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationImageCache.swift; sourceTree = \"<group>\"; };\n\t\tDA555F092CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA555F0A2CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA555F0B2CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA555F0C2CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA555F0D2CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA555F0E2CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA555F0F2CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA555F102CF108EA009608BD /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = sl.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA555F112CF155A2009608BD /* WrappingTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WrappingTextView.swift; sourceTree = \"<group>\"; };\n\t\tDA5E627F2C39E53F00F4C710 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62812C39E54A00F4C710 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62822C39E54B00F4C710 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62832C39E54C00F4C710 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/PreviewItemView.strings\"; sourceTree = \"<group>\"; };\n\t\tDA5E62842C39E54C00F4C710 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/PreviewItemView.strings\"; sourceTree = \"<group>\"; };\n\t\tDA5E62852C39E54D00F4C710 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62862C39E54D00F4C710 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62872C39E54E00F4C710 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62882C39E54F00F4C710 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62892C39E54F00F4C710 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E628A2C39E55000F4C710 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E628B2C39E55100F4C710 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E628C2C39E55100F4C710 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E628D2C39E55200F4C710 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E628E2C39E55200F4C710 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E628F2C39E55300F4C710 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62902C39E55400F4C710 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62912C39E55500F4C710 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5E62922C39E55500F4C710 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA5F464F2020E4DF00425C11 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };\n\t\tDA60939329188180002D739E /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA60939A291886E4002D739E /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA6373971E4AB9BB00263391 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tDA6491AF29ABCF2400837D93 /* NSScreen+ForPopup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSScreen+ForPopup.swift\"; sourceTree = \"<group>\"; };\n\t\tDA689FAF2C1CD3B00009B887 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB12C1CD40F0009B887 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB22C1CD4110009B887 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB32C1CD4120009B887 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/StorageSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA689FB42C1CD4130009B887 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/StorageSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA689FB52C1CD4140009B887 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB62C1CD4150009B887 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB72C1CD4150009B887 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB82C1CD4160009B887 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FB92C1CD4160009B887 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FBA2C1CD4170009B887 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FBB2C1CD4180009B887 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FBC2C1CD4180009B887 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FBD2C1CD4190009B887 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FBE2C1CD4190009B887 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FBF2C1CD41A0009B887 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FC02C1CD41B0009B887 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FC12C1CD41B0009B887 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FC22C1CD41C0009B887 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FC32C1CF0F00009B887 /* AppearanceSettingsPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppearanceSettingsPane.swift; sourceTree = \"<group>\"; };\n\t\tDA689FC52C1D14F10009B887 /* PopupPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopupPosition.swift; sourceTree = \"<group>\"; };\n\t\tDA689FC72C1D15140009B887 /* PinsPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinsPosition.swift; sourceTree = \"<group>\"; };\n\t\tDA689FC92C1D18890009B887 /* HighlightMatch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HighlightMatch.swift; sourceTree = \"<group>\"; };\n\t\tDA689FCB2C1D1D510009B887 /* MenuIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuIcon.swift; sourceTree = \"<group>\"; };\n\t\tDA689FCE2C1DEE570009B887 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD02C1DEE600009B887 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD12C1DEE620009B887 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD22C1DEE630009B887 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/AppearanceSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA689FD32C1DEE630009B887 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/AppearanceSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA689FD42C1DEE640009B887 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD52C1DEE640009B887 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD62C1DEE650009B887 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD72C1DEE660009B887 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD82C1DEE660009B887 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FD92C1DEE670009B887 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FDA2C1DEE670009B887 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FDB2C1DEE680009B887 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FDC2C1DEE680009B887 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FDD2C1DEE690009B887 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FDE2C1DEE6A0009B887 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FDF2C1DEE6A0009B887 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FE02C1DEE6B0009B887 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA689FE12C1DEE6C0009B887 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA696BCD240177E800DE80CF /* Sorter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sorter.swift; sourceTree = \"<group>\"; };\n\t\tDA696BD12401EEE900DE80CF /* SorterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SorterTests.swift; sourceTree = \"<group>\"; };\n\t\tDA6D98E12AEABE03008A77CE /* Accessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Accessibility.swift; sourceTree = \"<group>\"; };\n\t\tDA740D792C21E6B0007B1A36 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D7B2C21E6B6007B1A36 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D7C2C21E6B7007B1A36 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D7D2C21E6B8007B1A36 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/AdvancedSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA740D7E2C21E6B8007B1A36 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/AdvancedSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA740D7F2C21E6B9007B1A36 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D802C21E6BA007B1A36 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D812C21E6BA007B1A36 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D822C21E6BB007B1A36 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D832C21E6BB007B1A36 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D842C21E6BC007B1A36 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D852C21E6BD007B1A36 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D862C21E6BD007B1A36 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D872C21E6BE007B1A36 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D882C21E6BF007B1A36 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D892C21E6BF007B1A36 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D8A2C21E6C0007B1A36 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D8B2C21E6C0007B1A36 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA740D8C2C21E6C1007B1A36 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA74348E2C509FC400FFBB58 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/PreviewItemView.strings\"; sourceTree = \"<group>\"; };\n\t\tDA74348F2C509FC500FFBB58 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA7A04592D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA7A045A2D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA7A045B2D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA7A045C2D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA7A045D2D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA7A045E2D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA7A045F2D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDA7A04602D720B3200743037 /* uz */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uz; path = uz.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA7A753D26A52F0F00DC16EF /* NSImage+Names.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSImage+Names.swift\"; sourceTree = \"<group>\"; };\n\t\tDA7E87232B7EC74100CA9EDF /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA81D673252A056B009977BC /* Throttler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Throttler.swift; sourceTree = \"<group>\"; };\n\t\tDA86E873255C4DF700D1929F /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C442C207AF80056795D /* IgnoreSettingsPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IgnoreSettingsPane.swift; sourceTree = \"<group>\"; };\n\t\tDA9C3C462C20B91D0056795D /* String+Identifiable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"String+Identifiable.swift\"; sourceTree = \"<group>\"; };\n\t\tDA9C3C492C20D4B40056795D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C4B2C20D4BE0056795D /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C4C2C20D4BE0056795D /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C4D2C20D4BF0056795D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/IgnoreSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA9C3C4E2C20D4C10056795D /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/IgnoreSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDA9C3C4F2C20D4C20056795D /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C502C20D4C20056795D /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C512C20D4C30056795D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C522C20D4C30056795D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C532C20D4C40056795D /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C542C20D4C50056795D /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C552C20D4C60056795D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C562C20D4C60056795D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C572C20D4C70056795D /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C582C20D4C90056795D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C592C20D4C90056795D /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C5A2C20D4CA0056795D /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C5B2C20D4CB0056795D /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C5C2C20D4CB0056795D /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDA9C3C5D2C20E1190056795D /* IgnoreApplicationsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IgnoreApplicationsSettingsView.swift; sourceTree = \"<group>\"; };\n\t\tDA9C3C5F2C20E1890056795D /* IgnorePasteboardTypesSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IgnorePasteboardTypesSettingsView.swift; sourceTree = \"<group>\"; };\n\t\tDA9C3C612C20E1BF0056795D /* IgnoreRegexpsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IgnoreRegexpsSettingsView.swift; sourceTree = \"<group>\"; };\n\t\tDA9C3C642C211B5F0056795D /* AdvancedSettingsPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsPane.swift; sourceTree = \"<group>\"; };\n\t\tDAA072D02C4089D3006DDFD2 /* VisualEffectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VisualEffectView.swift; sourceTree = \"<group>\"; };\n\t\tDAA072D22C40A961006DDFD2 /* Color+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"Color+Random.swift\"; sourceTree = \"<group>\"; };\n\t\tDAA072D42C40AC52006DDFD2 /* HistoryListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryListView.swift; sourceTree = \"<group>\"; };\n\t\tDAA072D62C41C574006DDFD2 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = \"<group>\"; };\n\t\tDAA072D82C41C5AD006DDFD2 /* Footer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Footer.swift; sourceTree = \"<group>\"; };\n\t\tDAA072DA2C41C5DD006DDFD2 /* FooterItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterItem.swift; sourceTree = \"<group>\"; };\n\t\tDAA072DC2C41C61F006DDFD2 /* FooterItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterItemView.swift; sourceTree = \"<group>\"; };\n\t\tDAA072DE2C41C63C006DDFD2 /* ConfirmationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmationView.swift; sourceTree = \"<group>\"; };\n\t\tDAA072E02C41C6E8006DDFD2 /* FooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterView.swift; sourceTree = \"<group>\"; };\n\t\tDAA072E22C41D1D5006DDFD2 /* ListItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItemView.swift; sourceTree = \"<group>\"; };\n\t\tDAA072E62C423617006DDFD2 /* NSSize+DefaultsSerializable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSSize+DefaultsSerializable.swift\"; sourceTree = \"<group>\"; };\n\t\tDAA072E82C42C6AA006DDFD2 /* ListItemTitleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListItemTitleView.swift; sourceTree = \"<group>\"; };\n\t\tDAA2BDCE24676CA7007FE090 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDAA365CD2C4BF9DD00A394F8 /* PinsSettingsPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinsSettingsPane.swift; sourceTree = \"<group>\"; };\n\t\tDAA365D02C4C147400A394F8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365D22C4C147C00A394F8 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365D32C4C147D00A394F8 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365D42C4C147E00A394F8 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/PinsSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAA365D52C4C147F00A394F8 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/PinsSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAA365D62C4C148000A394F8 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365D72C4C148100A394F8 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365D82C4C148200A394F8 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365D92C4C148300A394F8 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365DA2C4C148400A394F8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365DB2C4C148400A394F8 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365DC2C4C148500A394F8 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365DD2C4C148600A394F8 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365DE2C4C148700A394F8 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365DF2C4C148800A394F8 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365E02C4C148900A394F8 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/PinsSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAA365E12C4C148900A394F8 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365E22C4C148A00A394F8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365E32C4C148B00A394F8 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365E42C4C148C00A394F8 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365E52C4C148C00A394F8 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA365E62C4C57E600A394F8 /* KeyEquivalent+Keys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"KeyEquivalent+Keys.swift\"; sourceTree = \"<group>\"; };\n\t\tDAA54BF92C3C951900B7FDD8 /* FloatingPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatingPanel.swift; sourceTree = \"<group>\"; };\n\t\tDAA5ACB12C1B3F8800B58513 /* GeneralSettingsPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsPane.swift; sourceTree = \"<group>\"; };\n\t\tDAA5ACB42C1B803000B58513 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACB72C1BA34800B58513 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACB82C1BA34A00B58513 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = bs.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACB92C1BA34A00B58513 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hans\"; path = \"zh-Hans.lproj/GeneralSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAA5ACBA2C1BA34B00B58513 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"zh-Hant\"; path = \"zh-Hant.lproj/GeneralSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAA5ACBB2C1BA34C00B58513 /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACBC2C1BA34D00B58513 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACBD2C1BA34E00B58513 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACBE2C1BA34F00B58513 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACBF2C1BA35000B58513 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC02C1BA35000B58513 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC12C1BA35100B58513 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC22C1BA35200B58513 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC32C1BA35200B58513 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC42C1BA35A00B58513 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC52C1BA35B00B58513 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC62C1BA35C00B58513 /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC72C1BA35D00B58513 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC82C1BA35E00B58513 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAA5ACC92C1BEE8A00B58513 /* SoftwareUpdater.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoftwareUpdater.swift; sourceTree = \"<group>\"; };\n\t\tDAAEB195219694AE00A7883C /* About.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = About.swift; sourceTree = \"<group>\"; };\n\t\tDAB082952A2B7B850053E463 /* AppStoreReview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStoreReview.swift; sourceTree = \"<group>\"; };\n\t\tDAB6265F2CAD7E4F001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626602CAD7E59001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626612CAD7E6B001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626622CAD7E6E001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626632CAD7E73001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626642CAD7E77001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626652CAD7E96001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDAB626662CAD7EA8001B720E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDAB626682CAD7FB8001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/PinsSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB626692CAD7FBE001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB6266A2CAD7FC2001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB6266B2CAD7FC6001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB6266C2CAD7FC9001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB6266D2CAD7FCF001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAB6266E2CAD7FD6001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/PreviewItemView.strings; sourceTree = \"<group>\"; };\n\t\tDAB6266F2CAD7FDA001B720E /* lv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lv; path = lv.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDAB8CE4024E3677F00A2500E /* Maccy.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Maccy.entitlements; sourceTree = \"<group>\"; };\n\t\tDABDE97E2974706C005B32E9 /* KeyboardLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardLayout.swift; sourceTree = \"<group>\"; };\n\t\tDAC14123232367B200FCFA30 /* Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Search.swift; sourceTree = \"<group>\"; };\n\t\tDAC929D6297A0E8B00814F19 /* NSPasteboard.PasteboardType+Types.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"NSPasteboard.PasteboardType+Types.swift\"; sourceTree = \"<group>\"; };\n\t\tDACCD5822C93605C00BAD74C /* Maccy.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = Maccy.xctestplan; sourceTree = \"<group>\"; };\n\t\tDAD665652898A1C000975096 /* KeyChord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyChord.swift; sourceTree = \"<group>\"; };\n\t\tDADFF1382C2F58D000DB261D /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDAE284FF232257D20080E394 /* ColorImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorImage.swift; sourceTree = \"<group>\"; };\n\t\tDAE2850123225BD90080E394 /* ColorImageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorImageTests.swift; sourceTree = \"<group>\"; };\n\t\tDAE8F5D32C43262B00851CA9 /* Popup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Popup.swift; sourceTree = \"<group>\"; };\n\t\tDAEE38431E3DBEB100DD2966 /* Maccy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Maccy.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tDAEE38461E3DBEB100DD2966 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = AppDelegate.swift; sourceTree = \"<group>\"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };\n\t\tDAEE384D1E3DBEB100DD2966 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tDAF4741E27BB568000B53057 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tDAF74FF92C517B1A0027DBCE /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/AdvancedSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAF74FFA2C517B1E0027DBCE /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/AdvancedSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAF74FFB2C517B260027DBCE /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/AppearanceSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAF74FFC2C517B280027DBCE /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/AppearanceSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAF74FFD2C517B2F0027DBCE /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/GeneralSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAF74FFE2C517B320027DBCE /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/GeneralSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAF74FFF2C517B370027DBCE /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/IgnoreSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAF750002C517B390027DBCE /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/IgnoreSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAF750012C517B3E0027DBCE /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/StorageSettings.strings; sourceTree = \"<group>\"; };\n\t\tDAF750022C517B400027DBCE /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"pt-BR\"; path = \"pt-BR.lproj/StorageSettings.strings\"; sourceTree = \"<group>\"; };\n\t\tDAFE2DD9268A521A00990986 /* String+Shortened.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"String+Shortened.swift\"; sourceTree = \"<group>\"; };\n\t\tDAFE2DE8268A9B1B00990986 /* HistoryItemTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryItemTests.swift; sourceTree = \"<group>\"; };\n\t\tDAFEF0B7249D7DEE006029E8 /* KeyboardShortcuts.Name+Shortcuts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"KeyboardShortcuts.Name+Shortcuts.swift\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tDA0EE7B3204657830025FC60 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDA360DAD1E3DF137005C6F6B /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDAEE38401E3DBEB100DD2966 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t2F39CB042AD9A93C00B749FD /* Sparkle in Frameworks */,\n\t\t\t\tDA009955256414E60030E697 /* KeyboardShortcuts in Frameworks */,\n\t\t\t\tDAC0CA3E2C88E7A4003BF498 /* Fuse in Frameworks */,\n\t\t\t\tDA5F46512020E9FB00425C11 /* Carbon.framework in Frameworks */,\n\t\t\t\t2F12271E2E5C932200A1592A /* Logging in Frameworks */,\n\t\t\t\tDA13D7D02C19F8C300FA9E23 /* Defaults in Frameworks */,\n\t\t\t\tDA009947256414800030E697 /* SwiftHEXColors in Frameworks */,\n\t\t\t\tDA5154D82564102900C01004 /* Sauce in Frameworks */,\n\t\t\t\t2F39CB0A2AD9AE1F00B749FD /* Settings in Frameworks */,\n\t\t\t\tDA13D7CA2C19F52B00FA9E23 /* LaunchAtLogin in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t2FBB7A252B5FECBB00C65BBE /* Extensions */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2FA81FDF2E43D9A600C12F92 /* Dictionary+RemoveItem.swift */,\n\t\t\t\tDA19691B2C3F3EAC00258481 /* Collection+Surrounding.swift */,\n\t\t\t\tDAA072D22C40A961006DDFD2 /* Color+Random.swift */,\n\t\t\t\tDA13D7D12C19F91B00FA9E23 /* Defaults.Keys+Names.swift */,\n\t\t\t\tDAFEF0B7249D7DEE006029E8 /* KeyboardShortcuts.Name+Shortcuts.swift */,\n\t\t\t\tDAA365E62C4C57E600A394F8 /* KeyEquivalent+Keys.swift */,\n\t\t\t\tDA0FFA292C8D0FEC00A66C97 /* ModifierFlags+Description.swift */,\n\t\t\t\tDA3EAE0B2AE30F7500F39108 /* NSApplication+Windows.swift */,\n\t\t\t\tDA7A753D26A52F0F00DC16EF /* NSImage+Names.swift */,\n\t\t\t\tDA083A6D2C42E8E8004259A0 /* NSImage+Resized.swift */,\n\t\t\t\tDAC929D6297A0E8B00814F19 /* NSPasteboard.PasteboardType+Types.swift */,\n\t\t\t\tDA49EE7428B59468002752E0 /* NSRect+Centered.swift */,\n\t\t\t\tDA49EE7828B594DC002752E0 /* NSRunningApplication+WindowFrame.swift */,\n\t\t\t\tDA6491AF29ABCF2400837D93 /* NSScreen+ForPopup.swift */,\n\t\t\t\tDAA072E62C423617006DDFD2 /* NSSize+DefaultsSerializable.swift */,\n\t\t\t\t2F8B9DE52C5D6E5D0046EF69 /* NSPoint+DefaultsSerializable.swift */,\n\t\t\t\tDA20FA772B082E1A00056DD5 /* NSSound+Named.swift */,\n\t\t\t\t0ABDD5112BB47F1E0054963B /* NSWorkspace+ApplicationName.swift */,\n\t\t\t\tDA3F1B442C90083800267632 /* Sauce+KeyboardShortcuts.swift */,\n\t\t\t\tDA181176247D14DA00066D55 /* Settings.PaneIdentifier+Panes.swift */,\n\t\t\t\tDA9C3C462C20B91D0056795D /* String+Identifiable.swift */,\n\t\t\t\tDAFE2DD9268A521A00990986 /* String+Shortened.swift */,\n\t\t\t);\n\t\t\tpath = Extensions;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC2D16D1C2EE365D52E1EE446 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA5F464F2020E4DF00425C11 /* Carbon.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA05B50F2C234C1C006980FE /* Models */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA05B5132C234DCF006980FE /* HistoryItem.swift */,\n\t\t\t\tDA05B5122C234DCF006980FE /* HistoryItemContent.swift */,\n\t\t\t);\n\t\t\tpath = Models;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA0EE7B7204657830025FC60 /* MaccyUITests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA0EE7B8204657830025FC60 /* MaccyUITests.swift */,\n\t\t\t);\n\t\t\tpath = MaccyUITests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA181178247D150B00066D55 /* Settings */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA9C3C642C211B5F0056795D /* AdvancedSettingsPane.swift */,\n\t\t\t\tDA740D782C21E6B0007B1A36 /* AdvancedSettings.strings */,\n\t\t\t\tDA689FC32C1CF0F00009B887 /* AppearanceSettingsPane.swift */,\n\t\t\t\tDA689FCD2C1DEE570009B887 /* AppearanceSettings.strings */,\n\t\t\t\tDAA5ACB12C1B3F8800B58513 /* GeneralSettingsPane.swift */,\n\t\t\t\tDAA5ACB32C1B803000B58513 /* GeneralSettings.strings */,\n\t\t\t\tDA9C3C632C20E1E80056795D /* IgnoreSettingsPane */,\n\t\t\t\tDA9C3C442C207AF80056795D /* IgnoreSettingsPane.swift */,\n\t\t\t\tDA9C3C482C20D4B40056795D /* IgnoreSettings.strings */,\n\t\t\t\tDA44C5E32C1C858400819834 /* StorageSettingsPane.swift */,\n\t\t\t\tDA689FAE2C1CD3B00009B887 /* StorageSettings.strings */,\n\t\t\t\tDAA365CD2C4BF9DD00A394F8 /* PinsSettingsPane.swift */,\n\t\t\t\tDAA365CF2C4C147400A394F8 /* PinsSettings.strings */,\n\t\t\t);\n\t\t\tpath = Settings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA19690C2C3EEF9300258481 /* Views */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2F1091D62F2B6E8100F5C454 /* AsyncView.swift */,\n\t\t\t\t2FF2E94F2E7808420093D72C /* AppImageView.swift */,\n\t\t\t\tDAA072DE2C41C63C006DDFD2 /* ConfirmationView.swift */,\n\t\t\t\tDA243D112C2F64820012A27F /* ContentView.swift */,\n\t\t\t\tDAA072DC2C41C61F006DDFD2 /* FooterItemView.swift */,\n\t\t\t\tDAA072E02C41C6E8006DDFD2 /* FooterView.swift */,\n\t\t\t\tDA1969192C3F369800258481 /* HeaderView.swift */,\n\t\t\t\t2F0EC7782E7727E3003E2EA9 /* HeightReaderModifier.swift */,\n\t\t\t\tDA1969112C3F0DD200258481 /* HistoryItemView.swift */,\n\t\t\t\tDAA072D42C40AC52006DDFD2 /* HistoryListView.swift */,\n\t\t\t\t2F0EC7882E7743D9003E2EA9 /* HoverSelectionModifier.swift */,\n\t\t\t\tDA19690D2C3EEFA900258481 /* KeyboardShortcutView.swift */,\n\t\t\t\tDA19691E2C3F5F0600258481 /* KeyHandlingView.swift */,\n\t\t\t\t2F9B42EE2F1A4948006548E5 /* ListHeaderView.swift */,\n\t\t\t\tDAA072E82C42C6AA006DDFD2 /* ListItemTitleView.swift */,\n\t\t\t\tDAA072E22C41D1D5006DDFD2 /* ListItemView.swift */,\n\t\t\t\tDA5078982CF2676400215488 /* MouseMovedViewModifer.swift */,\n\t\t\t\t2F0EC77E2E773DBA003E2EA9 /* MultipleSelectionListView.swift */,\n\t\t\t\t2F0EC7862E774093003E2EA9 /* PasteStackItemView.swift */,\n\t\t\t\t2F162E7F2F1E7B28001FBAFF /* PasteStackPreviewView.swift */,\n\t\t\t\t2F0EC7842E77407C003E2EA9 /* PasteStackView.swift */,\n\t\t\t\t2F0EC77A2E772899003E2EA9 /* PinsView.swift */,\n\t\t\t\tDA5E627E2C39E53F00F4C710 /* PreviewItemView.strings */,\n\t\t\t\tDA1969132C3F11D600258481 /* PreviewItemView.swift */,\n\t\t\t\tDA1969172C3F327500258481 /* SearchFieldView.swift */,\n\t\t\t\t2F578C402EFFE8920088B759 /* SlideoutContentView.swift */,\n\t\t\t\t2F578C412EFFE8920088B759 /* SlideoutView.swift */,\n\t\t\t\t2F9B42F02F1A4999006548E5 /* ToolbarView.swift */,\n\t\t\t\tDAA072D02C4089D3006DDFD2 /* VisualEffectView.swift */,\n\t\t\t\tDA555F112CF155A2009608BD /* WrappingTextView.swift */,\n\t\t\t);\n\t\t\tpath = Views;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA21AD3C249E85BD003E7C98 /* Sounds */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA20FA732B082E0100056DD5 /* Knock.caf */,\n\t\t\t\tDA20FA752B082E0800056DD5 /* Write.caf */,\n\t\t\t);\n\t\t\tpath = Sounds;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA360DB11E3DF137005C6F6B /* MaccyTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA48AE852A5F0077006D4894 /* Fixtures */,\n\t\t\t\tDA3CE7FF1E44A62500B3AA98 /* ClipboardTests.swift */,\n\t\t\t\tDAE2850123225BD90080E394 /* ColorImageTests.swift */,\n\t\t\t\tDA360DB21E3DF137005C6F6B /* HistoryTests.swift */,\n\t\t\t\tDA1EDE422045B35300479723 /* HistoryDecoratorTests.swift */,\n\t\t\t\tDAFE2DE8268A9B1B00990986 /* HistoryItemTests.swift */,\n\t\t\t\tDA384E85232746D800603999 /* SearchTests.swift */,\n\t\t\t\tDA696BD12401EEE900DE80CF /* SorterTests.swift */,\n\t\t\t\tDA360DB41E3DF137005C6F6B /* Info.plist */,\n\t\t\t);\n\t\t\tpath = MaccyTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA3BCB902C3EEC1000B01BC1 /* Observables */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2FF2E94D2E774B570093D72C /* NavigationManager.swift */,\n\t\t\t\tDAA072D62C41C574006DDFD2 /* AppState.swift */,\n\t\t\t\tDAA072D82C41C5AD006DDFD2 /* Footer.swift */,\n\t\t\t\tDAA072DA2C41C5DD006DDFD2 /* FooterItem.swift */,\n\t\t\t\tDA3BCB912C3EEC3C00B01BC1 /* History.swift */,\n\t\t\t\tDA3BCB932C3EECBB00B01BC1 /* HistoryItemDecorator.swift */,\n\t\t\t\tDA3BCB8D2C3E015000B01BC1 /* ModifierFlags.swift */,\n\t\t\t\tDAE8F5D32C43262B00851CA9 /* Popup.swift */,\n\t\t\t\t2F578C3E2EFFE8720088B759 /* SlideoutController.swift */,\n\t\t\t);\n\t\t\tpath = Observables;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA48AE852A5F0077006D4894 /* Fixtures */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA48AE882A5F0548006D4894 /* guy.jpeg */,\n\t\t\t);\n\t\t\tpath = Fixtures;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA68F91F28BD819E007E2F25 /* Intents */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA13D7DD2C1A436E00FA9E23 /* AppIntentError.swift */,\n\t\t\t\tDA13D7D52C1A223E00FA9E23 /* Clear.swift */,\n\t\t\t\tDA13D7D62C1A223E00FA9E23 /* Delete.swift */,\n\t\t\t\tDA13D7D42C1A223E00FA9E23 /* Get.swift */,\n\t\t\t\tDA13D7D72C1A223E00FA9E23 /* HistoryItemAppEntity.swift */,\n\t\t\t\tDA13D7D32C1A223E00FA9E23 /* Select.swift */,\n\t\t\t);\n\t\t\tpath = Intents;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA9C3C632C20E1E80056795D /* IgnoreSettingsPane */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDA9C3C5D2C20E1190056795D /* IgnoreApplicationsSettingsView.swift */,\n\t\t\t\tDA9C3C5F2C20E1890056795D /* IgnorePasteboardTypesSettingsView.swift */,\n\t\t\t\tDA9C3C612C20E1BF0056795D /* IgnoreRegexpsSettingsView.swift */,\n\t\t\t);\n\t\t\tpath = IgnoreSettingsPane;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDAEE383A1E3DBEB100DD2966 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDAEE38451E3DBEB100DD2966 /* Maccy */,\n\t\t\t\tDA360DB11E3DF137005C6F6B /* MaccyTests */,\n\t\t\t\tDA0EE7B7204657830025FC60 /* MaccyUITests */,\n\t\t\t\tDACCD5822C93605C00BAD74C /* Maccy.xctestplan */,\n\t\t\t\tDA00992C256411F90030E697 /* appcast.xml */,\n\t\t\t\tDA00992F256411F90030E697 /* LICENSE */,\n\t\t\t\tDA00992D256411F90030E697 /* README.md */,\n\t\t\t\tDAEE38441E3DBEB100DD2966 /* Products */,\n\t\t\t\tC2D16D1C2EE365D52E1EE446 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDAEE38441E3DBEB100DD2966 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDAEE38431E3DBEB100DD2966 /* Maccy.app */,\n\t\t\t\tDA360DB01E3DF137005C6F6B /* MaccyTests.xctest */,\n\t\t\t\tDA0EE7B6204657830025FC60 /* MaccyUITests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDAEE38451E3DBEB100DD2966 /* Maccy */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2F0EC7802E773F1D003E2EA9 /* PasteStack.swift */,\n\t\t\t\t2FBB7A252B5FECBB00C65BBE /* Extensions */,\n\t\t\t\tDA68F91F28BD819E007E2F25 /* Intents */,\n\t\t\t\tDA05B50F2C234C1C006980FE /* Models */,\n\t\t\t\tDA3BCB902C3EEC1000B01BC1 /* Observables */,\n\t\t\t\tDA181178247D150B00066D55 /* Settings */,\n\t\t\t\tDA21AD3C249E85BD003E7C98 /* Sounds */,\n\t\t\t\tDA19690C2C3EEF9300258481 /* Views */,\n\t\t\t\tDAAEB195219694AE00A7883C /* About.swift */,\n\t\t\t\tDA6D98E12AEABE03008A77CE /* Accessibility.swift */,\n\t\t\t\tDAEE38461E3DBEB100DD2966 /* AppDelegate.swift */,\n\t\t\t\tDAB082952A2B7B850053E463 /* AppStoreReview.swift */,\n\t\t\t\t2FB5BC9F2CD8F73C008B33F4 /* ApplicationImage.swift */,\n\t\t\t\tDA555F072CF0F98F009608BD /* ApplicationImageCache.swift */,\n\t\t\t\tDA0EF1871E444B2A00E58577 /* Clipboard.swift */,\n\t\t\t\tDAE284FF232257D20080E394 /* ColorImage.swift */,\n\t\t\t\tDAA54BF92C3C951900B7FDD8 /* FloatingPanel.swift */,\n\t\t\t\tDA689FC92C1D18890009B887 /* HighlightMatch.swift */,\n\t\t\t\tDA1969202C3F6C6800258481 /* HistoryItemAction.swift */,\n\t\t\t\t2F578C3C2EFFE8400088B759 /* ItemsProtocol.swift */,\n\t\t\t\tDABDE97E2974706C005B32E9 /* KeyboardLayout.swift */,\n\t\t\t\tDAD665652898A1C000975096 /* KeyChord.swift */,\n\t\t\t\tDA19690F2C3F0AAC00258481 /* KeyShortcut.swift */,\n\t\t\t\tDA05B5102C234CB1006980FE /* MaccyApp.swift */,\n\t\t\t\tDA689FCB2C1D1D510009B887 /* MenuIcon.swift */,\n\t\t\t\tDA20FA712B082DD600056DD5 /* Notifier.swift */,\n\t\t\t\tDA689FC72C1D15140009B887 /* PinsPosition.swift */,\n\t\t\t\tDA689FC52C1D14F10009B887 /* PopupPosition.swift */,\n\t\t\t\tDAC14123232367B200FCFA30 /* Search.swift */,\n\t\t\t\t2F1A79BF2C6DFB7800C98EBD /* SearchVisibility.swift */,\n\t\t\t\t2F0EC77C2E773314003E2EA9 /* Selection.swift */,\n\t\t\t\tDAA5ACC92C1BEE8A00B58513 /* SoftwareUpdater.swift */,\n\t\t\t\tDA696BCD240177E800DE80CF /* Sorter.swift */,\n\t\t\t\tDA243D132C2F66DD0012A27F /* Storage.swift */,\n\t\t\t\tDA81D673252A056B009977BC /* Throttler.swift */,\n\t\t\t\tDAB8CE4024E3677F00A2500E /* Maccy.entitlements */,\n\t\t\t\tDAEE384D1E3DBEB100DD2966 /* Info.plist */,\n\t\t\t\tDA6373971E4AB9BB00263391 /* Assets.xcassets */,\n\t\t\t\t4762D6992467226100B3A2BA /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = Maccy;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tDA0EE7B5204657830025FC60 /* MaccyUITests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = DA0EE7BF204657840025FC60 /* Build configuration list for PBXNativeTarget \"MaccyUITests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDA0EE7B2204657830025FC60 /* Sources */,\n\t\t\t\tDA0EE7B3204657830025FC60 /* Frameworks */,\n\t\t\t\tDA0EE7B4204657830025FC60 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tDA0EE7BC204657840025FC60 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = MaccyUITests;\n\t\t\tproductName = MaccyUITests;\n\t\t\tproductReference = DA0EE7B6204657830025FC60 /* MaccyUITests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.ui-testing\";\n\t\t};\n\t\tDA360DAF1E3DF137005C6F6B /* MaccyTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = DA360DB71E3DF137005C6F6B /* Build configuration list for PBXNativeTarget \"MaccyTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDA360DAC1E3DF137005C6F6B /* Sources */,\n\t\t\t\tDA360DAD1E3DF137005C6F6B /* Frameworks */,\n\t\t\t\tDA360DAE1E3DF137005C6F6B /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tDA360DB61E3DF137005C6F6B /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = MaccyTests;\n\t\t\tproductName = MaccyTests;\n\t\t\tproductReference = DA360DB01E3DF137005C6F6B /* MaccyTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\tDAEE38421E3DBEB100DD2966 /* Maccy */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = DAEE38501E3DBEB100DD2966 /* Build configuration list for PBXNativeTarget \"Maccy\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDAEE383F1E3DBEB100DD2966 /* Sources */,\n\t\t\t\tDAEE38401E3DBEB100DD2966 /* Frameworks */,\n\t\t\t\tDAEE38411E3DBEB100DD2966 /* Resources */,\n\t\t\t\tDAAAAB942C7664A2004FBC3C /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = Maccy;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tDA5154D72564102900C01004 /* Sauce */,\n\t\t\t\tDA009946256414800030E697 /* SwiftHEXColors */,\n\t\t\t\tDA009954256414E60030E697 /* KeyboardShortcuts */,\n\t\t\t\t2F39CB032AD9A93C00B749FD /* Sparkle */,\n\t\t\t\t2F39CB092AD9AE1F00B749FD /* Settings */,\n\t\t\t\tDA13D7C92C19F52B00FA9E23 /* LaunchAtLogin */,\n\t\t\t\tDA13D7CF2C19F8C300FA9E23 /* Defaults */,\n\t\t\t\tDAC0CA3D2C88E7A4003BF498 /* Fuse */,\n\t\t\t\t2F12271D2E5C932200A1592A /* Logging */,\n\t\t\t);\n\t\t\tproductName = Maccy;\n\t\t\tproductReference = DAEE38431E3DBEB100DD2966 /* Maccy.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tDAEE383B1E3DBEB100DD2966 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tLastSwiftUpdateCheck = 0920;\n\t\t\t\tLastUpgradeCheck = 1520;\n\t\t\t\tORGANIZATIONNAME = p0deje;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tDA0EE7B5204657830025FC60 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 9.2;\n\t\t\t\t\t\tDevelopmentTeam = MN3X4648SC;\n\t\t\t\t\t\tLastSwiftMigration = 1020;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t\tTestTargetID = DAEE38421E3DBEB100DD2966;\n\t\t\t\t\t};\n\t\t\t\t\tDA360DAF1E3DF137005C6F6B = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tDevelopmentTeam = MN3X4648SC;\n\t\t\t\t\t\tLastSwiftMigration = 1020;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t\tTestTargetID = DAEE38421E3DBEB100DD2966;\n\t\t\t\t\t};\n\t\t\t\t\tDAEE38421E3DBEB100DD2966 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.2.1;\n\t\t\t\t\t\tLastSwiftMigration = 1020;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = DAEE383E1E3DBEB100DD2966 /* Build configuration list for PBXProject \"Maccy\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tes,\n\t\t\t\tru,\n\t\t\t\t\"zh-Hans\",\n\t\t\t\tfr,\n\t\t\t\tnb,\n\t\t\t\thr,\n\t\t\t\tit,\n\t\t\t\tde,\n\t\t\t\tko,\n\t\t\t\t\"zh-Hant\",\n\t\t\t\tja,\n\t\t\t\tth,\n\t\t\t\ttr,\n\t\t\t\tbs,\n\t\t\t\tuk,\n\t\t\t\the,\n\t\t\t\tnl,\n\t\t\t\tar,\n\t\t\t\t\"pt-BR\",\n\t\t\t\tcs,\n\t\t\t\thu,\n\t\t\t\tlv,\n\t\t\t\tpl,\n\t\t\t\tlt,\n\t\t\t\tsl,\n\t\t\t\tbe,\n\t\t\t\tuz,\n\t\t\t\tro,\n\t\t\t\tvi,\n\t\t\t\tckb,\n\t\t\t);\n\t\t\tmainGroup = DAEE383A1E3DBEB100DD2966;\n\t\t\tpackageReferences = (\n\t\t\t\tDA5154D62564102900C01004 /* XCRemoteSwiftPackageReference \"Sauce\" */,\n\t\t\t\tDA009945256414800030E697 /* XCRemoteSwiftPackageReference \"SwiftHEXColors\" */,\n\t\t\t\tDA009953256414E60030E697 /* XCRemoteSwiftPackageReference \"KeyboardShortcuts\" */,\n\t\t\t\t2F39CB022AD9A93C00B749FD /* XCRemoteSwiftPackageReference \"Sparkle\" */,\n\t\t\t\t2F39CB082AD9AE1F00B749FD /* XCRemoteSwiftPackageReference \"Settings\" */,\n\t\t\t\tDA13D7C82C19F43E00FA9E23 /* XCRemoteSwiftPackageReference \"LaunchAtLogin-Modern\" */,\n\t\t\t\tDA13D7CE2C19F8C300FA9E23 /* XCRemoteSwiftPackageReference \"Defaults\" */,\n\t\t\t\tDAC0CA3C2C88E7A4003BF498 /* XCRemoteSwiftPackageReference \"fuse-swift\" */,\n\t\t\t\t2F12271C2E5C932200A1592A /* XCRemoteSwiftPackageReference \"swift-log\" */,\n\t\t\t);\n\t\t\tproductRefGroup = DAEE38441E3DBEB100DD2966 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tDAEE38421E3DBEB100DD2966 /* Maccy */,\n\t\t\t\tDA360DAF1E3DF137005C6F6B /* MaccyTests */,\n\t\t\t\tDA0EE7B5204657830025FC60 /* MaccyUITests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tDA0EE7B4204657830025FC60 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDA360DAE1E3DF137005C6F6B /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDA48AE892A5F0548006D4894 /* guy.jpeg in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDAEE38411E3DBEB100DD2966 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDA20FA762B082E0800056DD5 /* Write.caf in Resources */,\n\t\t\t\tDA6373981E4AB9BB00263391 /* Assets.xcassets in Resources */,\n\t\t\t\tDAA365D12C4C147400A394F8 /* PinsSettings.strings in Resources */,\n\t\t\t\tDA689FCF2C1DEE570009B887 /* AppearanceSettings.strings in Resources */,\n\t\t\t\t4762D6972467226100B3A2BA /* Localizable.strings in Resources */,\n\t\t\t\tDA009934256411F90030E697 /* LICENSE in Resources */,\n\t\t\t\tDA20FA742B082E0100056DD5 /* Knock.caf in Resources */,\n\t\t\t\tDA009931256411F90030E697 /* appcast.xml in Resources */,\n\t\t\t\tDAA5ACB52C1B803000B58513 /* GeneralSettings.strings in Resources */,\n\t\t\t\tDA740D7A2C21E6B0007B1A36 /* AdvancedSettings.strings in Resources */,\n\t\t\t\tDA689FB02C1CD3B00009B887 /* StorageSettings.strings in Resources */,\n\t\t\t\tDA5E62802C39E53F00F4C710 /* PreviewItemView.strings in Resources */,\n\t\t\t\tDA009932256411F90030E697 /* README.md in Resources */,\n\t\t\t\tDA9C3C4A2C20D4B40056795D /* IgnoreSettings.strings in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tDA0EE7B2204657830025FC60 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDA0EE7B9204657830025FC60 /* MaccyUITests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDA360DAC1E3DF137005C6F6B /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDAFE2DE9268A9B1B00990986 /* HistoryItemTests.swift in Sources */,\n\t\t\t\tDA3CE8001E44A62500B3AA98 /* ClipboardTests.swift in Sources */,\n\t\t\t\tDA1EDE432045B35300479723 /* HistoryDecoratorTests.swift in Sources */,\n\t\t\t\tDAE2850223225BD90080E394 /* ColorImageTests.swift in Sources */,\n\t\t\t\tDA384E86232746D800603999 /* SearchTests.swift in Sources */,\n\t\t\t\tDA696BD22401EEE900DE80CF /* SorterTests.swift in Sources */,\n\t\t\t\tDA360DB31E3DF137005C6F6B /* HistoryTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDAEE383F1E3DBEB100DD2966 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDA19691C2C3F3EAC00258481 /* Collection+Surrounding.swift in Sources */,\n\t\t\t\tDA1969142C3F11D600258481 /* PreviewItemView.swift in Sources */,\n\t\t\t\t2FF2E9502E7808470093D72C /* AppImageView.swift in Sources */,\n\t\t\t\tDAA072D52C40AC52006DDFD2 /* HistoryListView.swift in Sources */,\n\t\t\t\t2F578C422EFFE8920088B759 /* SlideoutContentView.swift in Sources */,\n\t\t\t\t2F578C432EFFE8920088B759 /* SlideoutView.swift in Sources */,\n\t\t\t\tDAB082962A2B7B850053E463 /* AppStoreReview.swift in Sources */,\n\t\t\t\t2FB5BCA02CD8F73F008B33F4 /* ApplicationImage.swift in Sources */,\n\t\t\t\tDA13D7D22C19F91B00FA9E23 /* Defaults.Keys+Names.swift in Sources */,\n\t\t\t\t2F0EC77D2E773314003E2EA9 /* Selection.swift in Sources */,\n\t\t\t\tDA1969102C3F0AAC00258481 /* KeyShortcut.swift in Sources */,\n\t\t\t\tDA9C3C622C20E1BF0056795D /* IgnoreRegexpsSettingsView.swift in Sources */,\n\t\t\t\tDA243D142C2F66DD0012A27F /* Storage.swift in Sources */,\n\t\t\t\t2F0EC7812E773F1D003E2EA9 /* PasteStack.swift in Sources */,\n\t\t\t\tDA5078992CF2676B00215488 /* MouseMovedViewModifer.swift in Sources */,\n\t\t\t\tDA19690E2C3EEFA900258481 /* KeyboardShortcutView.swift in Sources */,\n\t\t\t\tDA243D122C2F64830012A27F /* ContentView.swift in Sources */,\n\t\t\t\tDAD665662898A1C000975096 /* KeyChord.swift in Sources */,\n\t\t\t\tDA689FC42C1CF0F00009B887 /* AppearanceSettingsPane.swift in Sources */,\n\t\t\t\t2F1091D72F2B6E8400F5C454 /* AsyncView.swift in Sources */,\n\t\t\t\tDAA072E72C423617006DDFD2 /* NSSize+DefaultsSerializable.swift in Sources */,\n\t\t\t\tDA9C3C452C207AF80056795D /* IgnoreSettingsPane.swift in Sources */,\n\t\t\t\tDA13D7D82C1A223E00FA9E23 /* Select.swift in Sources */,\n\t\t\t\tDA689FC82C1D15140009B887 /* PinsPosition.swift in Sources */,\n\t\t\t\t2F9B42EF2F1A494C006548E5 /* ListHeaderView.swift in Sources */,\n\t\t\t\tDA13D7D92C1A223E00FA9E23 /* Get.swift in Sources */,\n\t\t\t\t2FF2E94E2E774B5B0093D72C /* NavigationManager.swift in Sources */,\n\t\t\t\tDA1969182C3F327500258481 /* SearchFieldView.swift in Sources */,\n\t\t\t\tDAE8F5D42C43262B00851CA9 /* Popup.swift in Sources */,\n\t\t\t\tDA13D7DA2C1A223E00FA9E23 /* Clear.swift in Sources */,\n\t\t\t\tDA13D7DB2C1A223E00FA9E23 /* Delete.swift in Sources */,\n\t\t\t\tDA19691F2C3F5F0600258481 /* KeyHandlingView.swift in Sources */,\n\t\t\t\tDA13D7DC2C1A223E00FA9E23 /* HistoryItemAppEntity.swift in Sources */,\n\t\t\t\tDAA072D12C4089D3006DDFD2 /* VisualEffectView.swift in Sources */,\n\t\t\t\tDA555F122CF155A8009608BD /* WrappingTextView.swift in Sources */,\n\t\t\t\tDAC929D7297A0E8B00814F19 /* NSPasteboard.PasteboardType+Types.swift in Sources */,\n\t\t\t\tDA9C3C472C20B91D0056795D /* String+Identifiable.swift in Sources */,\n\t\t\t\tDAA365E72C4C57E600A394F8 /* KeyEquivalent+Keys.swift in Sources */,\n\t\t\t\tDA9C3C652C211B5F0056795D /* AdvancedSettingsPane.swift in Sources */,\n\t\t\t\t2FA81FE02E43D9B700C12F92 /* Dictionary+RemoveItem.swift in Sources */,\n\t\t\t\tDAA5ACCA2C1BEE8A00B58513 /* SoftwareUpdater.swift in Sources */,\n\t\t\t\t2F9B42F12F1A499D006548E5 /* ToolbarView.swift in Sources */,\n\t\t\t\tDAA5ACB22C1B3F8800B58513 /* GeneralSettingsPane.swift in Sources */,\n\t\t\t\tDA1969122C3F0DD200258481 /* HistoryItemView.swift in Sources */,\n\t\t\t\tDA0EF1881E444B2A00E58577 /* Clipboard.swift in Sources */,\n\t\t\t\tDA3F1B452C90084600267632 /* Sauce+KeyboardShortcuts.swift in Sources */,\n\t\t\t\tDA689FCC2C1D1D510009B887 /* MenuIcon.swift in Sources */,\n\t\t\t\tDAAEB196219694AE00A7883C /* About.swift in Sources */,\n\t\t\t\tDA6D98E22AEABE03008A77CE /* Accessibility.swift in Sources */,\n\t\t\t\t2F0EC7792E7727E3003E2EA9 /* HeightReaderModifier.swift in Sources */,\n\t\t\t\t2F578C3D2EFFE8400088B759 /* ItemsProtocol.swift in Sources */,\n\t\t\t\tDAFEF0B8249D7DEE006029E8 /* KeyboardShortcuts.Name+Shortcuts.swift in Sources */,\n\t\t\t\tDA1969212C3F6C6800258481 /* HistoryItemAction.swift in Sources */,\n\t\t\t\t0ABDD5122BB47F1E0054963B /* NSWorkspace+ApplicationName.swift in Sources */,\n\t\t\t\tDA19691A2C3F369800258481 /* HeaderView.swift in Sources */,\n\t\t\t\tDA555F082CF0F994009608BD /* ApplicationImageCache.swift in Sources */,\n\t\t\t\tDA44C5E42C1C858400819834 /* StorageSettingsPane.swift in Sources */,\n\t\t\t\tDA05B5142C234DCF006980FE /* HistoryItemContent.swift in Sources */,\n\t\t\t\tDAA072D32C40A961006DDFD2 /* Color+Random.swift in Sources */,\n\t\t\t\tDA05B5152C234DCF006980FE /* HistoryItem.swift in Sources */,\n\t\t\t\tDAA072E32C41D1D5006DDFD2 /* ListItemView.swift in Sources */,\n\t\t\t\tDAA072D92C41C5AD006DDFD2 /* Footer.swift in Sources */,\n\t\t\t\tDA696BCE240177E800DE80CF /* Sorter.swift in Sources */,\n\t\t\t\tDAA072E92C42C6AA006DDFD2 /* ListItemTitleView.swift in Sources */,\n\t\t\t\tDABDE97F2974706C005B32E9 /* KeyboardLayout.swift in Sources */,\n\t\t\t\t2F0EC77B2E772899003E2EA9 /* PinsView.swift in Sources */,\n\t\t\t\tDA49EE7928B594DC002752E0 /* NSRunningApplication+WindowFrame.swift in Sources */,\n\t\t\t\tDAA54BFA2C3C951900B7FDD8 /* FloatingPanel.swift in Sources */,\n\t\t\t\tDA3BCB922C3EEC3C00B01BC1 /* History.swift in Sources */,\n\t\t\t\tDA689FCA2C1D18890009B887 /* HighlightMatch.swift in Sources */,\n\t\t\t\tDA6491B029ABCF2400837D93 /* NSScreen+ForPopup.swift in Sources */,\n\t\t\t\tDA81D674252A056B009977BC /* Throttler.swift in Sources */,\n\t\t\t\tDA05B5112C234CB2006980FE /* MaccyApp.swift in Sources */,\n\t\t\t\t2F0EC77F2E773DBA003E2EA9 /* MultipleSelectionListView.swift in Sources */,\n\t\t\t\t2F0EC7892E7743D9003E2EA9 /* HoverSelectionModifier.swift in Sources */,\n\t\t\t\tDA13D7DE2C1A436E00FA9E23 /* AppIntentError.swift in Sources */,\n\t\t\t\t2F8B9DE62C5D6E5D0046EF69 /* NSPoint+DefaultsSerializable.swift in Sources */,\n\t\t\t\tDAA072D72C41C574006DDFD2 /* AppState.swift in Sources */,\n\t\t\t\tDA9C3C5E2C20E1190056795D /* IgnoreApplicationsSettingsView.swift in Sources */,\n\t\t\t\t2F0EC7872E774099003E2EA9 /* PasteStackItemView.swift in Sources */,\n\t\t\t\tDA20FA722B082DD600056DD5 /* Notifier.swift in Sources */,\n\t\t\t\t2F578C3F2EFFE8720088B759 /* SlideoutController.swift in Sources */,\n\t\t\t\tDAA072DB2C41C5DD006DDFD2 /* FooterItem.swift in Sources */,\n\t\t\t\tDA689FC62C1D14F10009B887 /* PopupPosition.swift in Sources */,\n\t\t\t\tDA49EE7528B59468002752E0 /* NSRect+Centered.swift in Sources */,\n\t\t\t\tDA9C3C602C20E1890056795D /* IgnorePasteboardTypesSettingsView.swift in Sources */,\n\t\t\t\tDA083A6E2C42E8E8004259A0 /* NSImage+Resized.swift in Sources */,\n\t\t\t\t2F162E802F1E7B30001FBAFF /* PasteStackPreviewView.swift in Sources */,\n\t\t\t\tDAA072E12C41C6E8006DDFD2 /* FooterView.swift in Sources */,\n\t\t\t\t2F1A79C02C6DFB7800C98EBD /* SearchVisibility.swift in Sources */,\n\t\t\t\tDAA072DD2C41C61F006DDFD2 /* FooterItemView.swift in Sources */,\n\t\t\t\tDA3EAE0C2AE30F7500F39108 /* NSApplication+Windows.swift in Sources */,\n\t\t\t\tDAFE2DDA268A521B00990986 /* String+Shortened.swift in Sources */,\n\t\t\t\tDAC14124232367B200FCFA30 /* Search.swift in Sources */,\n\t\t\t\tDA0FFA2A2C8D100C00A66C97 /* ModifierFlags+Description.swift in Sources */,\n\t\t\t\tDAEE38471E3DBEB100DD2966 /* AppDelegate.swift in Sources */,\n\t\t\t\tDAA072DF2C41C63C006DDFD2 /* ConfirmationView.swift in Sources */,\n\t\t\t\tDAA365CE2C4BF9DD00A394F8 /* PinsSettingsPane.swift in Sources */,\n\t\t\t\tDA3BCB8E2C3E015000B01BC1 /* ModifierFlags.swift in Sources */,\n\t\t\t\tDA181177247D14DA00066D55 /* Settings.PaneIdentifier+Panes.swift in Sources */,\n\t\t\t\tDA3BCB942C3EECBB00B01BC1 /* HistoryItemDecorator.swift in Sources */,\n\t\t\t\tDAE28500232257D20080E394 /* ColorImage.swift in Sources */,\n\t\t\t\tDA7A753E26A52F0F00DC16EF /* NSImage+Names.swift in Sources */,\n\t\t\t\t2F0EC7852E774083003E2EA9 /* PasteStackView.swift in Sources */,\n\t\t\t\tDA20FA782B082E1A00056DD5 /* NSSound+Named.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\tDA0EE7BC204657840025FC60 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = DAEE38421E3DBEB100DD2966 /* Maccy */;\n\t\t\ttargetProxy = DA0EE7BB204657840025FC60 /* PBXContainerItemProxy */;\n\t\t};\n\t\tDA360DB61E3DF137005C6F6B /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = DAEE38421E3DBEB100DD2966 /* Maccy */;\n\t\t\ttargetProxy = DA360DB51E3DF137005C6F6B /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t4762D6992467226100B3A2BA /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t4762D6982467226100B3A2BA /* en */,\n\t\t\t\t4762D69A2467226400B3A2BA /* es */,\n\t\t\t\tDAA2BDCE24676CA7007FE090 /* ru */,\n\t\t\t\t7CEEFDF124F41F8500ECAD2A /* zh-Hans */,\n\t\t\t\t4DC4D112252713D700FE5FAC /* fr */,\n\t\t\t\tDA86E873255C4DF700D1929F /* nb */,\n\t\t\t\tDA2F1B0926F22DF4005D30BA /* hr */,\n\t\t\t\tDA4B706A271B7B5300FF324C /* it */,\n\t\t\t\tDAF4741E27BB568000B53057 /* de */,\n\t\t\t\t11EB892C281DADFF00A78CB4 /* ko */,\n\t\t\t\tDA08FDE7282596FA0001F3DA /* zh-Hant */,\n\t\t\t\t1180C7372826B6140086870C /* ja */,\n\t\t\t\tABC72863283A9053001EE086 /* th */,\n\t\t\t\t088F4DA628BECBC40003AD19 /* tr */,\n\t\t\t\tDA60939329188180002D739E /* bs */,\n\t\t\t\tDA60939A291886E4002D739E /* uk */,\n\t\t\t\tDA7E87232B7EC74100CA9EDF /* he */,\n\t\t\t\t3EBDD1E32BBEF22800C57500 /* nl */,\n\t\t\t\tDA4C056C2BD416F000FE5FEC /* ar */,\n\t\t\t\tDA3B306D2C2CE46800853E9E /* pt-BR */,\n\t\t\t\tDADFF1382C2F58D000DB261D /* cs */,\n\t\t\t\tDAB626652CAD7E96001B720E /* hu */,\n\t\t\t\tDAB6266F2CAD7FDA001B720E /* lv */,\n\t\t\t\tDA4566C92CB0320200059A82 /* pl */,\n\t\t\t\tDA2595DF2CBC44BE00A0A7F2 /* lt */,\n\t\t\t\tDA555F102CF108EA009608BD /* sl */,\n\t\t\t\tDA3874012D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A04602D720B3200743037 /* uz */,\n\t\t\t\tDA0D577D2E4246B3005101AF /* ro */,\n\t\t\t\tDA0D57852E424784005101AF /* vi */,\n\t\t\t\t5212BB6D2E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA5E627E2C39E53F00F4C710 /* PreviewItemView.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDA5E627F2C39E53F00F4C710 /* en */,\n\t\t\t\tDA5E62812C39E54A00F4C710 /* ar */,\n\t\t\t\tDA5E62822C39E54B00F4C710 /* bs */,\n\t\t\t\tDA5E62832C39E54C00F4C710 /* zh-Hans */,\n\t\t\t\tDA5E62842C39E54C00F4C710 /* zh-Hant */,\n\t\t\t\tDA5E62852C39E54D00F4C710 /* hr */,\n\t\t\t\tDA74348F2C509FC500FFBB58 /* cs */,\n\t\t\t\tDA5E62862C39E54D00F4C710 /* nl */,\n\t\t\t\tDA5E62872C39E54E00F4C710 /* fr */,\n\t\t\t\tDA5E62882C39E54F00F4C710 /* de */,\n\t\t\t\tDA5E62892C39E54F00F4C710 /* he */,\n\t\t\t\tDA5E628A2C39E55000F4C710 /* it */,\n\t\t\t\tDA5E628B2C39E55100F4C710 /* ja */,\n\t\t\t\tDA5E628C2C39E55100F4C710 /* ko */,\n\t\t\t\tDA5E628D2C39E55200F4C710 /* nb */,\n\t\t\t\tDA74348E2C509FC400FFBB58 /* pt-BR */,\n\t\t\t\tDA5E628E2C39E55200F4C710 /* ru */,\n\t\t\t\tDA5E628F2C39E55300F4C710 /* es */,\n\t\t\t\tDA5E62902C39E55400F4C710 /* th */,\n\t\t\t\tDA5E62912C39E55500F4C710 /* tr */,\n\t\t\t\tDA5E62922C39E55500F4C710 /* uk */,\n\t\t\t\tDAB626662CAD7EA8001B720E /* hu */,\n\t\t\t\tDAB6266E2CAD7FD6001B720E /* lv */,\n\t\t\t\tDA4566C82CB0320200059A82 /* pl */,\n\t\t\t\tDA2595DE2CBC44BE00A0A7F2 /* lt */,\n\t\t\t\tDA555F0F2CF108EA009608BD /* sl */,\n\t\t\t\tDA3874002D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A045F2D720B3200743037 /* uz */,\n\t\t\t\tDA0D577C2E4246B3005101AF /* ro */,\n\t\t\t\tDA0D57842E424784005101AF /* vi */,\n\t\t\t\t5212BB6C2E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = PreviewItemView.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA689FAE2C1CD3B00009B887 /* StorageSettings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDA689FAF2C1CD3B00009B887 /* en */,\n\t\t\t\tDA689FB12C1CD40F0009B887 /* ar */,\n\t\t\t\tDA689FB22C1CD4110009B887 /* bs */,\n\t\t\t\tDA689FB32C1CD4120009B887 /* zh-Hans */,\n\t\t\t\tDA689FB42C1CD4130009B887 /* zh-Hant */,\n\t\t\t\tDA689FB52C1CD4140009B887 /* hr */,\n\t\t\t\tDAF750012C517B3E0027DBCE /* cs */,\n\t\t\t\tDA689FB62C1CD4150009B887 /* nl */,\n\t\t\t\tDA689FB72C1CD4150009B887 /* fr */,\n\t\t\t\tDA689FB82C1CD4160009B887 /* de */,\n\t\t\t\tDA689FB92C1CD4160009B887 /* he */,\n\t\t\t\tDA689FBA2C1CD4170009B887 /* it */,\n\t\t\t\tDA689FBB2C1CD4180009B887 /* ja */,\n\t\t\t\tDA689FBC2C1CD4180009B887 /* ko */,\n\t\t\t\tDA689FBD2C1CD4190009B887 /* nb */,\n\t\t\t\tDAF750022C517B400027DBCE /* pt-BR */,\n\t\t\t\tDA689FBE2C1CD4190009B887 /* ru */,\n\t\t\t\tDA689FBF2C1CD41A0009B887 /* es */,\n\t\t\t\tDA689FC02C1CD41B0009B887 /* th */,\n\t\t\t\tDA689FC12C1CD41B0009B887 /* tr */,\n\t\t\t\tDA689FC22C1CD41C0009B887 /* uk */,\n\t\t\t\tDAB626642CAD7E77001B720E /* hu */,\n\t\t\t\tDAB6266D2CAD7FCF001B720E /* lv */,\n\t\t\t\tDA4566C62CB0320200059A82 /* pl */,\n\t\t\t\tDA2595DC2CBC44BE00A0A7F2 /* lt */,\n\t\t\t\tDA555F0D2CF108EA009608BD /* sl */,\n\t\t\t\tDA3873FE2D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A045D2D720B3200743037 /* uz */,\n\t\t\t\tDA0D577A2E4246B3005101AF /* ro */,\n\t\t\t\tDA0D57822E424784005101AF /* vi */,\n\t\t\t\t5212BB6A2E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = StorageSettings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA689FCD2C1DEE570009B887 /* AppearanceSettings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDA689FCE2C1DEE570009B887 /* en */,\n\t\t\t\tDA689FD02C1DEE600009B887 /* ar */,\n\t\t\t\tDA689FD12C1DEE620009B887 /* bs */,\n\t\t\t\tDA689FD22C1DEE630009B887 /* zh-Hans */,\n\t\t\t\tDA689FD32C1DEE630009B887 /* zh-Hant */,\n\t\t\t\tDA689FD42C1DEE640009B887 /* hr */,\n\t\t\t\tDAF74FFB2C517B260027DBCE /* cs */,\n\t\t\t\tDA689FD52C1DEE640009B887 /* nl */,\n\t\t\t\tDA689FD62C1DEE650009B887 /* fr */,\n\t\t\t\tDA689FD72C1DEE660009B887 /* de */,\n\t\t\t\tDA689FD82C1DEE660009B887 /* he */,\n\t\t\t\tDA689FD92C1DEE670009B887 /* it */,\n\t\t\t\tDA689FDA2C1DEE670009B887 /* ja */,\n\t\t\t\tDA689FDB2C1DEE680009B887 /* ko */,\n\t\t\t\tDA689FDC2C1DEE680009B887 /* nb */,\n\t\t\t\tDAF74FFC2C517B280027DBCE /* pt-BR */,\n\t\t\t\tDA689FDD2C1DEE690009B887 /* ru */,\n\t\t\t\tDA689FDE2C1DEE6A0009B887 /* es */,\n\t\t\t\tDA689FDF2C1DEE6A0009B887 /* th */,\n\t\t\t\tDA689FE02C1DEE6B0009B887 /* tr */,\n\t\t\t\tDA689FE12C1DEE6C0009B887 /* uk */,\n\t\t\t\tDAB626612CAD7E6B001B720E /* hu */,\n\t\t\t\tDAB6266A2CAD7FC2001B720E /* lv */,\n\t\t\t\tDA4566C32CB0320200059A82 /* pl */,\n\t\t\t\tDA2595D92CBC44BD00A0A7F2 /* lt */,\n\t\t\t\tDA555F0A2CF108EA009608BD /* sl */,\n\t\t\t\tDA3873FB2D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A045A2D720B3200743037 /* uz */,\n\t\t\t\tDA0D57772E4246B3005101AF /* ro */,\n\t\t\t\tDA0D577F2E424784005101AF /* vi */,\n\t\t\t\t5212BB672E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = AppearanceSettings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA740D782C21E6B0007B1A36 /* AdvancedSettings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDA740D792C21E6B0007B1A36 /* en */,\n\t\t\t\tDA740D7B2C21E6B6007B1A36 /* ar */,\n\t\t\t\tDA740D7C2C21E6B7007B1A36 /* bs */,\n\t\t\t\tDA740D7D2C21E6B8007B1A36 /* zh-Hans */,\n\t\t\t\tDA740D7E2C21E6B8007B1A36 /* zh-Hant */,\n\t\t\t\tDA740D7F2C21E6B9007B1A36 /* hr */,\n\t\t\t\tDAF74FF92C517B1A0027DBCE /* cs */,\n\t\t\t\tDA740D802C21E6BA007B1A36 /* nl */,\n\t\t\t\tDA740D812C21E6BA007B1A36 /* fr */,\n\t\t\t\tDA740D822C21E6BB007B1A36 /* de */,\n\t\t\t\tDA740D832C21E6BB007B1A36 /* he */,\n\t\t\t\tDA740D842C21E6BC007B1A36 /* it */,\n\t\t\t\tDA740D852C21E6BD007B1A36 /* ja */,\n\t\t\t\tDA740D862C21E6BD007B1A36 /* ko */,\n\t\t\t\tDA740D872C21E6BE007B1A36 /* nb */,\n\t\t\t\tDAF74FFA2C517B1E0027DBCE /* pt-BR */,\n\t\t\t\tDA740D882C21E6BF007B1A36 /* ru */,\n\t\t\t\tDA740D892C21E6BF007B1A36 /* es */,\n\t\t\t\tDA740D8A2C21E6C0007B1A36 /* th */,\n\t\t\t\tDA740D8B2C21E6C0007B1A36 /* tr */,\n\t\t\t\tDA740D8C2C21E6C1007B1A36 /* uk */,\n\t\t\t\tDAB626602CAD7E59001B720E /* hu */,\n\t\t\t\tDAB626692CAD7FBE001B720E /* lv */,\n\t\t\t\tDA4566C22CB0320200059A82 /* pl */,\n\t\t\t\tDA2595D82CBC44BD00A0A7F2 /* lt */,\n\t\t\t\tDA555F092CF108EA009608BD /* sl */,\n\t\t\t\tDA3873FA2D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A04592D720B3200743037 /* uz */,\n\t\t\t\tDA0D57762E4246B3005101AF /* ro */,\n\t\t\t\tDA0D577E2E424784005101AF /* vi */,\n\t\t\t\t5212BB662E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = AdvancedSettings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDA9C3C482C20D4B40056795D /* IgnoreSettings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDA9C3C492C20D4B40056795D /* en */,\n\t\t\t\tDA9C3C4B2C20D4BE0056795D /* ar */,\n\t\t\t\tDA9C3C4C2C20D4BE0056795D /* bs */,\n\t\t\t\tDA9C3C4D2C20D4BF0056795D /* zh-Hans */,\n\t\t\t\tDA9C3C4E2C20D4C10056795D /* zh-Hant */,\n\t\t\t\tDA9C3C4F2C20D4C20056795D /* hr */,\n\t\t\t\tDAF74FFF2C517B370027DBCE /* cs */,\n\t\t\t\tDA9C3C502C20D4C20056795D /* fr */,\n\t\t\t\tDA9C3C512C20D4C30056795D /* nl */,\n\t\t\t\tDA9C3C522C20D4C30056795D /* de */,\n\t\t\t\tDA9C3C532C20D4C40056795D /* he */,\n\t\t\t\tDA9C3C542C20D4C50056795D /* it */,\n\t\t\t\tDA9C3C552C20D4C60056795D /* ja */,\n\t\t\t\tDA9C3C562C20D4C60056795D /* ko */,\n\t\t\t\tDA9C3C572C20D4C70056795D /* nb */,\n\t\t\t\tDAF750002C517B390027DBCE /* pt-BR */,\n\t\t\t\tDA9C3C582C20D4C90056795D /* ru */,\n\t\t\t\tDA9C3C592C20D4C90056795D /* es */,\n\t\t\t\tDA9C3C5A2C20D4CA0056795D /* th */,\n\t\t\t\tDA9C3C5B2C20D4CB0056795D /* tr */,\n\t\t\t\tDA9C3C5C2C20D4CB0056795D /* uk */,\n\t\t\t\tDAB626632CAD7E73001B720E /* hu */,\n\t\t\t\tDAB6266C2CAD7FC9001B720E /* lv */,\n\t\t\t\tDA4566C52CB0320200059A82 /* pl */,\n\t\t\t\tDA2595DB2CBC44BE00A0A7F2 /* lt */,\n\t\t\t\tDA555F0C2CF108EA009608BD /* sl */,\n\t\t\t\tDA3873FD2D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A045C2D720B3200743037 /* uz */,\n\t\t\t\tDA0D57792E4246B3005101AF /* ro */,\n\t\t\t\tDA0D57812E424784005101AF /* vi */,\n\t\t\t\t5212BB692E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = IgnoreSettings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDAA365CF2C4C147400A394F8 /* PinsSettings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDAA365D02C4C147400A394F8 /* en */,\n\t\t\t\tDAA365D22C4C147C00A394F8 /* ar */,\n\t\t\t\tDAA365D32C4C147D00A394F8 /* bs */,\n\t\t\t\tDAA365D42C4C147E00A394F8 /* zh-Hans */,\n\t\t\t\tDAA365D52C4C147F00A394F8 /* zh-Hant */,\n\t\t\t\tDAA365D62C4C148000A394F8 /* hr */,\n\t\t\t\tDAA365D72C4C148100A394F8 /* cs */,\n\t\t\t\tDAA365D82C4C148200A394F8 /* nl */,\n\t\t\t\tDAA365D92C4C148300A394F8 /* fr */,\n\t\t\t\tDAA365DA2C4C148400A394F8 /* de */,\n\t\t\t\tDAA365DB2C4C148400A394F8 /* he */,\n\t\t\t\tDAA365DC2C4C148500A394F8 /* it */,\n\t\t\t\tDAA365DD2C4C148600A394F8 /* ja */,\n\t\t\t\tDAA365DE2C4C148700A394F8 /* ko */,\n\t\t\t\tDAA365DF2C4C148800A394F8 /* nb */,\n\t\t\t\tDAA365E02C4C148900A394F8 /* pt-BR */,\n\t\t\t\tDAA365E12C4C148900A394F8 /* ru */,\n\t\t\t\tDAA365E22C4C148A00A394F8 /* es */,\n\t\t\t\tDAA365E32C4C148B00A394F8 /* th */,\n\t\t\t\tDAA365E42C4C148C00A394F8 /* tr */,\n\t\t\t\tDAA365E52C4C148C00A394F8 /* uk */,\n\t\t\t\tDAB6265F2CAD7E4F001B720E /* hu */,\n\t\t\t\tDAB626682CAD7FB8001B720E /* lv */,\n\t\t\t\tDA4566C72CB0320200059A82 /* pl */,\n\t\t\t\tDA2595DD2CBC44BE00A0A7F2 /* lt */,\n\t\t\t\tDA555F0E2CF108EA009608BD /* sl */,\n\t\t\t\tDA3873FF2D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A045E2D720B3200743037 /* uz */,\n\t\t\t\tDA0D577B2E4246B3005101AF /* ro */,\n\t\t\t\tDA0D57832E424784005101AF /* vi */,\n\t\t\t\t5212BB6B2E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = PinsSettings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDAA5ACB32C1B803000B58513 /* GeneralSettings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDAA5ACB42C1B803000B58513 /* en */,\n\t\t\t\tDAA5ACB72C1BA34800B58513 /* ar */,\n\t\t\t\tDAA5ACB82C1BA34A00B58513 /* bs */,\n\t\t\t\tDAA5ACB92C1BA34A00B58513 /* zh-Hans */,\n\t\t\t\tDAA5ACBA2C1BA34B00B58513 /* zh-Hant */,\n\t\t\t\tDAA5ACBB2C1BA34C00B58513 /* hr */,\n\t\t\t\tDAF74FFD2C517B2F0027DBCE /* cs */,\n\t\t\t\tDAA5ACBC2C1BA34D00B58513 /* nl */,\n\t\t\t\tDAA5ACBD2C1BA34E00B58513 /* fr */,\n\t\t\t\tDAA5ACBE2C1BA34F00B58513 /* de */,\n\t\t\t\tDAA5ACBF2C1BA35000B58513 /* he */,\n\t\t\t\tDAA5ACC02C1BA35000B58513 /* it */,\n\t\t\t\tDAA5ACC12C1BA35100B58513 /* ja */,\n\t\t\t\tDAA5ACC22C1BA35200B58513 /* ko */,\n\t\t\t\tDAA5ACC32C1BA35200B58513 /* nb */,\n\t\t\t\tDAF74FFE2C517B320027DBCE /* pt-BR */,\n\t\t\t\tDAA5ACC42C1BA35A00B58513 /* ru */,\n\t\t\t\tDAA5ACC52C1BA35B00B58513 /* es */,\n\t\t\t\tDAA5ACC62C1BA35C00B58513 /* th */,\n\t\t\t\tDAA5ACC72C1BA35D00B58513 /* tr */,\n\t\t\t\tDAA5ACC82C1BA35E00B58513 /* uk */,\n\t\t\t\tDAB626622CAD7E6E001B720E /* hu */,\n\t\t\t\tDAB6266B2CAD7FC6001B720E /* lv */,\n\t\t\t\tDA4566C42CB0320200059A82 /* pl */,\n\t\t\t\tDA2595DA2CBC44BD00A0A7F2 /* lt */,\n\t\t\t\tDA555F0B2CF108EA009608BD /* sl */,\n\t\t\t\tDA3873FC2D09EB7600E7B251 /* be */,\n\t\t\t\tDA7A045B2D720B3200743037 /* uz */,\n\t\t\t\tDA0D57782E4246B3005101AF /* ro */,\n\t\t\t\tDA0D57802E424784005101AF /* vi */,\n\t\t\t\t5212BB682E59AA5200E74A24 /* ckb */,\n\t\t\t);\n\t\t\tname = GeneralSettings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tDA0EE7BD204657840025FC60 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEVELOPMENT_TEAM = MN3X4648SC;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tINFOPLIST_FILE = MaccyUITests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@loader_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = org.p0deje.MaccyUITests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_TARGET_NAME = Maccy;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tDA0EE7BE204657840025FC60 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Mac Developer\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEVELOPMENT_TEAM = MN3X4648SC;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tINFOPLIST_FILE = MaccyUITests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@loader_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = org.p0deje.MaccyUITests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_TARGET_NAME = Maccy;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tDA360DB81E3DF137005C6F6B /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEVELOPMENT_TEAM = MN3X4648SC;\n\t\t\t\tINFOPLIST_FILE = MaccyTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@loader_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = org.p0deje.MaccyTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Maccy.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Maccy\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tDA360DB91E3DF137005C6F6B /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_IDENTITY = \"Mac Developer\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEVELOPMENT_TEAM = MN3X4648SC;\n\t\t\t\tINFOPLIST_FILE = MaccyTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t\t\"@loader_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = org.p0deje.MaccyTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Maccy.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Maccy\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tDAEE384E1E3DBEB100DD2966 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"-\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_SWIFT3_OBJC_INFERENCE = Default;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tDAEE384F1E3DBEB100DD2966 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Mac Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_USER_SCRIPT_SANDBOXING = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_SWIFT3_OBJC_INFERENCE = Default;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tDAEE38511E3DBEB100DD2966 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD)\";\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Maccy/Maccy.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=macosx*]\" = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = 60;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEVELOPMENT_TEAM = MN3X4648SC;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)\",\n\t\t\t\t);\n\t\t\t\tINFOPLIST_FILE = Maccy/Info.plist;\n\t\t\t\tINFOPLIST_KEY_LSApplicationCategoryType = \"public.app-category.productivity\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMARKETING_VERSION = 2.6.1;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = org.p0deje.Maccy;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tDAEE38521E3DBEB100DD2966 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD)\";\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = Maccy/Maccy.entitlements;\n\t\t\t\tCODE_SIGN_IDENTITY = \"Apple Development\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=macosx*]\" = \"Apple Development\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tCURRENT_PROJECT_VERSION = 60;\n\t\t\t\tDEAD_CODE_STRIPPING = YES;\n\t\t\t\tDEVELOPMENT_TEAM = MN3X4648SC;\n\t\t\t\tENABLE_HARDENED_RUNTIME = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"$(PROJECT_DIR)\",\n\t\t\t\t);\n\t\t\t\tINFOPLIST_FILE = Maccy/Info.plist;\n\t\t\t\tINFOPLIST_KEY_LSApplicationCategoryType = \"public.app-category.productivity\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMARKETING_VERSION = 2.6.1;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = org.p0deje.Maccy;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tDA0EE7BF204657840025FC60 /* Build configuration list for PBXNativeTarget \"MaccyUITests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tDA0EE7BD204657840025FC60 /* Debug */,\n\t\t\t\tDA0EE7BE204657840025FC60 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tDA360DB71E3DF137005C6F6B /* Build configuration list for PBXNativeTarget \"MaccyTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tDA360DB81E3DF137005C6F6B /* Debug */,\n\t\t\t\tDA360DB91E3DF137005C6F6B /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tDAEE383E1E3DBEB100DD2966 /* Build configuration list for PBXProject \"Maccy\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tDAEE384E1E3DBEB100DD2966 /* Debug */,\n\t\t\t\tDAEE384F1E3DBEB100DD2966 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tDAEE38501E3DBEB100DD2966 /* Build configuration list for PBXNativeTarget \"Maccy\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tDAEE38511E3DBEB100DD2966 /* Debug */,\n\t\t\t\tDAEE38521E3DBEB100DD2966 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCRemoteSwiftPackageReference section */\n\t\t2F12271C2E5C932200A1592A /* XCRemoteSwiftPackageReference \"swift-log\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/apple/swift-log\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMajorVersion;\n\t\t\t\tminimumVersion = 1.6.4;\n\t\t\t};\n\t\t};\n\t\t2F39CB022AD9A93C00B749FD /* XCRemoteSwiftPackageReference \"Sparkle\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/sparkle-project/Sparkle\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMajorVersion;\n\t\t\t\tminimumVersion = 2.6.3;\n\t\t\t};\n\t\t};\n\t\t2F39CB082AD9AE1F00B749FD /* XCRemoteSwiftPackageReference \"Settings\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/sindresorhus/Settings.git\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMajorVersion;\n\t\t\t\tminimumVersion = 3.1.1;\n\t\t\t};\n\t\t};\n\t\tDA009945256414800030E697 /* XCRemoteSwiftPackageReference \"SwiftHEXColors\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/thii/SwiftHEXColors\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMinorVersion;\n\t\t\t\tminimumVersion = 1.4.1;\n\t\t\t};\n\t\t};\n\t\tDA009953256414E60030E697 /* XCRemoteSwiftPackageReference \"KeyboardShortcuts\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/sindresorhus/KeyboardShortcuts\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMinorVersion;\n\t\t\t\tminimumVersion = 2.0.2;\n\t\t\t};\n\t\t};\n\t\tDA13D7C82C19F43E00FA9E23 /* XCRemoteSwiftPackageReference \"LaunchAtLogin-Modern\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/sindresorhus/LaunchAtLogin-Modern\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMinorVersion;\n\t\t\t\tminimumVersion = 1.1.0;\n\t\t\t};\n\t\t};\n\t\tDA13D7CE2C19F8C300FA9E23 /* XCRemoteSwiftPackageReference \"Defaults\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/sindresorhus/Defaults\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMinorVersion;\n\t\t\t\tminimumVersion = 8.2.0;\n\t\t\t};\n\t\t};\n\t\tDA5154D62564102900C01004 /* XCRemoteSwiftPackageReference \"Sauce\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/Clipy/Sauce\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMinorVersion;\n\t\t\t\tminimumVersion = 2.4.1;\n\t\t\t};\n\t\t};\n\t\tDAC0CA3C2C88E7A4003BF498 /* XCRemoteSwiftPackageReference \"fuse-swift\" */ = {\n\t\t\tisa = XCRemoteSwiftPackageReference;\n\t\t\trepositoryURL = \"https://github.com/krisk/fuse-swift\";\n\t\t\trequirement = {\n\t\t\t\tkind = upToNextMajorVersion;\n\t\t\t\tminimumVersion = 1.4.0;\n\t\t\t};\n\t\t};\n/* End XCRemoteSwiftPackageReference section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\t2F12271D2E5C932200A1592A /* Logging */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = 2F12271C2E5C932200A1592A /* XCRemoteSwiftPackageReference \"swift-log\" */;\n\t\t\tproductName = Logging;\n\t\t};\n\t\t2F39CB032AD9A93C00B749FD /* Sparkle */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = 2F39CB022AD9A93C00B749FD /* XCRemoteSwiftPackageReference \"Sparkle\" */;\n\t\t\tproductName = Sparkle;\n\t\t};\n\t\t2F39CB092AD9AE1F00B749FD /* Settings */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = 2F39CB082AD9AE1F00B749FD /* XCRemoteSwiftPackageReference \"Settings\" */;\n\t\t\tproductName = Settings;\n\t\t};\n\t\tDA009946256414800030E697 /* SwiftHEXColors */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = DA009945256414800030E697 /* XCRemoteSwiftPackageReference \"SwiftHEXColors\" */;\n\t\t\tproductName = SwiftHEXColors;\n\t\t};\n\t\tDA009954256414E60030E697 /* KeyboardShortcuts */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = DA009953256414E60030E697 /* XCRemoteSwiftPackageReference \"KeyboardShortcuts\" */;\n\t\t\tproductName = KeyboardShortcuts;\n\t\t};\n\t\tDA13D7C92C19F52B00FA9E23 /* LaunchAtLogin */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = DA13D7C82C19F43E00FA9E23 /* XCRemoteSwiftPackageReference \"LaunchAtLogin-Modern\" */;\n\t\t\tproductName = LaunchAtLogin;\n\t\t};\n\t\tDA13D7CF2C19F8C300FA9E23 /* Defaults */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = DA13D7CE2C19F8C300FA9E23 /* XCRemoteSwiftPackageReference \"Defaults\" */;\n\t\t\tproductName = Defaults;\n\t\t};\n\t\tDA5154D72564102900C01004 /* Sauce */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = DA5154D62564102900C01004 /* XCRemoteSwiftPackageReference \"Sauce\" */;\n\t\t\tproductName = Sauce;\n\t\t};\n\t\tDAC0CA3D2C88E7A4003BF498 /* Fuse */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tpackage = DAC0CA3C2C88E7A4003BF498 /* XCRemoteSwiftPackageReference \"fuse-swift\" */;\n\t\t\tproductName = Fuse;\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = DAEE383B1E3DBEB100DD2966 /* Project object */;\n}\n"
  },
  {
    "path": "Maccy.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Maccy.xcodeproj/xcshareddata/xcschemes/Maccy.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1540\"\n   version = \"1.7\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\"\n      buildArchitectures = \"Automatic\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"DAEE38421E3DBEB100DD2966\"\n               BuildableName = \"Maccy.app\"\n               BlueprintName = \"Maccy\"\n               ReferencedContainer = \"container:Maccy.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <TestPlans>\n         <TestPlanReference\n            reference = \"container:Maccy.xctestplan\"\n            default = \"YES\">\n         </TestPlanReference>\n      </TestPlans>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"DA360DAF1E3DF137005C6F6B\"\n               BuildableName = \"MaccyTests.xctest\"\n               BlueprintName = \"MaccyTests\"\n               ReferencedContainer = \"container:Maccy.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"DA0EE7B5204657830025FC60\"\n               BuildableName = \"MaccyUITests.xctest\"\n               BlueprintName = \"MaccyUITests\"\n               ReferencedContainer = \"container:Maccy.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"DAEE38421E3DBEB100DD2966\"\n            BuildableName = \"Maccy.app\"\n            BlueprintName = \"Maccy\"\n            ReferencedContainer = \"container:Maccy.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"DAEE38421E3DBEB100DD2966\"\n            BuildableName = \"Maccy.app\"\n            BlueprintName = \"Maccy\"\n            ReferencedContainer = \"container:Maccy.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Maccy.xctestplan",
    "content": "{\n  \"configurations\" : [\n    {\n      \"id\" : \"AF4E53A3-F52D-4A3E-B9EF-EF728B4C1AAA\",\n      \"name\" : \"Test Scheme Action\",\n      \"options\" : {\n\n      }\n    }\n  ],\n  \"defaultOptions\" : {\n    \"commandLineArgumentEntries\" : [\n      {\n        \"argument\" : \"enable-testing\"\n      }\n    ],\n    \"targetForVariableExpansion\" : {\n      \"containerPath\" : \"container:Maccy.xcodeproj\",\n      \"identifier\" : \"DAEE38421E3DBEB100DD2966\",\n      \"name\" : \"Maccy\"\n    },\n    \"testRepetitionMode\" : \"retryOnFailure\"\n  },\n  \"testTargets\" : [\n    {\n      \"skippedTests\" : [\n        \"HistoryTests\",\n        \"HistoryTests\\/testAdding()\",\n        \"HistoryTests\\/testAddingItemFromMaccy()\",\n        \"HistoryTests\\/testAddingItemThatIsSupersededByExisting()\",\n        \"HistoryTests\\/testAddingItemWithDifferentModifiedType()\",\n        \"HistoryTests\\/testAddingSame()\",\n        \"HistoryTests\\/testClearingAll()\",\n        \"HistoryTests\\/testClearingUnpinned()\",\n        \"HistoryTests\\/testDefaultIsEmpty()\",\n        \"HistoryTests\\/testMaxSize()\",\n        \"HistoryTests\\/testMaxSizeIgnoresPinned()\",\n        \"HistoryTests\\/testMaxSizeIsChanged()\",\n        \"HistoryTests\\/testModifiedAfterCopying()\",\n        \"HistoryTests\\/testRemoving()\"\n      ],\n      \"target\" : {\n        \"containerPath\" : \"container:Maccy.xcodeproj\",\n        \"identifier\" : \"DA360DAF1E3DF137005C6F6B\",\n        \"name\" : \"MaccyTests\"\n      }\n    },\n    {\n      \"target\" : {\n        \"containerPath\" : \"container:Maccy.xcodeproj\",\n        \"identifier\" : \"DA0EE7B5204657830025FC60\",\n        \"name\" : \"MaccyUITests\"\n      }\n    }\n  ],\n  \"version\" : 1\n}\n"
  },
  {
    "path": "MaccyTests/ClipboardTests.swift",
    "content": "import XCTest\nimport Defaults\n@testable import Maccy\n\n// swiftlint:disable type_body_length\nclass ClipboardTests: XCTestCase {\n  let clipboard = Clipboard.shared\n  let pasteboard = NSPasteboard.general\n  let image = NSImage(named: \"NSInfo\")!\n  let coloredString = NSAttributedString(string: \"foo\",\n                                         attributes: [.foregroundColor: NSColor.red])\n\n  let dynamicType = NSPasteboard.PasteboardType(rawValue: \"dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1e82xnqzv\")\n  let customType = NSPasteboard.PasteboardType(rawValue: \"org.maccy.ConfidentialType\")\n  let fileURLType = NSPasteboard.PasteboardType.fileURL\n  let htmlType = NSPasteboard.PasteboardType.html\n  let rtfType = NSPasteboard.PasteboardType.rtf\n  let stringType = NSPasteboard.PasteboardType.string\n  let tiffType = NSPasteboard.PasteboardType.tiff\n  let transientType = NSPasteboard.PasteboardType.transient\n  let unknownType = NSPasteboard.PasteboardType(rawValue: \"com.apple.AnnotationKit.AnnotationItem\")\n\n  let savedEnabledTypes = Defaults[.enabledPasteboardTypes]\n  let savedIgnoreEvents = Defaults[.ignoreEvents]\n  let savedIgnoreAllAppsExceptListed = Defaults[.ignoreAllAppsExceptListed]\n  let savedIgnoredApps = Defaults[.ignoredApps]\n  let savedIgnoredPasteboardTypes = Defaults[.ignoredPasteboardTypes]\n\n  override func setUp() {\n    super.setUp()\n    Defaults[.ignoreAllAppsExceptListed] = false\n    Defaults[.ignoreEvents] = false\n  }\n\n  override func tearDown() {\n    super.tearDown()\n    Defaults[.enabledPasteboardTypes] = savedEnabledTypes\n    Defaults[.ignoreEvents] = savedIgnoreEvents\n    Defaults[.ignoreOnlyNextEvent] = false\n    Defaults[.ignoreAllAppsExceptListed] = savedIgnoreAllAppsExceptListed\n    Defaults[.ignoredApps] = savedIgnoredApps\n    Defaults[.ignoredPasteboardTypes] = savedIgnoredPasteboardTypes\n    clipboard.clearHooks()\n  }\n\n  func testChangesListenerAndAddHooks() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\"bar\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreStringWithOnlySpaces() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\" \", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreStringWithOnlyNewlines() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\"\\n\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testDoesNotIgnoreRTF() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    let rtf = NSAttributedString(string: \"foo\").rtf(\n      from: NSRange(0...2),\n      documentAttributes: [:]\n    )\n    pasteboard.declareTypes([.rtf], owner: nil)\n    pasteboard.setData(rtf, forType: .rtf)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testDoesNotIgnoreHTML() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.html], owner: nil)\n    pasteboard.setString(\"foo\", forType: .html)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreEventsIsEnabled() {\n    Defaults[.ignoreEvents] = true\n\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\"foo\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreOnlyNextEventIsEnabled() {\n    Defaults[.ignoreEvents] = true\n    Defaults[.ignoreOnlyNextEvent] = true\n\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\"foo\", forType: .string)\n    waitForExpectations(timeout: 2)\n\n    XCTAssertFalse(Defaults[.ignoreEvents])\n    XCTAssertFalse(Defaults[.ignoreOnlyNextEvent])\n  }\n\n  func testIgnoreApplication() {\n    Defaults[.ignoredApps] = [\"com.apple.dt.Xcode\", \"com.apple.finder\"] // Finder is on Bitrise\n\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\"bar\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreAllApplicationsExcept() {\n    Defaults[.ignoreAllAppsExceptListed] = true\n    Defaults[.ignoredApps] = [\"com.apple.dt.Xcode\", \"com.apple.finder\"] // Finder is on Bitrise\n\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string], owner: nil)\n    pasteboard.setString(\"bar\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreTransientTypes() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string, transientType], owner: nil)\n    pasteboard.setString(\"bar\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreCustomTypes() {\n    Defaults[.ignoredPasteboardTypes] = [customType.rawValue]\n\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.string, customType], owner: nil)\n    pasteboard.setString(\"bar\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testIgnoreCopiesWithUnknownTypes() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    hookExpectation.isInverted = true\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([unknownType], owner: nil)\n    pasteboard.setString(\" \", forType: unknownType)\n    waitForExpectations(timeout: 2)\n  }\n\n  @MainActor\n  func testCopy() {\n    let imageData = image.tiffRepresentation!\n    let contents = [\n      HistoryItemContent(type: stringType.rawValue, value: \"foo\".data(using: .utf8)!),\n      HistoryItemContent(type: tiffType.rawValue, value: imageData),\n      HistoryItemContent(type: fileURLType.rawValue, value: \"file://foo.bar\".data(using: .utf8)!)\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.application = \"com.foo.bar\"\n    clipboard.copy(item)\n    XCTAssertEqual(pasteboard.string(forType: .string), \"foo\")\n    XCTAssertEqual(pasteboard.data(forType: .tiff), imageData)\n    XCTAssertEqual(pasteboard.string(forType: .fileURL), \"file://foo.bar\")\n    XCTAssertEqual(pasteboard.string(forType: .fromMaccy), \"\")\n    XCTAssertEqual(pasteboard.string(forType: .source), \"com.foo.bar\")\n  }\n\n  @MainActor\n  func testCopyWithoutFormatting() {\n    let contents = [\n      HistoryItemContent(type: stringType.rawValue, value: \"foo\".data(using: .utf8)!),\n      HistoryItemContent(type: fileURLType.rawValue, value: \"file://foo.bar\".data(using: .utf8)!),\n      HistoryItemContent(type: rtfType.rawValue,\n                         value: coloredString.rtf(from: NSRange(location: 0, length: coloredString.length),\n                                                  documentAttributes: [:]))\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.application = \"com.foo.bar\"\n    clipboard.copy(item, removeFormatting: true)\n    XCTAssertEqual(pasteboard.string(forType: .string), \"foo\")\n    XCTAssertEqual(pasteboard.string(forType: .fromMaccy), \"\")\n    XCTAssertEqual(pasteboard.string(forType: .source), \"com.foo.bar\")\n    XCTAssertEqual(pasteboard.string(forType: .fileURL), \"file://foo.bar\")\n    XCTAssertNil(pasteboard.data(forType: .rtf))\n  }\n\n  func testHandlesItemsWithoutData() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    pasteboard.clearContents()\n    clipboard.onNewCopy({ (_: HistoryItem) in\n      hookExpectation.fulfill()\n    })\n    clipboard.start()\n    pasteboard.declareTypes([.fileURL, .string], owner: nil)\n    // fileURL is left without data\n    pasteboard.setString(\"bar\", forType: .string)\n    waitForExpectations(timeout: 2)\n  }\n\n  func testMergesMultipleItems() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (item: HistoryItem) in\n      XCTAssertEqual(\n        Set(item.contents.map({ $0.type })),\n        Set([self.tiffType.rawValue, self.stringType.rawValue])\n      )\n      hookExpectation.fulfill()\n    })\n\n    let item1 = NSPasteboardItem()\n    item1.setString(\"foo\", forType: .string)\n    let item2 = NSPasteboardItem()\n    item2.setData(image.tiffRepresentation!, forType: .tiff)\n\n    clipboard.start()\n    pasteboard.clearContents()\n    pasteboard.writeObjects([item1, item2])\n\n    waitForExpectations(timeout: 2)\n  }\n\n  func testRemovesDisabledTypes() {\n    Defaults[.enabledPasteboardTypes] = [.fileURL]\n\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (item: HistoryItem) in\n      XCTAssertEqual(item.contents.map({ $0.type }), [self.fileURLType.rawValue])\n      hookExpectation.fulfill()\n    })\n\n    let item = NSPasteboardItem()\n    item.setString(\"foo\", forType: .string)\n    item.setData(image.tiffRepresentation!, forType: .tiff)\n    item.setData(\"file://foo.bar\".data(using: .utf8)!, forType: .fileURL)\n\n    clipboard.start()\n    pasteboard.clearContents()\n    pasteboard.writeObjects([item])\n\n    waitForExpectations(timeout: 2)\n  }\n\n  func testRemovesDynamicTypes() {\n    let hookExpectation = expectation(description: \"Hook is called\")\n    clipboard.onNewCopy({ (item: HistoryItem) in\n      XCTAssertEqual(item.contents.map({ $0.type }), [self.stringType.rawValue])\n      hookExpectation.fulfill()\n    })\n\n    let item = NSPasteboardItem()\n    item.setString(\"foo\", forType: .string)\n    item.setData(\"\".data(using: .utf8)!, forType: dynamicType)\n\n    clipboard.start()\n    pasteboard.clearContents()\n    pasteboard.writeObjects([item])\n\n    waitForExpectations(timeout: 2)\n  }\n}\n// swiftlint:enable type_body_length\n"
  },
  {
    "path": "MaccyTests/ColorImageTests.swift",
    "content": "import XCTest\n@testable import Maccy\n\nclass ColorImageTests: XCTestCase {\n  func testColorImageFromShortHex() {\n    XCTAssertNotNil(ColorImage.from(\"fff\"))\n  }\n\n  func testColorFromFullHex() {\n    XCTAssertNotNil(ColorImage.from(\"#ff8942\"))\n  }\n\n  func testColorFromNotHex() {\n    XCTAssertNil(ColorImage.from(\"foo\"))\n  }\n}\n"
  },
  {
    "path": "MaccyTests/HistoryDecoratorTests.swift",
    "content": "import XCTest\nimport Defaults\n@testable import Maccy\n\n@MainActor\nclass HistoryItemDecoratorTests: XCTestCase {\n  let boldFont = NSFont.boldSystemFont(ofSize: NSFont.systemFontSize)\n  let savedHighlightMatch = Defaults[.highlightMatch]\n  let savedImageMaxHeight = Defaults[.imageMaxHeight]\n\n  var firstCopiedAt: Date! {\n    let formatter = DateFormatter()\n    formatter.dateFormat = \"yyyy/MM/dd HH:mm:ss\"\n    return formatter.date(from: \"2020/07/10 12:31:34\")\n  }\n\n  var lastCopiedAt: Date! {\n    let formatter = DateFormatter()\n    formatter.dateFormat = \"yyyy/MM/dd HH:mm:ss\"\n    return formatter.date(from: \"2020/07/10 12:41:34\")\n  }\n\n  override func setUp() {\n    super.setUp()\n    Defaults[.highlightMatch] = .bold\n    Defaults[.imageMaxHeight] = 40\n  }\n\n  override func tearDown() {\n    super.tearDown()\n    Defaults[.imageMaxHeight] = savedImageMaxHeight\n    Defaults[.highlightMatch] = savedHighlightMatch\n  }\n\n  func testString() {\n    let title = \"foo\"\n    let itemDecorator = historyItemDecorator(title)\n    XCTAssertEqual(itemDecorator.title, title)\n    XCTAssertNil(itemDecorator.previewImage)\n    XCTAssertNil(itemDecorator.thumbnailImage)\n  }\n\n  func testRTF() {\n    let rtf = NSAttributedString(string: \"foo\").rtf(\n      from: NSRange(0...2),\n      documentAttributes: [:]\n    )\n    let itemDecorator = historyItemDecorator(rtf, .rtf)\n    XCTAssertEqual(itemDecorator.title, \"foo\")\n    XCTAssertNil(itemDecorator.previewImage)\n    XCTAssertNil(itemDecorator.thumbnailImage)\n  }\n\n  func testHTML() {\n    let html = \"<a href='#'>foo</a>\".data(using: .utf8)\n    let itemDecorator = historyItemDecorator(html, .html)\n    XCTAssertEqual(itemDecorator.title, \"foo\")\n    XCTAssertNil(itemDecorator.previewImage)\n    XCTAssertNil(itemDecorator.thumbnailImage)\n  }\n\n  func testImage() {\n    let image = NSImage(named: \"StatusBarMenuImage\")!\n    let itemDecorator = historyItemDecorator(image)\n    itemDecorator.sizeImages()\n    XCTAssertEqual(itemDecorator.title, \"\")\n    XCTAssertEqual(itemDecorator.previewImage!.size, image.size)\n    XCTAssertEqual(itemDecorator.thumbnailImage!.size, image.size)\n  }\n\n  // We also need to add test for image with width bigger than max width.\n  func testImageWithHeightBiggerThanMaxHeight() {\n    let image = NSImage(named: \"NSApplicationIcon\")!\n    let itemDecorator = historyItemDecorator(image)\n    itemDecorator.sizeImages()\n    XCTAssertEqual(itemDecorator.thumbnailImage!.size, NSSize(width: 40, height: 40))\n  }\n\n  func testFile() {\n    let url = URL(fileURLWithPath: \"/tmp/foo.bar\")\n    let itemDecorator = historyItemDecorator(url)\n    XCTAssertEqual(itemDecorator.title, \"file:///tmp/foo.bar\")\n    XCTAssertNil(itemDecorator.previewImage)\n    XCTAssertNil(itemDecorator.thumbnailImage)\n  }\n\n  func testFileWithEscapedChars() {\n    let url = URL(fileURLWithPath: \"/tmp/产品培训/产品培训.txt\")\n    let itemDecorator = historyItemDecorator(url)\n    XCTAssertEqual(itemDecorator.title, \"file:///tmp/产品培训/产品培训.txt\")\n    XCTAssertNil(itemDecorator.previewImage)\n    XCTAssertNil(itemDecorator.thumbnailImage)\n  }\n\n  func testItemWithoutData() {\n    let itemDecorator = historyItemDecorator(nil)\n    XCTAssertEqual(itemDecorator.title, \"\")\n    XCTAssertNil(itemDecorator.previewImage)\n    XCTAssertNil(itemDecorator.thumbnailImage)\n  }\n\n  func testUnpinnedByDefault() {\n    let itemDecorator = historyItemDecorator(\"foo\")\n    XCTAssertNil(itemDecorator.item.pin)\n    XCTAssertFalse(itemDecorator.isPinned)\n  }\n\n  func testPin() {\n    let itemDecorator = historyItemDecorator(\"foo\")\n    itemDecorator.togglePin()\n    XCTAssertNotNil(itemDecorator.item.pin)\n    XCTAssertTrue(itemDecorator.isPinned)\n  }\n\n  func testUnpin() {\n    let itemDecorator = historyItemDecorator(\"foo\")\n    itemDecorator.togglePin()\n    itemDecorator.togglePin()\n    XCTAssertNil(itemDecorator.item.pin)\n    XCTAssertFalse(itemDecorator.isPinned)\n  }\n\n  func testHighlight() {\n    let itemDecorator = historyItemDecorator(\"foo bar baz\")\n    itemDecorator.highlight(\"random\", [\n      range(from: 1, to: 2, in: itemDecorator),\n      range(from: 8, to: 10, in: itemDecorator)\n    ])\n    var expectedTitle = AttributedString(\"foo bar baz\")\n    expectedTitle[expectedTitle.range(of: \"oo\")!].font = .bold(.body)()\n    expectedTitle[expectedTitle.range(of: \"baz\")!].font = .bold(.body)()\n    XCTAssertEqual(itemDecorator.attributedTitle, expectedTitle)\n    itemDecorator.highlight(\"\", [])\n    XCTAssertEqual(itemDecorator.attributedTitle, nil)\n  }\n\n  private func historyItemDecorator(\n    _ value: String?,\n    application: String? = \"com.apple.finder\"\n  ) -> HistoryItemDecorator {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: value?.data(using: .utf8)\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n    item.application = application\n    item.firstCopiedAt = firstCopiedAt\n    item.lastCopiedAt = lastCopiedAt\n\n    return HistoryItemDecorator(item)\n  }\n\n  private func historyItemDecorator(\n    _ value: Data?,\n    _ type: NSPasteboard.PasteboardType\n  ) -> HistoryItemDecorator {\n    let contents = [\n      HistoryItemContent(\n        type: type.rawValue,\n        value: value\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n    item.application = \"com.apple.finder\"\n    item.firstCopiedAt = firstCopiedAt\n    item.lastCopiedAt = lastCopiedAt\n    item.numberOfCopies = 2\n\n    return HistoryItemDecorator(item)\n  }\n\n  private func historyItemDecorator(_ value: NSImage) -> HistoryItemDecorator {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.tiff.rawValue,\n        value: value.tiffRepresentation!\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n    item.application = \"com.apple.finder\"\n    item.firstCopiedAt = firstCopiedAt\n    item.lastCopiedAt = lastCopiedAt\n    item.numberOfCopies = 2\n\n    return HistoryItemDecorator(item)\n  }\n\n  private func historyItemDecorator(_ value: URL) -> HistoryItemDecorator {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.fileURL.rawValue,\n        value: value.dataRepresentation\n      ),\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: value.lastPathComponent.data(using: .utf8)\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n    item.application = \"com.apple.finder\"\n    item.firstCopiedAt = firstCopiedAt\n    item.lastCopiedAt = lastCopiedAt\n    item.numberOfCopies = 2\n\n    return HistoryItemDecorator(item)\n  }\n\n  // swiftlint:disable:next identifier_name\n  private func range(from: Int, to: Int, in item: HistoryItemDecorator) -> Range<String.Index> {\n    let startIndex = item.title.startIndex\n    let lowerBound = item.title.index(startIndex, offsetBy: from)\n    let upperBound = item.title.index(startIndex, offsetBy: to + 1)\n\n    return lowerBound..<upperBound\n  }\n}\n"
  },
  {
    "path": "MaccyTests/HistoryItemTests.swift",
    "content": "import XCTest\nimport Defaults\n@testable import Maccy\n\n// swiftlint:disable force_try\n@MainActor\nclass HistoryItemTests: XCTestCase {\n  func testTitleForString() {\n    let title = \"foo\"\n    let item = historyItem(title)\n    XCTAssertEqual(item.title, title)\n  }\n\n  func testTitleWithWhitespaces() {\n    let title = \"   foo bar   \"\n    let item = historyItem(title)\n    XCTAssertEqual(item.title, \"···foo bar···\")\n  }\n\n  func testTitleWithNewlines() {\n    let title = \"\\nfoo\\nbar\\n\"\n    let item = historyItem(title)\n    XCTAssertEqual(item.title, \"⏎foo⏎bar⏎\")\n  }\n\n  func testTitleWithTabs() {\n    let title = \"\\tfoo\\tbar\\t\"\n    let item = historyItem(title)\n    XCTAssertEqual(item.title, \"⇥foo⇥bar⇥\")\n  }\n\n  func testTitleWithRTF() {\n    let rtf = NSAttributedString(string: \"foo\").rtf(\n      from: NSRange(0...2),\n      documentAttributes: [:]\n    )\n    let item = historyItem(rtf, .rtf)\n    XCTAssertEqual(item.title, \"foo\")\n  }\n\n  func testTitleWithHTML() {\n    let html = \"<a href='#'>foo</a>\".data(using: .utf8)\n    let item = historyItem(html, .html)\n    XCTAssertEqual(item.title, \"foo\")\n  }\n\n  func testImage() {\n    let image = NSImage(named: \"NSBluetoothTemplate\")!\n    let item = historyItem(image)\n    XCTAssertEqual(item.title, \"\")\n  }\n\n  func testFile() {\n    let url = URL(fileURLWithPath: \"/tmp/foo.bar\")\n    let item = historyItem(url)\n    XCTAssertEqual(item.title, \"file:///tmp/foo.bar\")\n  }\n\n  func testFileWithEscapedChars() {\n    let url = URL(fileURLWithPath: \"/tmp/产品培训/产品培训.txt\")\n    let item = historyItem(url)\n    XCTAssertEqual(item.title, \"file:///tmp/产品培训/产品培训.txt\")\n  }\n\n  func testTextFromUniversalClipboard() {\n    let url = URL(fileURLWithPath: \"/tmp/foo.bar\")\n    let fileURLContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.fileURL.rawValue,\n      value: url.dataRepresentation\n    )\n    let textContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.string.rawValue,\n      value: url.lastPathComponent.data(using: .utf8)\n    )\n    let universalClipboardContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.universalClipboard.rawValue,\n      value: \"\".data(using: .utf8)\n    )\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = [fileURLContent, textContent, universalClipboardContent]\n    item.title = item.generateTitle()\n    XCTAssertEqual(item.title, \"foo.bar\")\n  }\n\n  func testImageFromUniversalClipboard() {\n    let url = Bundle(for: type(of: self)).url(forResource: \"guy\", withExtension: \"jpeg\")!\n    let fileURLContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.fileURL.rawValue,\n      value: url.dataRepresentation\n    )\n    let universalClipboardContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.universalClipboard.rawValue,\n      value: \"\".data(using: .utf8)\n    )\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = [fileURLContent, universalClipboardContent]\n    XCTAssertEqual(item.image!.tiffRepresentation, NSImage(data: try! Data(contentsOf: url))!.tiffRepresentation)\n  }\n\n  func testFileFromUniversalClipboard() {\n    let url = URL(fileURLWithPath: \"/tmp/foo.bar\")\n    let fileURLContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.fileURL.rawValue,\n      value: url.dataRepresentation\n    )\n    let universalClipboardContent = HistoryItemContent(\n      type: NSPasteboard.PasteboardType.universalClipboard.rawValue,\n      value: \"\".data(using: .utf8)\n    )\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = [fileURLContent, universalClipboardContent]\n    item.title = item.generateTitle()\n    XCTAssertEqual(item.title, \"file:///tmp/foo.bar\")\n  }\n\n  func testItemWithoutData() {\n    let item = historyItem(nil)\n    XCTAssertEqual(item.title, \"\")\n  }\n\n  func testSeveralItemsCanHaveEmptyPin() {\n    let item1 = historyItem(\"foo\")\n    item1.pin = \"\"\n    let item2 = historyItem(\"bar\")\n    item2.pin = \"\"\n    XCTAssertNoThrow(try Storage.shared.context.save())\n    XCTAssertEqual(item1.pin, \"\")\n    XCTAssertEqual(item2.pin, \"\")\n  }\n\n  private func historyItem(_ value: String?) -> HistoryItem {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: value?.data(using: .utf8)\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n\n    return item\n  }\n\n  private func historyItem(_ data: Data?, _ type: NSPasteboard.PasteboardType) -> HistoryItem {\n    let contents = [\n      HistoryItemContent(\n        type: type.rawValue,\n        value: data\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n\n    return item\n  }\n\n  private func historyItem(_ value: NSImage) -> HistoryItem {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.tiff.rawValue,\n        value: value.tiffRepresentation!\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n\n    return item\n  }\n\n  private func historyItem(_ value: URL) -> HistoryItem {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.fileURL.rawValue,\n        value: value.dataRepresentation\n      ),\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: value.lastPathComponent.data(using: .utf8)\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n\n    return item\n  }\n}\n// swiftlint:enable force_try\n"
  },
  {
    "path": "MaccyTests/HistoryTests.swift",
    "content": "import XCTest\nimport Defaults\n@testable import Maccy\n\n@MainActor\nclass HistoryTests: XCTestCase {\n  let savedSize = Defaults[.size]\n  let savedSortBy = Defaults[.sortBy]\n  let history = History.shared\n\n  override func setUp() {\n    super.setUp()\n    history.clearAll()\n    Defaults[.size] = 10\n    Defaults[.sortBy] = .firstCopiedAt\n  }\n\n  override func tearDown() {\n    super.tearDown()\n    Defaults[.size] = savedSize\n    Defaults[.sortBy] = savedSortBy\n  }\n\n  func testDefaultIsEmpty() {\n    XCTAssertEqual(history.items, [])\n  }\n\n  func testAdding() {\n    let first = history.add(historyItem(\"foo\"))\n    let second = history.add(historyItem(\"bar\"))\n    XCTAssertEqual(history.items, [second, first])\n  }\n\n  func testAddingSame() {\n    let first = historyItem(\"foo\")\n    first.title = \"xyz\"\n    first.application = \"iTerm.app\"\n    let firstDecorator = history.add(first)\n    first.pin = \"f\"\n\n    let secondDecorator = history.add(historyItem(\"bar\"))\n\n    let third = historyItem(\"foo\")\n    third.application = \"Xcode.app\"\n    history.add(third)\n\n    XCTAssertEqual(history.items, [firstDecorator, secondDecorator])\n    XCTAssertTrue(history.items[0].item.lastCopiedAt > history.items[0].item.firstCopiedAt)\n    // TODO: This works in reality but fails in tests?!\n    // XCTAssertEqual(history.items[0].item.numberOfCopies, 2)\n    XCTAssertEqual(history.items[0].item.pin, \"f\")\n    XCTAssertEqual(history.items[0].item.title, \"xyz\")\n    XCTAssertEqual(history.items[0].item.application, \"iTerm.app\")\n  }\n\n  func testAddingItemThatIsSupersededByExisting() {\n    let firstContents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: \"one\".data(using: .utf8)!\n      ),\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.rtf.rawValue,\n        value: \"two\".data(using: .utf8)!\n      )\n    ]\n    let firstItem = HistoryItem()\n    Storage.shared.context.insert(firstItem)\n    firstItem.application = \"Maccy.app\"\n    firstItem.contents = firstContents\n    firstItem.title = firstItem.generateTitle()\n    history.add(firstItem)\n\n    let secondContents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: \"one\".data(using: .utf8)!\n      )\n    ]\n    let secondItem = HistoryItem()\n    Storage.shared.context.insert(secondItem)\n    secondItem.application = \"Maccy.app\"\n    secondItem.contents = secondContents\n    secondItem.title = secondItem.generateTitle()\n    let second = history.add(secondItem)\n\n    XCTAssertEqual(history.items, [second])\n    XCTAssertEqual(Set(history.items[0].item.contents), Set(firstContents))\n  }\n\n  func testAddingItemWithDifferentModifiedType() {\n    let firstContents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: \"one\".data(using: .utf8)!\n      ),\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.modified.rawValue,\n        value: \"1\".data(using: .utf8)!\n      )\n    ]\n    let firstItem = HistoryItem()\n    Storage.shared.context.insert(firstItem)\n    firstItem.contents = firstContents\n    history.add(firstItem)\n\n    let secondContents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: \"one\".data(using: .utf8)!\n      ),\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.modified.rawValue,\n        value: \"2\".data(using: .utf8)!\n      )\n    ]\n    let secondItem = HistoryItem()\n    Storage.shared.context.insert(secondItem)\n    secondItem.contents = secondContents\n    let second = history.add(secondItem)\n\n    XCTAssertEqual(history.items, [second])\n    XCTAssertEqual(Set(history.items[0].item.contents), Set(firstContents))\n  }\n\n  func testAddingItemFromMaccy() {\n    let firstContents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: \"one\".data(using: .utf8)\n      )\n    ]\n    let first = HistoryItem()\n    Storage.shared.context.insert(first)\n    first.application = \"Xcode.app\"\n    first.contents = firstContents\n    history.add(first)\n\n    let secondContents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: \"one\".data(using: .utf8)\n      ),\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.fromMaccy.rawValue,\n        value: \"\".data(using: .utf8)\n      )\n    ]\n    let second = HistoryItem()\n    Storage.shared.context.insert(second)\n    second.application = \"Maccy.app\"\n    second.contents = secondContents\n    let secondDecorator = history.add(second)\n\n    XCTAssertEqual(history.items, [secondDecorator])\n    XCTAssertEqual(history.items[0].item.application, \"Xcode.app\")\n    XCTAssertEqual(Set(history.items[0].item.contents), Set(firstContents))\n  }\n\n  func testModifiedAfterCopying() {\n    history.add(historyItem(\"foo\"))\n\n    let modifiedItem = historyItem(\"bar\")\n    modifiedItem.contents.append(HistoryItemContent(\n      type: NSPasteboard.PasteboardType.modified.rawValue,\n      value: String(Clipboard.shared.changeCount).data(using: .utf8)\n    ))\n    let modifiedItemDecorator = history.add(modifiedItem)\n\n    XCTAssertEqual(history.items, [modifiedItemDecorator])\n    XCTAssertEqual(history.items[0].text, \"bar\")\n  }\n\n  func testClearingUnpinned() {\n    let pinned = history.add(historyItem(\"foo\"))\n    pinned.togglePin()\n    history.add(historyItem(\"bar\"))\n    history.clear()\n    XCTAssertEqual(history.items, [pinned])\n  }\n\n  func testClearingAll() {\n    history.add(historyItem(\"foo\"))\n    history.clear()\n    XCTAssertEqual(history.items, [])\n  }\n\n  func testMaxSize() {\n    var items: [HistoryItemDecorator] = []\n    for index in 0...10 {\n      items.append(history.add(historyItem(String(index))))\n    }\n\n    XCTAssertEqual(history.items.count, 10)\n    XCTAssertTrue(history.items.contains(items[10]))\n    XCTAssertFalse(history.items.contains(items[0]))\n  }\n\n  func testMaxSizeIgnoresPinned() {\n    var items: [HistoryItemDecorator] = []\n\n    let item = history.add(historyItem(\"0\"))\n    items.append(item)\n    item.togglePin()\n\n    for index in 1...11 {\n      items.append(history.add(historyItem(String(index))))\n    }\n\n    XCTAssertEqual(history.items.count, 11)\n    XCTAssertTrue(history.items.contains(items[10]))\n    XCTAssertTrue(history.items.contains(items[0]))\n    XCTAssertFalse(history.items.contains(items[1]))\n  }\n\n  func testMaxSizeIsChanged() {\n    var items: [HistoryItemDecorator] = []\n    for index in 0...10 {\n      items.append(history.add(historyItem(String(index))))\n    }\n    Defaults[.size] = 5\n    history.add(historyItem(\"11\"))\n\n    XCTAssertEqual(history.items.count, 5)\n    XCTAssertTrue(history.items.contains(items[10]))\n    XCTAssertFalse(history.items.contains(items[5]))\n  }\n\n  func testRemoving() {\n    let foo = history.add(historyItem(\"foo\"))\n    let bar = history.add(historyItem(\"bar\"))\n    history.delete(foo)\n    XCTAssertEqual(history.items, [bar])\n  }\n\n  private func historyItem(_ value: String) -> HistoryItem {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: value.data(using: .utf8)\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.numberOfCopies = 1\n    item.title = item.generateTitle()\n\n    return item\n  }\n}\n"
  },
  {
    "path": "MaccyTests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "MaccyTests/SearchTests.swift",
    "content": "import XCTest\nimport Defaults\n@testable import Maccy\n\nclass SearchTests: XCTestCase {\n  let savedSearchMode = Defaults[.searchMode]\n  var items: [Search.Searchable]!\n\n  override func tearDown() {\n    super.tearDown()\n    Defaults[.searchMode] = savedSearchMode\n  }\n\n  @MainActor\n  func testSimpleSearch() { // swiftlint:disable:this function_body_length\n    Defaults[.searchMode] = Search.Mode.exact\n    items = [\n      HistoryItemDecorator(historyItemWithTitle(\"foo bar baz\")),\n      HistoryItemDecorator(historyItemWithTitle(\"foo bar zaz\")),\n      HistoryItemDecorator(historyItemWithTitle(\"xxx yyy zzz\"))\n    ]\n\n    XCTAssertEqual(search(\"\"), [\n      Search.SearchResult(score: nil, object: items[0], ranges: []),\n      Search.SearchResult(score: nil, object: items[1], ranges: []),\n      Search.SearchResult(score: nil, object: items[2], ranges: [])\n    ])\n    XCTAssertEqual(search(\"z\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[0],\n        ranges: [range(from: 10, to: 10, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[1],\n        ranges: [range(from: 8, to: 8, in: items[1])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[2],\n        ranges: [range(from: 8, to: 8, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"foo\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[0],\n        ranges: [range(from: 0, to: 2, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[1],\n        ranges: [range(from: 0, to: 2, in: items[1])]\n      )\n    ])\n    XCTAssertEqual(search(\"za\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[1],\n        ranges: [range(from: 8, to: 9, in: items[1])]\n      )\n    ])\n    XCTAssertEqual(search(\"yyy\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[2],\n        ranges: [range(from: 4, to: 6, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"fbb\"), [])\n    XCTAssertEqual(search(\"m\"), [])\n  }\n\n  @MainActor\n  func testFuzzySearch() { // swiftlint:disable:this function_body_length\n    Defaults[.searchMode] = Search.Mode.fuzzy\n    items = [\n      HistoryItemDecorator(historyItemWithTitle(\"foo bar baz\")),\n      HistoryItemDecorator(historyItemWithTitle(\"foo bar zaz\")),\n      HistoryItemDecorator(historyItemWithTitle(\"xxx yyy zzz\"))\n    ]\n\n    XCTAssertEqual(search(\"\"), [\n      Search.SearchResult(score: nil, object: items[0], ranges: []),\n      Search.SearchResult(score: nil, object: items[1], ranges: []),\n      Search.SearchResult(score: nil, object: items[2], ranges: [])\n    ])\n    XCTAssertEqual(search(\"z\"), [\n      Search.SearchResult(\n        score: 0.08,\n        object: items[1],\n        ranges: [range(from: 8, to: 8, in: items[1]), range(from: 10, to: 10, in: items[1])]\n      ),\n      Search.SearchResult(\n        score: 0.08,\n        object: items[2],\n        ranges: [range(from: 8, to: 10, in: items[2])]\n      ),\n      Search.SearchResult(\n        score: 0.1,\n        object: items[0],\n        ranges: [range(from: 10, to: 10, in: items[0])]\n      )\n    ])\n    XCTAssertEqual(search(\"foo\"), [\n      Search.SearchResult(\n        score: 0.0,\n        object: items[0],\n        ranges: [range(from: 0, to: 2, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: 0.0,\n        object: items[1],\n        ranges: [range(from: 0, to: 2, in: items[1])]\n      )\n    ])\n    XCTAssertEqual(search(\"za\"), [\n      Search.SearchResult(\n        score: 0.08,\n        object: items[1],\n        ranges: [range(from: 5, to: 5, in: items[1]), range(from: 8, to: 9, in: items[1])]\n      ),\n      Search.SearchResult(\n        score: 0.54,\n        object: items[0],\n        ranges: [range(from: 5, to: 5, in: items[0]), range(from: 9, to: 10, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: 0.58,\n        object: items[2],\n        ranges: [range(from: 8, to: 10, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"yyy\"), [\n      Search.SearchResult(\n        score: 0.04,\n        object: items[2],\n        ranges: [range(from: 4, to: 6, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"fbb\"), [\n      Search.SearchResult(\n        score: 0.6666666666666666,\n        object: items[0],\n        ranges: [\n          range(from: 0, to: 0, in: items[0]),\n          range(from: 4, to: 4, in: items[0]),\n          range(from: 8, to: 8, in: items[0])\n        ]\n      ),\n      Search.SearchResult(\n        score: 0.6666666666666666,\n        object: items[1],\n        ranges: [range(from: 0, to: 0, in: items[1]), range(from: 4, to: 4, in: items[1])])\n    ])\n    XCTAssertEqual(search(\"m\"), [])\n  }\n\n  @MainActor\n  func testRegexpSearch() { // swiftlint:disable:this function_body_length\n    Defaults[.searchMode] = Search.Mode.regexp\n    items = [\n      HistoryItemDecorator(historyItemWithTitle(\"foo bar baz\")),\n      HistoryItemDecorator(historyItemWithTitle(\"foo bar zaz\")),\n      HistoryItemDecorator(historyItemWithTitle(\"xxx yyy zzz\"))\n    ]\n\n    XCTAssertEqual(search(\"\"), [\n      Search.SearchResult(score: nil, object: items[0], ranges: []),\n      Search.SearchResult(score: nil, object: items[1], ranges: []),\n      Search.SearchResult(score: nil, object: items[2], ranges: [])\n    ])\n    XCTAssertEqual(search(\"z+\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[0],\n        ranges: [range(from: 10, to: 10, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[1],\n        ranges: [range(from: 8, to: 8, in: items[1])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[2],\n        ranges: [range(from: 8, to: 10, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"z*\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[0],\n        ranges: [range(from: 0, to: -1, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[1],\n        ranges: [range(from: 0, to: -1, in: items[1])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[2],\n        ranges: [range(from: 0, to: -1, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"^foo\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[0], ranges: [range(from: 0, to: 2, in: items[0])]\n      ),\n      Search.SearchResult(\n        score: nil,\n        object: items[1], ranges: [range(from: 0, to: 2, in: items[1])]\n      )\n    ])\n    XCTAssertEqual(search(\" za\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[1],\n        ranges: [range(from: 7, to: 9, in: items[1])]\n      )\n    ])\n    XCTAssertEqual(search(\"[y]+\"), [\n      Search.SearchResult(\n        score: nil,\n        object: items[2],\n        ranges: [range(from: 4, to: 6, in: items[2])]\n      )\n    ])\n    XCTAssertEqual(search(\"fbb\"), [])\n    XCTAssertEqual(search(\"m\"), [])\n  }\n\n  private func search(_ string: String) -> [Search.SearchResult] {\n    return Search().search(string: string, within: items)\n  }\n\n  // swiftlint:disable:next identifier_name\n  private func range(from: Int, to: Int, in item: HistoryItemDecorator) -> Range<String.Index> {\n    let startIndex = item.title.startIndex\n    let lowerBound = item.title.index(startIndex, offsetBy: from)\n    let upperBound = item.title.index(startIndex, offsetBy: to + 1)\n\n    return lowerBound..<upperBound\n  }\n\n  @MainActor\n  private func historyItemWithTitle(_ value: String?) -> HistoryItem {\n    let contents = [\n      HistoryItemContent(\n        type: NSPasteboard.PasteboardType.string.rawValue,\n        value: value?.data(using: .utf8)\n      )\n    ]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.title = item.generateTitle()\n\n    return item\n  }\n}\n"
  },
  {
    "path": "MaccyTests/SorterTests.swift",
    "content": "import XCTest\nimport Defaults\n@testable import Maccy\n\nclass SorterTests: XCTestCase {\n  let savedPinTo = Defaults[.pinTo]\n  let sorter = Sorter()\n\n  var item1: HistoryItem!\n  var item2: HistoryItem!\n  var item3: HistoryItem!\n\n  @MainActor\n  override func setUp() {\n    super.setUp()\n    item1 = historyItem(value: \"foo\", firstCopiedAt: -300, lastCopiedAt: -100, numberOfCopies: 3)\n    item2 = historyItem(value: \"bar\", firstCopiedAt: -400, lastCopiedAt: -300, numberOfCopies: 2)\n    item3 = historyItem(value: \"bar\", firstCopiedAt: -200, lastCopiedAt: -200, numberOfCopies: 1)\n  }\n\n  override func tearDown() {\n    super.tearDown()\n    Defaults[.pinTo] = savedPinTo\n  }\n\n  func testSortByLastCopiedAt() {\n    XCTAssertEqual(sorter.sort([item1, item2, item3], by: .lastCopiedAt), [item1, item3, item2])\n  }\n\n  func testSortByFirstCopiedAt() {\n    XCTAssertEqual(sorter.sort([item1, item2, item3], by: .firstCopiedAt), [item3, item1, item2])\n  }\n\n  func testSortByNumberOfCopies() {\n    XCTAssertEqual(sorter.sort([item1, item2, item3], by: .numberOfCopies), [item1, item2, item3])\n  }\n\n  func testSortByPinToTop() {\n    Defaults[.pinTo] = .top\n\n    item1.pin = \"a\"\n    item3.pin = \"b\"\n    XCTAssertEqual(sorter.sort([item1, item2, item3], by: .lastCopiedAt), [item1, item3, item2])\n  }\n\n  func testSortByPinToBottom() {\n    Defaults[.pinTo] = .bottom\n\n    item1.pin = \"a\"\n    item3.pin = \"b\"\n    XCTAssertEqual(sorter.sort([item1, item2, item3], by: .lastCopiedAt), [item2, item1, item3])\n  }\n\n  @MainActor\n  private func historyItem(\n    value: String,\n    firstCopiedAt: Int,\n    lastCopiedAt: Int,\n    numberOfCopies: Int\n  ) -> HistoryItem {\n    let contents = [HistoryItemContent(type: \"\", value: value.data(using: .utf8)!)]\n    let item = HistoryItem()\n    Storage.shared.context.insert(item)\n    item.contents = contents\n    item.firstCopiedAt = Date(timeIntervalSinceNow: TimeInterval(firstCopiedAt))\n    item.lastCopiedAt = Date(timeIntervalSinceNow: TimeInterval(lastCopiedAt))\n    item.numberOfCopies = numberOfCopies\n    return item\n  }\n}\n"
  },
  {
    "path": "MaccyUITests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "MaccyUITests/MaccyUITests.swift",
    "content": "import Carbon\nimport XCTest\n\n// swiftlint:disable file_length\n// swiftlint:disable type_body_length\nclass MaccyUITests: XCTestCase {\n  let app = XCUIApplication()\n  let pasteboard = NSPasteboard.general\n\n  let copy1 = UUID().uuidString\n  let copy2 = UUID().uuidString\n  let copy3 = UUID().uuidString\n\n  // https://hetima.github.io/fucking_nsimage_syntax\n  let image1 = NSImage(named: \"NSAddTemplate\")!\n  let image2 = NSImage(named: \"NSBluetoothTemplate\")!\n\n  let file1 = URL.applicationSupportDirectory.appendingPathComponent(\"file1.txt\")\n  let file2 = URL.applicationSupportDirectory.appendingPathComponent(\"file2.txt\")\n\n  let rtf1 = NSAttributedString(string: \"foo\").rtf(\n    from: NSRange(0...2),\n    documentAttributes: [:]\n  )\n  let rtf2 = NSAttributedString(string: \"bar\").rtf(\n    from: NSRange(0...2),\n    documentAttributes: [:]\n  )\n\n  let html1 = \"<a href='#'>foo</a>\".data(using: .utf8)\n  let html2 = \"<a href='#'>bar</a>\".data(using: .utf8)\n\n  let imageType = NSPredicate(\n    format: \"elementType == %lu\",\n    argumentArray: [XCUIElement.ElementType.image.rawValue]\n  )\n\n  var items: XCUIElementQuery {\n    app.descendants(matching: .any).matching(identifier: \"copy-history-item\")\n  }\n\n  var itemTitles: [String] {\n    items.allElementsBoundByIndex\n      .sorted(by: { $0.frame.origin.y < $1.frame.origin.y })\n      .compactMap { $0.value as? String }\n  }\n\n  override func setUp() {\n    super.setUp()\n\n    try? \"Hello world\".write(to: file1, atomically: true, encoding: .utf8)\n    try? \"Hello world\".write(to: file2, atomically: true, encoding: .utf8)\n\n    app.launchArguments.append(\"enable-testing\")\n    app.launch()\n\n    copyToClipboard(copy2)\n    copyToClipboard(copy1)\n\n  }\n\n  override func tearDown() {\n    super.tearDown()\n    app.terminate()\n  }\n\n  func testPopupWithHotkey() throws {\n    popUpWithHotkey()\n    assertExists(items[copy1])\n    assertExists(items[copy2])\n  }\n\n  func testCloseWithHotkey() throws {\n    popUpWithMouse()\n    assertExists(items[copy1])\n    simulatePopupHotkey()\n    assertNotExists(items[copy1])\n  }\n\n  func testPopupWithMenubar() {\n    popUpWithMouse()\n    assertExists(items[copy1])\n    assertExists(items[copy2])\n  }\n\n  func testNewCopyIsAdded() {\n    popUpWithMouse()\n    let copy3 = UUID().uuidString\n    copyToClipboard(copy3)\n    assertExists(items[copy3])\n    app.typeKey(.escape, modifierFlags: [])\n    popUpWithMouse()\n    assertExists(items[copy2])\n  }\n\n  func testSearch() {\n    popUpWithMouse()\n    search(copy2)\n    assertSearchFieldValue(copy2)\n    assertExists(app.staticTexts[copy2])\n    assertNotExists(items[copy1])\n  }\n\n  func testSearchFiles() {\n    copyToClipboard(file2)\n    copyToClipboard(file1)\n    popUpWithMouse()\n    search(file2.lastPathComponent)\n    assertExists(items[file2.absoluteString.removingPercentEncoding!])\n    assertNotExists(items[file1.absoluteString.removingPercentEncoding!])\n  }\n\n  func testCopyWithClick() {\n    popUpWithMouse()\n    items[copy2].firstMatch.click()\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testCopyWithEnter() {\n    popUpWithMouse()\n    hover(items[copy2].firstMatch)\n    app.typeKey(.enter, modifierFlags: [])\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testCopyWithCommandShortcut() {\n    popUpWithMouse()\n    app.typeKey(\"2\", modifierFlags: [.command])\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testSearchAndCopyWithCommandShortcut() {\n    popUpWithMouse()\n    search(copy2)\n    app.typeKey(\"1\", modifierFlags: [.command])\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testCopyImage() {\n    copyToClipboard(image2)\n    copyToClipboard(image1)\n    popUpWithMouse()\n    items.matching(imageType).allElementsBoundByIndex[1].click()\n    assertPasteboardDataCountEquals(image2.tiffRepresentation!.count, forType: .tiff)\n  }\n\n  func testCopyFile() {\n    copyToClipboard(file2)\n    copyToClipboard(file1)\n    popUpWithMouse()\n\n    XCTAssertEqual(itemTitles[0...1], [\n      file1.absoluteString.removingPercentEncoding!,\n      file2.absoluteString.removingPercentEncoding!\n    ])\n\n    items[file2.absoluteString.removingPercentEncoding!].firstMatch.click()\n    assertPasteboardStringEquals(file2.absoluteString, forType: .fileURL)\n  }\n\n  func testCopyRTF() {\n    copyToClipboard(rtf2, .rtf)\n    copyToClipboard(rtf1, .rtf)\n    popUpWithHotkey()\n    XCTAssertEqual(itemTitles[0...1], [\"foo\", \"bar\"])\n\n    app.staticTexts[\"bar\"].firstMatch.click()\n    XCTAssertEqual(pasteboard.data(forType: .rtf), rtf2)\n  }\n\n  func testCopyHTML() {\n    copyToClipboard(html2, .html)\n    copyToClipboard(html1, .html)\n    popUpWithMouse()\n    XCTAssertEqual(itemTitles[0...1], [\"foo\", \"bar\"])\n\n    items[\"bar\"].firstMatch.click()\n    assertPasteboardDataEquals(html2, forType: .html)\n  }\n\n  func testDownArrow() {\n    popUpWithMouse()\n    app.typeKey(.downArrow, modifierFlags: [])\n    app.typeKey(.enter, modifierFlags: [])\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testUpArrow() {\n    popUpWithMouse()\n    app.typeKey(.downArrow, modifierFlags: [])\n    app.typeKey(.upArrow, modifierFlags: [])\n    app.typeKey(.enter, modifierFlags: [])\n    assertPasteboardStringEquals(copy1)\n  }\n\n  func testControlJ() {\n    popUpWithMouse()\n    app.typeKey(\"j\", modifierFlags: [.control])\n    app.typeKey(.enter, modifierFlags: [])\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testControlK() {\n    popUpWithMouse()\n    app.typeKey(\"j\", modifierFlags: [.control])\n    app.typeKey(\"k\", modifierFlags: [.control])\n    app.typeKey(.enter, modifierFlags: [])\n    assertPasteboardStringEquals(copy1)\n  }\n\n  func testDeleteEntry() {\n    popUpWithMouse()\n    app.typeKey(.delete, modifierFlags: [.option])\n    assertNotExists(items[copy1])\n\n    app.typeKey(.escape, modifierFlags: [])\n    popUpWithMouse()\n    assertNotExists(items[copy1])\n  }\n\n  func testDeleteEntryDuringSearch() {\n    popUpWithMouse()\n    search(copy2)\n    app.typeKey(.delete, modifierFlags: [.option])\n    assertNotExists(items[copy2])\n\n    app.typeKey(.escape, modifierFlags: [])\n    popUpWithMouse()\n    assertNotExists(items[copy2])\n  }\n\n  func testClear() {\n    popUpWithMouse()\n    pin(copy2)\n    app.staticTexts[\"Clear\"].click()\n    confirmClear()\n    popUpWithMouse()\n    assertNotExists(items[copy1])\n    assertExists(items[copy2])\n  }\n\n  func testClearDuringSearch() {\n    popUpWithMouse()\n    search(copy2)\n    app.staticTexts[\"Clear\"].click()\n    confirmClear()\n    popUpWithMouse()\n    assertNotExists(items[copy1])\n    assertNotExists(items[copy2])\n  }\n\n  func testClearAll() {\n    popUpWithMouse()\n    pin(copy2)\n    XCUIElement.perform(withKeyModifiers: [.shift]) {\n      app.staticTexts[\"Clear all\"].click()\n    }\n    confirmClear()\n    popUpWithMouse()\n    assertNotExists(items[copy1])\n    assertNotExists(items[copy2])\n  }\n\n  func testPin() {\n    popUpWithMouse()\n    pin(copy2)\n    XCTAssertEqual(itemTitles[0...1], [copy2, copy1])\n\n    app.typeKey(.escape, modifierFlags: [])\n    popUpWithMouse()\n    XCTAssertEqual(itemTitles[0...1], [copy2, copy1])\n  }\n\n  func testPinDuringSearch() {\n    popUpWithMouse()\n    search(copy2)\n    pin(copy2)\n    assertSearchFieldValue(\"\")\n    XCTAssertEqual(itemTitles[0...1], [copy2, copy1])\n  }\n\n  func testUnpin() {\n    popUpWithMouse()\n    pin(copy2)\n    pin(copy2)\n    XCTAssertEqual(itemTitles[0...1], [copy1, copy2])\n  }\n\n  func testRemoveLastWordFromSearchWithControlW() {\n    popUpWithMouse()\n    search(\"foo bar\")\n    app.typeKey(\"w\", modifierFlags: [.control])\n    assertSearchFieldValue(\"foo \")\n  }\n\n  func testPasteToSearch() {\n    popUpWithMouse()\n    app.typeKey(\"v\", modifierFlags: [.command])\n    waitForSearch()\n    assertSearchFieldValue(copy1)\n    assertExists(items[copy1])\n    assertNotExists(items[copy2])\n  }\n\n  func testDisablesOnOptionClickingMenubarIcon() {\n    XCUIElement.perform(withKeyModifiers: .option) {\n      app.statusItems.firstMatch.click()\n    }\n\n    let copy3 = UUID().uuidString\n    let copy4 = UUID().uuidString\n    copyToClipboard(copy3)\n    copyToClipboard(copy4)\n\n    popUpWithMouse()\n    assertNotExists(items[copy3])\n    assertNotExists(items[copy4])\n\n    app.typeKey(.escape, modifierFlags: [])\n    XCUIElement.perform(withKeyModifiers: .option) {\n      app.statusItems.firstMatch.click()\n    }\n  }\n\n  func testDisablesOnlyForNextCopyOnOptionShiftClickingMenubarIcon() {\n    XCUIElement.perform(withKeyModifiers: [.option, .shift]) {\n      app.statusItems.firstMatch.click()\n    }\n\n    let copy3 = UUID().uuidString\n    let copy4 = UUID().uuidString\n    copyToClipboard(copy3)\n    copyToClipboard(copy4)\n\n    popUpWithMouse()\n    assertNotExists(items[copy3])\n    assertExists(items[copy4])\n  }\n\n  func testCreatesNewCopyOnEnterWhenSearchResultsAreEmpty() {\n    popUpWithMouse()\n    search(\"foo bar\")\n    app.typeKey(.return, modifierFlags: [])\n    XCTAssertEqual(pasteboard.string(forType: .string), \"foo bar\")\n    assertExists(items[\"foo bar\"])\n  }\n\n  func testOpenAndClose() throws {\n    // Simulate the popup hotkey press (Cmd + Shift + C).\n    let cDown = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: true)!\n    cDown.flags = [.maskCommand, .maskShift]\n    cDown.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    // Release the 'C' key but keep the popup open.\n    let cUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: false)!\n    cUp.flags = [.maskCommand, .maskShift]\n    cUp.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    // Release the 'Shift' key and assert that the popup remains open - \"normal\" mode.\n    let shiftUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Shift), keyDown: false)!\n    shiftUp.flags = [.maskCommand] // Command remains active, Shift released\n    shiftUp.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    // Release the 'CMD' key and assert that the popup remains open - \"normal\" mode.\n    let commandUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Command), keyDown: false)!\n    commandUp.flags = []\n    commandUp.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    // Press shortcut again and assert the window closes\n    cDown.flags = [.maskCommand, .maskShift]\n    cDown.post(tap: .cghidEventTap)\n\n    assertPopupDismissed()\n  }\n\n  func testOpenAndSelectSecondItem() throws {\n    // Simulate the popup hotkey press (Cmd + Shift + C).\n    let cDown = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: true)!\n    cDown.flags = [.maskCommand, .maskShift]\n    cDown.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    let cUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: false)!\n    cUp.flags = [.maskCommand, .maskShift]\n    cUp.post(tap: .cghidEventTap)\n\n    // Press C 1 more time while keeping the modifier keys pressed\n    cDown.post(tap: .cghidEventTap)\n\n    // Release all modifiers keys and assert that the popup closes.\n    let modifiersUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Shift), keyDown: false)!\n    modifiersUp.flags = []\n    modifiersUp.post(tap: .cghidEventTap)\n\n    assertPopupDismissed()\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testOpenAndSelectThirdItem() throws {\n    copyToClipboard(copy3)\n\n    // Simulate the popup hotkey press (Cmd + Shift + C).\n    let cDown = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: true)!\n    cDown.flags = [.maskCommand, .maskShift]\n    cDown.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    let cUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: false)!\n    cUp.flags = [.maskCommand, .maskShift]\n    cUp.post(tap: .cghidEventTap)\n\n    // Press C 2 more times while keeping the modifier keys pressed\n    cDown.post(tap: .cghidEventTap)\n    cUp.post(tap: .cghidEventTap)\n    cDown.post(tap: .cghidEventTap)\n\n    // Release all modifiers keys and assert that the popup closes.\n    let modifiersUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Shift), keyDown: false)!\n    modifiersUp.flags = []\n    modifiersUp.post(tap: .cghidEventTap)\n\n    assertPopupDismissed()\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testOpenAndSelectThirdItemRepeatedPress() throws {\n    copyToClipboard(copy3)\n\n    // Simulate the popup hotkey press (Cmd + Shift + C).\n    let cDown = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: true)!\n    cDown.flags = [.maskCommand, .maskShift]\n    cDown.post(tap: .cghidEventTap)\n\n    waitUntilPoppedUp()\n\n    // Press C 2 more times while keeping the modifier keys pressed\n    cDown.post(tap: .cghidEventTap)\n    cDown.post(tap: .cghidEventTap)\n\n    // Release all modifiers keys and assert that the popup closes.\n    let modifiersUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Shift), keyDown: false)!\n    modifiersUp.flags = []\n    modifiersUp.post(tap: .cghidEventTap)\n\n    assertPopupDismissed()\n    assertPasteboardStringEquals(copy2)\n  }\n\n  func testTogglePopupAndCloseOnClickOutside() {\n    popUpWithHotkey()\n\n    // Click outside the popup to close it\n    let statusBar = app.statusItems.firstMatch\n    let coordinate = statusBar.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 10.0))\n    coordinate.click()\n    assertNotExists(items[copy1])\n\n    // Assert that the hotkeys still work\n    popUpWithHotkey()\n\n    simulatePopupHotkey()\n    assertPopupDismissed()\n  }\n\n  private func popUpWithHotkey() {\n    simulatePopupHotkey()\n    waitUntilPoppedUp()\n  }\n\n  private func popUpWithMouse() {\n    app.statusItems.firstMatch.click()\n    waitUntilPoppedUp()\n  }\n\n  private func simulatePopupHotkey() {\n    let commandDown = CGEvent(\n      keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Command), keyDown: true)!\n    let commandUp = CGEvent(\n      keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Command), keyDown: false)!\n    let shiftDown = CGEvent(\n      keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Shift), keyDown: true)!\n    let shiftUp = CGEvent(\n      keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_Shift), keyDown: false)!\n    shiftDown.flags = [.maskCommand]\n    shiftUp.flags = [.maskCommand]\n    let cDown = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: true)!\n    let cUp = CGEvent(keyboardEventSource: nil, virtualKey: CGKeyCode(kVK_ANSI_C), keyDown: false)!\n    cDown.flags = [.maskCommand, .maskShift]\n    cUp.flags = [.maskCommand, .maskShift]\n    commandDown.post(tap: .cghidEventTap)\n    shiftDown.post(tap: .cghidEventTap)\n    cDown.post(tap: .cghidEventTap)\n    cUp.post(tap: .cghidEventTap)\n    shiftUp.post(tap: .cghidEventTap)\n    commandUp.post(tap: .cghidEventTap)\n  }\n\n  private func waitUntilPoppedUp() {\n    if !app.staticTexts.firstMatch.waitForExistence(timeout: 3) {\n      XCTFail(\"Maccy did not pop up\")\n    }\n  }\n\n  private func assertPopupDismissed() {\n    if !app.staticTexts.firstMatch.waitForNonExistence(timeout: 3) {\n      XCTFail(\"Maccy did not dismiss\")\n    }\n  }\n\n  private func copyToClipboard(_ content: String) {\n    pasteboard.clearContents()\n    pasteboard.setString(content, forType: .string)\n    waitTillClipboardCheck()\n  }\n\n  private func copyToClipboard(_ content: NSImage) {\n    pasteboard.clearContents()\n    pasteboard.setData(content.tiffRepresentation, forType: .tiff)\n    waitTillClipboardCheck()\n  }\n\n  private func copyToClipboard(_ content: URL) {\n    pasteboard.clearContents()\n    pasteboard.setData(content.dataRepresentation, forType: .fileURL)\n    // WTF: The subsequent writes to pasteboard are not\n    // visible unless we explicitly read the last one?!\n    pasteboard.string(forType: .fileURL)\n    waitTillClipboardCheck()\n  }\n\n  private func copyToClipboard(_ content: Data?, _ type: NSPasteboard.PasteboardType) {\n    pasteboard.clearContents()\n    pasteboard.setData(content, forType: type)\n    waitTillClipboardCheck()\n  }\n\n  // Default interval for Maccy to check clipboard is 1 second\n  private func waitTillClipboardCheck() {\n    usleep(1_500_000)\n  }\n\n  private func pin(_ title: String) {\n    hover(items[title].firstMatch)\n    app.typeKey(\"p\", modifierFlags: [.option])\n    usleep(1_500_000)\n  }\n\n  private func hover(_ element: XCUIElement) {\n    element.hover()\n    usleep(20000)\n  }\n\n  private func search(_ string: String) {\n    // NOTE: app.typeText is broken in Sonoma and causes some\n    //       Chars to be submitted with a .command mask (e.g. 'p', 'k' or 'j')\n    string.forEach {\n      app.typeKey(\"\\($0)\", modifierFlags: [])\n    }\n    waitForSearch()\n  }\n\n  private func waitForSearch() {\n    // NOTE: This is a hack and is flaky.\n    // Ideally we should wait for a proper condition to detect that search has settled down.\n    usleep(500000)  // wait for search throttle\n  }\n\n  private func assertExists(_ element: XCUIElement) {\n    expectation(for: NSPredicate(format: \"exists = 1\"), evaluatedWith: element)\n    waitForExpectations(timeout: 3)\n  }\n\n  private func assertNotExists(_ element: XCUIElement) {\n    expectation(for: NSPredicate(format: \"exists = 0\"), evaluatedWith: element)\n    waitForExpectations(timeout: 3)\n  }\n\n  private func assertNotVisible(_ element: XCUIElement) {\n    expectation(\n      for: NSPredicate(format: \"(exists = 0) || (isHittable = 0)\"), evaluatedWith: element)\n    waitForExpectations(timeout: 3)\n  }\n\n  private func assertPasteboardDataEquals(\n    _ expected: Data?, forType: NSPasteboard.PasteboardType = .string\n  ) {\n    let predicate = NSPredicate { (object, _) -> Bool in\n      guard let copy = object as? Data else {\n        return false\n      }\n\n      return self.pasteboard.data(forType: forType) == copy\n    }\n    expectation(for: predicate, evaluatedWith: expected)\n    waitForExpectations(timeout: 3)\n  }\n\n  private func assertPasteboardDataCountEquals(\n    _ expected: Int, forType: NSPasteboard.PasteboardType = .string\n  ) {\n    let predicate = NSPredicate { (object, _) -> Bool in\n      guard let count = object as? Int else {\n        return false\n      }\n\n      return self.pasteboard.data(forType: forType)!.count == count\n    }\n    expectation(for: predicate, evaluatedWith: expected)\n    waitForExpectations(timeout: 3)\n  }\n\n  private func assertPasteboardStringEquals(\n    _ expected: String?, forType: NSPasteboard.PasteboardType = .string\n  ) {\n    let predicate = NSPredicate { (object, _) -> Bool in\n      guard let copy = object as? String else {\n        return false\n      }\n\n      return self.pasteboard.string(forType: forType) == copy\n    }\n    expectation(for: predicate, evaluatedWith: expected)\n    waitForExpectations(timeout: 3)\n  }\n\n  private func assertSearchFieldValue(_ string: String) {\n    XCTAssertEqual(app.textFields.firstMatch.value as? String, string)\n  }\n\n  private func confirmClear() {\n    let button = app.dialogs.firstMatch.buttons[\"Clear\"].firstMatch\n    expectation(for: NSPredicate(format: \"isHittable = 1\"), evaluatedWith: button)\n    waitForExpectations(timeout: 3)\n    button.click()\n  }\n}\n// swiftlint:enable type_body_length\n// swiftlint:enable file_length\n"
  },
  {
    "path": "README.md",
    "content": "\n<img width=\"128px\" src=\"https://maccy.app/img/maccy/Logo.png\" alt=\"Logo\" />\n\n# [Maccy](https://maccy.app)\n\n[![Downloads](https://img.shields.io/github/downloads/p0deje/Maccy/total.svg)](https://github.com/p0deje/Maccy/releases/latest)\n[![Build Status](https://img.shields.io/bitrise/716921b669780314/master?token=3pMiCb5dpFzlO-7jTYtO3Q)](https://app.bitrise.io/app/716921b669780314)\n\nMaccy is a lightweight clipboard manager for macOS. It keeps the history of what you copy\nand lets you quickly navigate, search, and use previous clipboard contents.\n\nMaccy works on macOS Sonoma 14 or higher.\n\n<!-- vim-markdown-toc GFM -->\n\n* [Features](#features)\n* [Install](#install)\n* [Usage](#usage)\n* [Advanced](#advanced)\n  * [Ignore Copied Items](#ignore-copied-items)\n  * [Ignore Custom Copy Types](#ignore-custom-copy-types)\n  * [Speed up Clipboard Check Interval](#speed-up-clipboard-check-interval)\n* [FAQ](#faq)\n  * [Why doesn't it paste when I select an item in history?](#why-doesnt-it-paste-when-i-select-an-item-in-history)\n  * [When assigning a hotkey to open Maccy, it says that this hotkey is already used in some system setting.](#when-assigning-a-hotkey-to-open-maccy-it-says-that-this-hotkey-is-already-used-in-some-system-setting)\n  * [How to restore hidden footer?](#how-to-restore-hidden-footer)\n  * [How to ignore copies from Universal Clipboard?](#how-to-ignore-copies-from-universal-clipboard)\n  * [My keyboard shortcut stopped working in password fields. How do I fix this?](#my-keyboard-shortcut-stopped-working-in-password-fields-how-do-i-fix-this)\n* [Translations](#translations)\n* [Motivation](#motivation)\n* [License](#license)\n\n<!-- vim-markdown-toc -->\n\n## Features\n\n* Lightweight and fast\n* Keyboard-first\n* Secure and private\n* Native UI\n* Open source and free\n\n## Install\n\nDownload the latest version from the [releases](https://github.com/p0deje/Maccy/releases/latest) page, or use [Homebrew](https://brew.sh/):\n\n```sh\nbrew install maccy\n```\n\n## Usage\n\n1. <kbd>SHIFT (⇧)</kbd> + <kbd>COMMAND (⌘)</kbd> + <kbd>C</kbd> to popup Maccy or click on its icon in the menu bar.\n2. Type what you want to find.\n3. To select the history item you wish to copy, press <kbd>ENTER</kbd>, or click the item, or use <kbd>COMMAND (⌘)</kbd> + `n` shortcut.\n4. To choose the history item and paste, press <kbd>OPTION (⌥)</kbd> + <kbd>ENTER</kbd>, or <kbd>OPTION (⌥)</kbd> + <kbd>CLICK</kbd> the item, or use <kbd>OPTION (⌥)</kbd> + `n` shortcut.\n5. To choose the history item and paste without formatting, press <kbd>OPTION (⌥)</kbd> + <kbd>SHIFT (⇧)</kbd> + <kbd>ENTER</kbd>, or <kbd>OPTION (⌥)</kbd> + <kbd>SHIFT (⇧)</kbd> + <kbd>CLICK</kbd> the item, or use <kbd>OPTION (⌥)</kbd> + <kbd>SHIFT (⇧)</kbd> + `n` shortcut.\n6. To delete the history item, press <kbd>OPTION (⌥)</kbd> + <kbd>DELETE (⌫)</kbd>.\n7. To see the full text of the history item, wait a couple of seconds for tooltip.\n8. To pin the history item so that it remains on top of the list, press <kbd>OPTION (⌥)</kbd> + <kbd>P</kbd>. The item will be moved to the top with a random but permanent keyboard shortcut. To unpin it, press <kbd>OPTION (⌥)</kbd> + <kbd>P</kbd> again.\n9. To clear all unpinned items, select _Clear_ in the menu, or press <kbd>OPTION (⌥)</kbd> + <kbd>COMMAND (⌘)</kbd> + <kbd>DELETE (⌫)</kbd>. To clear all items including pinned, select _Clear_ in the menu with  <kbd>OPTION (⌥)</kbd> pressed, or press <kbd>SHIFT (⇧)</kbd> + <kbd>OPTION (⌥)</kbd> + <kbd>COMMAND (⌘)</kbd> + <kbd>DELETE (⌫)</kbd>.\n10. To disable Maccy and ignore new copies, click on the menu icon with <kbd>OPTION (⌥)</kbd> pressed.\n11. To ignore only the next copy, click on the menu icon with <kbd>OPTION (⌥)</kbd> + <kbd>SHIFT (⇧)</kbd> pressed.\n12. To customize the behavior, check \"Preferences…\" window, or press <kbd>COMMAND (⌘)</kbd> + <kbd>,</kbd>.\n\n## Advanced\n\n### Ignore Copied Items\n\nYou can tell Maccy to ignore all copied items:\n\n```sh\ndefaults write org.p0deje.Maccy ignoreEvents true # default is false\n```\n\nThis is useful if you have some workflow for copying sensitive data. You can set `ignoreEvents` to true, copy the data and set `ignoreEvents` back to false.\n\nYou can also click the menu icon with <kbd>OPTION (⌥)</kbd> pressed. To ignore only the next copy, click with <kbd>OPTION (⌥)</kbd> + <kbd>SHIFT (⇧)</kbd> pressed.\n\n### Ignore Custom Copy Types\n\nBy default Maccy will ignore certain copy types that are considered to be confidential\nor temporary. The default list always include the following types:\n\n* `org.nspasteboard.TransientType`\n* `org.nspasteboard.ConcealedType`\n* `org.nspasteboard.AutoGeneratedType`\n\nAlso, default configuration includes the following types but they can be removed\nor overwritten:\n\n* `com.agilebits.onepassword`\n* `com.typeit4me.clipping`\n* `de.petermaurer.TransientPasteboardType`\n* `Pasteboard generator type`\n* `net.antelle.keeweb`\n\nYou can add additional custom types using settings.\nTo find what custom types are used by an application, you can use\nfree application [Pasteboard-Viewer](https://github.com/sindresorhus/Pasteboard-Viewer).\nSimply download the application, open it, copy something from the application you\nwant to ignore and look for any custom types in the left sidebar. [Here is an example\nof using this approach to ignore Adobe InDesign](https://github.com/p0deje/Maccy/issues/125).\n\n### Speed up Clipboard Check Interval\n\nBy default, Maccy checks clipboard every 500 ms, which should be enough for most users. If you want\nto speed it up, you can change it with `defaults`:\n\n```sh\ndefaults write org.p0deje.Maccy clipboardCheckInterval 0.1 # 100 ms\n```\n\n## FAQ\n\n### Why doesn't it paste when I select an item in history?\n\n1. Make sure you have \"Paste automatically\" enabled in Preferences.\n2. Make sure \"Maccy\" is added to System Settings -> Privacy & Security -> Accessibility.\n\n### When assigning a hotkey to open Maccy, it says that this hotkey is already used in some system setting.\n\n1. Open System settings -> Keyboard -> Keyboard Shortcuts.\n2. Find where that hotkey is used. For example, \"Convert text to simplified Chinese\" is under Services -> Text.\n3. Disable that hotkey or remove assigned combination ([screenshot](https://github.com/p0deje/Maccy/assets/576152/446719e6-c3e5-4eb0-95fb-5a811066487f)).\n4. Restart Maccy.\n5. Assign hotkey in Maccy settings.\n\n### How to restore hidden footer?\n\n1. Open Maccy window.\n2. Press <kbd>COMMAND (⌘)</kbd> + <kbd>,</kbd> to open preferences.\n3. Enable footer in Appearance section.\n\nIf for some reason it doesn't work, run the following command in Terminal.app:\n\n```sh\ndefaults write org.p0deje.Maccy showFooter 1\n```\n\n### How to ignore copies from [Universal Clipboard](https://support.apple.com/en-us/102430)?\n\n1. Open Preferences -> Ignore -> Pasteboard Types.\n2. Add `com.apple.is-remote-clipboard`.\n\n### My keyboard shortcut stopped working in password fields. How do I fix this?\n\nIf your shortcut produces a character (like `Option+C` → \"ç\"), macOS security may block it in password fields. Use [Karabiner-Elements](https://karabiner-elements.pqrs.org/) to remap your shortcut to a different combination like `Cmd+Shift+C`. [See detailed solution](docs/keyboard-shortcut-password-fields.md).\n\n## Translations\n\nThe translations are hosted in [Weblate](https://hosted.weblate.org/engage/maccy/).\nYou can use it to suggest changes in translations and localize the application to a new language.\n\n[![Translation status](https://hosted.weblate.org/widget/maccy/multi-auto.svg)](https://hosted.weblate.org/engage/maccy/)\n\n## Motivation\n\nThere are dozens of similar applications out there, so why build another?\nOver the past years since I moved from Linux to macOS, I struggled to find\na clipboard manager that is as free and simple as [Parcellite](http://parcellite.sourceforge.net),\nbut I couldn't. So I've decided to build one.\n\nAlso, I wanted to learn Swift and get acquainted with macOS application development.\n\n\n## License\n\n[MIT](./LICENSE)\n"
  },
  {
    "path": "appcast.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<rss version=\"2.0\" xmlns:sparkle=\"http://www.andymatuschak.org/xml-namespaces/sparkle\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n  <channel>\n    <title>Maccy</title>\n    <link>https://raw.githubusercontent.com/p0deje/Maccy/master/appcast.xml</link>\n    <description>Most recent changes with links to updates.</description>\n    <language>en</language>\n    <item>\n      <title>2.6.1</title>\n      <description>\n        <![CDATA[\n          <ul>\n            <li>Fixed a crash when copying on macOS 14.</li>\n            <li>Fixed a text beam cursor when hovering a header with a hidden search field.</li>\n          </ul>\n        ]]>\n      </description>\n      <pubDate>2025-11-27</pubDate>\n      <releaseNotesLink>https://github.com/p0deje/Maccy/releases/tag/2.6.1</releaseNotesLink>\n      <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>\n      <enclosure\n        url=\"https://github.com/p0deje/Maccy/releases/download/2.6.1/Maccy.app.zip\"\n        sparkle:version=\"60\"\n        sparkle:shortVersionString=\"2.6.1\"\n        length=\"0\"\n        type=\"application/octet-stream\"\n      />\n    </item>\n  </channel>\n</rss>\n"
  },
  {
    "path": "docs/keyboard-shortcut-password-fields.md",
    "content": "# Keyboard Shortcut Not Working in Password Fields\n\n## Problem Description\n\nSome users may experience issues where their Maccy keyboard shortcut stops working, particularly in password fields or secure input contexts. This commonly occurs when using shortcuts that produce visible characters, such as `Option+C` which generates the \"ç\" character.\n\n## Root Cause\n\nmacOS blocks keyboard event listeners that output text in secure fields. When a keyboard combination generates a character (like `Option+C` → \"ç\"), macOS security features prevent third-party applications from intercepting these key events in password fields and other secure input contexts.\n\n## Easy Solution\n\nChoose Different Shortcut: Select a keyboard combination that doesn't produce visible characters (e.g., Cmd+Shift+V)\n\n## Detailed Solution: If you really want to continue using your current kb shortcut\n\nIf you want to use a keyboard shortcut that is used by the system (and produces text output), you can use Karabiner-Elements to remap this shortcut to another keyboard shortcut. For example, remapping `Option+C` to `Cmd+Shift+C`.\n\n### Using Karabiner-Elements\n\n1. **Download and Install Karabiner-Elements**\n\n   - Visit: <https://karabiner-elements.pqrs.org/>\n   - Download and install the application\n   - Grant necessary permissions when prompted\n\n2. **Configure Key Remapping**\n\n   - Open Karabiner-Elements\n   - Navigate to \"Complex Modifications\"\n   - Click 'Add your own rule'\n   - Paste the following JSON configuration (see example below)\n   - Instructions for editing different key combinations: modify the `key_code` and `modifiers` values as needed\n   - Give your rule a name (Example: \"Remap Option+C to Cmd+Shift+C for clipboard manager\")\n\n3. **Example Karabiner Rule**\n   This example remaps `Option+C` to `Cmd+Shift+C`:\n\n   ```json\n   {\n     \"description\": \"Remap option+c to cmd+shift+c for Maccy trigger\",\n     \"manipulators\": [\n       {\n         \"from\": {\n           \"key_code\": \"c\",\n           \"modifiers\": {\n             \"mandatory\": [\"left_alt\"],\n             \"optional\": [\"any\"]\n           }\n         },\n         \"to\": [\n           {\n             \"key_code\": \"c\",\n             \"modifiers\": [\"left_command\", \"left_shift\"]\n           }\n         ],\n         \"type\": \"basic\"\n       }\n     ]\n   }\n   ```\n\n4. **Update Maccy Settings**\n   - Open Maccy preferences\n   - Set the keyboard shortcut to match your Karabiner remapping (in this example: `Cmd+Shift+C`)\n   - Test the shortcut in various contexts, including password fields\n\n## Alternative Solutions\n\n- **Choose Different Shortcut**: Select a keyboard combination that doesn't produce visible characters (e.g., `Cmd+Shift+V`)\n- **System Keyboard Settings**: Modify system keyboard shortcuts that might conflict with your desired combination\n\n## Verification\n\nAfter implementing the solution:\n\n1. Test the shortcut in regular text fields\n2. Test the shortcut in password fields\n3. Test the shortcut in secure applications (banking apps, password managers)\n4. Verify Maccy responds consistently across all contexts\n\nThis approach allows you to continue using your preferred key combination while ensuring compatibility with macOS security features.\n"
  }
]