[
  {
    "path": ".github/workflows/checks.yml",
    "content": "name: Checks\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n    branches: '*'\n\nenv:\n  DEVELOPER_DIR: /Applications/Xcode-16.0.0.app/Contents/Developer\n\njobs:\n  unit-tests:\n    runs-on: self-hosted\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Pull cache\n      uses: actions/cache@v4\n      with:\n        path: .build\n        key: ${{ runner.os }}spm${{ hashFiles('**/Package.resolved') }}\n        restore-keys: |\n          ${{ runner.os }}spm\n    - name: Test\n      run: swift test -v\n\n  test-iOS-ResourceApp:\n    runs-on: self-hosted\n    needs: build-rswift\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Download build\n      uses: actions/download-artifact@v4.1.7\n      with:\n        name: rswift-dev\n        path: rswift-dev\n    - name: Put build into place\n      run: |\n        mkdir -p .build/release\n        mv rswift-dev/rswift .build/release/rswift\n        chmod +x .build/release/rswift\n    - name: Pull cache\n      uses: actions/cache@v4\n      id: podcache-ios\n      with:\n        path: Examples/ResourceApp/Pods\n        key: ${{ runner.os }}pods${{ hashFiles('**/Podfile.lock') }}\n        restore-keys: |\n          ${{ runner.os }}pods\n    - name: Install pods\n      if: steps.podcache-ios.outputs.cache-hit != 'true'\n      run: pod install --project-directory=Examples/ResourceApp\n    - name: Test\n      #run: fastlane scan --workspace \"Examples/ResourceApp/ResourceApp.xcworkspace\" --scheme \"ResourceApp\"\n      run: xcodebuild -workspace Examples/ResourceApp/ResourceApp.xcworkspace -scheme ResourceApp -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' test\n\n  test-iOS-StaticFrameworks:\n    runs-on: self-hosted\n    needs: build-rswift\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Download build\n      uses: actions/download-artifact@v4.1.7\n      with:\n        name: rswift-dev\n        path: rswift-dev\n    - name: Put build into place\n      run: |\n        mkdir -p .build/release\n        mv rswift-dev/rswift .build/release/rswift\n        chmod +x .build/release/rswift\n    - name: Test\n      #run: fastlane scan --project \"Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj\" --scheme \"App\"\n      run: xcodebuild -project Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj -scheme App -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' test\n\n  test-iOS-LocalizedStringApp:\n    runs-on: self-hosted\n    needs: build-rswift\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Download build\n      uses: actions/download-artifact@v4.1.7\n      with:\n        name: rswift-dev\n        path: rswift-dev\n    - name: Put build into place\n      run: |\n        mkdir -p .build/release\n        mv rswift-dev/rswift .build/release/rswift\n        chmod +x .build/release/rswift\n    - name: Test\n      run: xcodebuild -project Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj -scheme LocalizedStringApp -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0' test\n\n  test-tvOS:\n    runs-on: self-hosted\n    needs: build-rswift\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Download build\n      uses: actions/download-artifact@v4.1.7\n      with:\n        name: rswift-dev\n        path: rswift-dev\n    - name: Put build into place\n      run: |\n        mkdir -p .build/release\n        mv rswift-dev/rswift .build/release/rswift\n        chmod +x .build/release/rswift\n    - name: Test\n      #run: fastlane scan --project \"Examples/RtvApp/RtvApp.xcodeproj\" --scheme \"ResourceApp-tvOS\"\n      run: xcodebuild -project Examples/RtvApp/RtvApp.xcodeproj -scheme ResourceApp-tvOS -destination 'platform=tvOS Simulator,name=Apple TV,OS=18.0' test\n\n  build-rswift:\n    runs-on: self-hosted\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Pull cache\n      uses: actions/cache@v4\n      with:\n        path: .build\n        key: ${{ runner.os }}spm${{ hashFiles('**/Package.resolved') }}\n        restore-keys: |\n          ${{ runner.os }}spm\n    - name: Set version\n      run: |\n        sed -i \"\" \"s/\\(static let version = \\\"\\)Unknown\\(\\\"\\)/\\1Development build: ${GITHUB_SHA}\\2/\" Sources/rswift/Config.swift\n    - name: Build\n      run: swift build -v -c release\n    - name: Store artifact\n      uses: actions/upload-artifact@v4\n      with:\n        name: rswift-dev\n        path: .build/release/rswift\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release\n\non:\n  release:\n    types: created\n\nenv:\n  DEVELOPER_DIR: /Applications/Xcode-16.0.0.app/Contents/Developer\n\njobs:\n  release-build:\n    runs-on: self-hosted\n    steps:\n    - name: Checkout\n      uses: actions/checkout@v4\n    - name: Set version\n      run: |\n        sed -i \"\" \"s/\\(static let version = \\\"\\).*\\(\\\"\\)/\\1${TAG}\\2/\" Sources/rswift/Config.swift\n      env:\n        TAG: ${{ github.event.release.tag_name }}\n    - name: Tarball source\n      run: |\n        tar -zcvf $TARGET --exclude .git .\n      env:\n        TARGET: ${{ runner.temp }}/source.tar.gz\n    - name: Attach tarball to release\n      uses: actions/upload-release-asset@v1\n      env:\n        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      with:\n        upload_url: ${{ github.event.release.upload_url }}\n        asset_path: ${{ runner.temp }}/source.tar.gz\n        asset_name: rswift-${{ github.event.release.tag_name }}-source.tar.gz\n        asset_content_type: application/tar+gzip\n\n    - name: Build universal binary\n      run: |\n        swift build -c release --arch x86_64 --arch arm64\n\n    - name: Delete temp keychain from previous run\n      run: |\n        /usr/bin/security delete-keychain signing_temp.keychain || true\n    - name: Import Signing Certificates\n      uses: apple-actions/import-codesign-certs@v3\n      with:\n        p12-file-base64: ${{ secrets.APPLE_CERTIFICATES }}\n        p12-password: ${{ secrets.APPLE_CERTIFICATES_PASSWORD }}\n    - name: Code Sign\n      run: |\n        codesign --force --options runtime --sign \"$IDENTITY\" .build/apple/Products/Release/rswift\n      env:\n        IDENTITY: 'Developer ID Application: Nonstrict B.V. (WT5N9FK54M)'\n    - name: Store build artifact\n      uses: actions/upload-artifact@v4\n      with:\n        name: rswift-${{ github.event.release.tag_name }}\n        path: .build/apple/Products/Release/rswift\n\n    - name: Archive ZIP\n      run: zip --junk-paths $FILENAME .build/apple/Products/Release/rswift License && zip --recurse-paths $FILENAME Sources/RswiftResources\n      env:\n        FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip\n    - name: Notarize ZIP\n      run: |\n        xcrun notarytool submit $FILENAME --apple-id $APPLE_ID --password $APP_PASSWORD --team-id $TEAM_ID --wait\n      env:\n        BUNDLE_ID: com.nonstrict.rswift\n        APPLE_ID: ${{ secrets.APPLE_IDENTIFIER }}\n        APP_PASSWORD: ${{ secrets.APPLE_IDENTIFIER_PASSWORD }}\n        TEAM_ID: WT5N9FK54M\n        FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip\n    - name: Attach ZIP to release\n      uses: actions/upload-release-asset@v1\n      env:\n        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      with:\n        upload_url: ${{ github.event.release.upload_url }}\n        asset_path: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.zip\n        asset_name: rswift-${{ github.event.release.tag_name }}.zip\n        asset_content_type: application/zip\n        \n    - name: Make artifact bundle\n      run: |\n        set -ex\n        \n        mkdir -p $ARTIFACT_BUNDLE_DIR/rswift/bin\n        cp .build/apple/Products/Release/rswift $ARTIFACT_BUNDLE_DIR/rswift/bin\n        cp License $ARTIFACT_BUNDLE_DIR/rswift\n        \n        cat <<EOF > $ARTIFACT_BUNDLE_DIR/info.json\n        {\n            \"schemaVersion\": \"1.0\",\n            \"artifacts\": {\n                \"rswift\": {\n                    \"type\": \"executable\",\n                    \"version\": \"$VERSION\",\n                    \"variants\": [\n                        {\n                            \"path\": \"rswift/bin/rswift\",\n                            \"supportedTriples\": [\"x86_64-apple-macosx\", \"arm64-apple-macosx\"]\n                        },\n                    ]\n                }\n            }\n        }\n        EOF\n\n        pushd $ARTIFACT_BUNDLE_DIR\n        zip -r $FILENAME .\n        popd\n      env:\n        VERSION: ${{ github.event.release.tag_name }}\n        ARTIFACT_BUNDLE_DIR: ${{ runner.temp }}/rswift.artifactbundle\n        FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.artifactbundle.zip\n    - name: Notarize artifact bundle\n      run: |\n        xcrun notarytool submit $FILENAME --apple-id $APPLE_ID --password $APP_PASSWORD --team-id $TEAM_ID --wait\n      env:\n        BUNDLE_ID: com.nonstrict.rswift\n        APPLE_ID: ${{ secrets.APPLE_IDENTIFIER }}\n        APP_PASSWORD: ${{ secrets.APPLE_IDENTIFIER_PASSWORD }}\n        TEAM_ID: WT5N9FK54M\n        FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.artifactbundle.zip\n    - name: Attach artifact bundle to release\n      uses: actions/upload-release-asset@v1\n      env:\n        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      with:\n        upload_url: ${{ github.event.release.upload_url }}\n        asset_path: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.artifactbundle.zip\n        asset_name: rswift-${{ github.event.release.tag_name }}.artifactbundle.zip\n        asset_content_type: application/zip\n\n    - name: Archive PKG\n      run: |\n        mkdir -p $PKG_ROOT/$BINARY_ROOT\n        cp .build/apple/Products/Release/rswift $PKG_ROOT/$BINARY_ROOT\n        pkgbuild --root $PKG_ROOT --identifier $BUNDLE_ID --version $TAG_NAME --install-location \"/\" --sign \"$IDENTITY\" $FILENAME\n      env:\n        TAG_NAME: ${{ github.event.release.tag_name }}\n        FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.pkg\n        BUNDLE_ID: com.nonstrict.rswift\n        IDENTITY: 'Developer ID Installer: Nonstrict B.V. (WT5N9FK54M)'\n        PKG_ROOT: ${{ runner.temp }}/pkgroot\n        BINARY_ROOT: /usr/local/bin\n    - name: Notarize PKG\n      run: |\n        xcrun notarytool submit $FILENAME --apple-id $APPLE_ID --password $APP_PASSWORD --team-id $TEAM_ID --wait\n        xcrun stapler staple $FILENAME\n      env:\n        BUNDLE_ID: com.nonstrict.rswift\n        APPLE_ID: ${{ secrets.APPLE_IDENTIFIER }}\n        APP_PASSWORD: ${{ secrets.APPLE_IDENTIFIER_PASSWORD }}\n        TEAM_ID: WT5N9FK54M\n        FILENAME: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.pkg\n    - name: Attach PKG to release\n      uses: actions/upload-release-asset@v1\n      env:\n        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n      with:\n        upload_url: ${{ github.event.release.upload_url }}\n        asset_path: ${{ runner.temp }}/rswift-${{ github.event.release.tag_name }}.pkg\n        asset_name: rswift-${{ github.event.release.tag_name }}.pkg\n        asset_content_type: application/pkg\n\n    - name: Delete temp keychain from this run\n      if: always()\n      run: |\n        /usr/bin/security delete-keychain signing_temp.keychain || true\n\n    - name: Publish to Cocoapods\n      run: |\n        export POD_VERSION=$TAG_NAME\n        pod trunk push --allow-warnings\n      env:\n        TAG_NAME: ${{ github.event.release.tag_name }}\n        COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\nxcuserdata\nDerivedData\nPods\n*.xccheckout\n*.generated.swift\n\nfastlane/test_output\nfastlane/README.md\nfastlane/report.xml\nfastlane/settoken.sh\n\nbuild\n.build\n.swiftpm\nrswift.xcarchive\nrswift.xcodeproj\n\nrswift.log\nrswift-tv.log\nrswift-watchos.log\n"
  },
  {
    "path": "Documentation/Contribute.md",
    "content": "# Thank you!\n\nThank you for taking some of your precious time helping this project move forward. Really great that you're showing interest in contributing. You don't have to be an expert to help us, every small tweak, crazy idea and/or bugreport is highly appreciated!\n\n# Contributing\n\n## Questions, issues and ideas\n\nMost important is to read the docs and scan the issue tracker before so you're sure your question/idea/bugreport isn't already answered/in the make/being fixed:\n\n- [Read the Readme](/README.md)\n- [Read the other documentation](/Documentation)\n- [Check open pull requests](https://github.com/mac-cain13/R.swift/pulls)\n- [Search the issue tracker](https://github.com/mac-cain13/R.swift/issues)\n\nIf you find your idea/bugreport feel free to comment with an emoji or text reaction to let us know that you'd like this to be implemented. Is your idea/bugreport not in there? Please submit it to the [issue tracker](https://github.com/mac-cain13/R.swift/issues)!\n\n## Pull requests\n\nIf you'd like to implement a feature:\n\n- Check [the steps above](#questions-issues-and-ideas) to make sure it isn't already being build\n- Feel free to discuss the change in an issue, this will increase the chance of it being merged in\n- Keep your PR small, so it's easy to review\n- Follow the coding guidelines below\n\n### Coding guidelines\n\nPrinciples R.swift code should follow:\n\n- Follow existing patterns/code style; Pattern/style improvements should go in a seperate issue/PR\n- Warn the user if you're skipping items\n- Code defensively; most formats we parse are undocumented and will change without notice\n\nPrinciples generated code should follow:\n\n- Never crash; No use of ! for example.\n- Always compile; Rather skip an item than generate corrupt code.\n- Clarity over brevity; Don't use R.swift.Library methods for example ([Read more](https://github.com/mac-cain13/R.swift/issues/177))\n- Generate inline comments where it's relevant\n"
  },
  {
    "path": "Documentation/Examples.md",
    "content": "# Examples\n\nOn this page you'll find examples of the kind of resources R.swift supports and how you can use them. We aim to keep this page up to date and complete so this should be a overview of all possibilities.\n\n## Runtime validation\n\nCall `R.validate()` to call all validation methods that R.swift generates, this will check:\n- If all images used in storyboards and nibs are available\n- If all view controllers with storyboard identifiers can be loaded\n- If all custom fonts can be loaded\n\nThe `R.validate()` method will throw a detailed error about the problems that occur. Note that this method will always perform checks, even in release builds. It’s recommended that validation is done in a testcase.\n\n*Example testcase*\n```swift\nXCTAssertNoThrow(try R.validate())\n```\n\n## Images\n\nR.swift will find both images from Asset Catalogs and image files in your bundle.\n\n*Vanilla*\n```swift\nlet settingsIcon = UIImage(named: \"settings-icon\")\nlet gradientBackground = UIImage(named: \"gradient.jpg\")\n```\n\n*With R.swift*\n```swift\nlet settingsIcon = R.image.settingsIcon()\nlet gradientBackground = R.image.gradientJpg()\n```\n\n### Support for assets grouped in folders\n\nSelecting \"Provides Namespace\" results in grouping assets:\n\n![Assets folders structure](Images/NamespacedSubfolders.png)\n\nUse like so:\n```swift\nlet image = R.image.menu.icons.first()\n```\n\n## Custom fonts\n\n*Vanilla*\n```swift\nlet lightFontTitle = UIFont(name: \"Acme-Light\", size: 22)\n```\n\n*With R.swift*\n```swift\nlet lightFontTitle = R.font.acmeLight(size: 22)\n```\n\n**Tip:** Also want this for system fonts? Take a look at the [UIFontComplete](https://github.com/Nirma/UIFontComplete) library, has a similar solution for the fonts Apple ships with iOS.\n\n## Resource files\n\n*Vanilla*\n```swift\nlet jsonURL = Bundle.main.url(forResource: \"seed-data\", withExtension: \"json\")\nlet jsonPath = Bundle.main.path(forResource: \"seed-data\", ofType: \"json\")\n```\n\n*With R.swift*\n```swift\nlet jsonURL = R.file.seedDataJson()\nlet jsonPath = R.file.seedDataJson.path()\n```\n\n## Colors\n\n*Vanilla*\n```swift\nview.backgroundColor = UIColor(named: \"primary background\")\n```\n\n*With R.swift*\n```swift\nview.backgroundColor = R.color.primaryBackground()\n```\n\n## Localized strings\n\n*Vanilla*\n```swift\nlet welcomeMessage = NSLocalizedString(\"welcome.message\", comment: \"\")\nlet settingsTitle = NSLocalizedString(\"title\", tableName: \"Settings\", comment: \"\")\n\n// Formatted strings\nlet welcomeName = String(format: NSLocalizedString(\"welcome.withName\", comment: \"\"), locale: NSLocale.current, \"Alice\")\n\n// Stringsdict files\nlet progress = String(format: NSLocalizedString(\"copy.progress\", comment: \"\"), locale: NSLocale.current, 4, 23)\n```\n\n*With R.swift*\n```swift\n// Localized strings are grouped per table (.strings file)\nlet welcomeMessage = R.string.localizable.welcomeMessage()\nlet settingsTitle = R.string.settings.title()\n\n// Functions with parameters are generated for format strings\nlet welcomeName = R.string.localizable.welcomeWithName(\"Alice\")\n\n// Functions with named argument labels are generated for stringsdict keys\nlet progress = R.string.localizable.copyProgress(completed: 4, total: 23)\n```\n\n## Storyboards\n\n*Vanilla*\n```swift\nlet storyboard = UIStoryboard(name: \"Main\", bundle: nil)\nlet initialTabBarController = storyboard.instantiateInitialViewController() as? UITabBarController\nlet settingsController = storyboard.instantiateViewController(withIdentifier: \"settingsController\") as? SettingsController\n```\n\n*With R.swift*\n```swift\nlet storyboard = R.storyboard.main()\nlet initialTabBarController = R.storyboard.main.initialViewController()\nlet settingsController = R.storyboard.main.settingsController()\n```\n\n## Segues\n\n*Vanilla*\n```swift\n// Trigger segue with:\nperformSegue(withIdentifier: \"openSettings\", sender: self)\n\n// And then prepare it:\noverride func prepare(for segue: UIStoryboardSegue, sender: Any?) {\n    if let settingsController = segue.destination as? SettingsController,\n       let segue = segue as? CustomSettingsSegue, segue.identifier == \"openSettings\" {\n      segue.animationType = .LockAnimation\n      settingsController.lockSettings = true\n    }\n  }\n```\n\n*With R.swift*\n```swift\n// Trigger segue with:\nperformSegue(withIdentifier: R.segue.overviewController.openSettings, sender: self)\n\n// And then prepare it:\noverride func prepare(for segue: UIStoryboardSegue, sender: Any?) {\n  if let typedInfo = R.segue.overviewController.openSettings(segue: segue) {\n    typedInfo.segue.animationType = .LockAnimation\n    typedInfo.destinationViewController.lockSettings = true\n  }\n}\n```\n\n**Tip:** Take a look at the [SegueManager](https://github.com/tomlokhorst/SegueManager) library, it makes segues block based and is compatible with R.swift.\n\n## Nibs\n\n*Vanilla*\n```swift\nlet nameOfNib = \"CustomView\"\nlet customViewNib = UINib(nibName: \"CustomView\", bundle: nil)\nlet rootViews = customViewNib.instantiate(withOwner: nil, options: nil)\nlet customView = rootViews[0] as? CustomView\n\nlet viewControllerWithNib = CustomViewController(nibName: \"CustomView\", bundle: nil)\n```\n\n*With R.swift*\n```swift\nlet nameOfNib = R.nib.customView.name\nlet customViewNib = R.nib.customView()\nlet rootViews = R.nib.customView.instantiate(withOwner: nil)\nlet customView = R.nib.customView.firstView(owner: nil)\n\nlet viewControllerWithNib = CustomViewController(nib: R.nib.customView)\n```\n\n## Reusable table view cells\n\n*Vanilla*\n```swift\nclass FaqAnswerController: UITableViewController {\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    let textCellNib = UINib(nibName: \"TextCell\", bundle: nil)\n    tableView.register(textCellNib, forCellReuseIdentifier: \"TextCellIdentifier\")\n  }\n\n  override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {\n    let textCell = tableView.dequeueReusableCell(withIdentifier: \"TextCellIdentifier\", for: indexPath) as! TextCell\n    textCell.mainLabel.text = \"Hello World\"\n    return textCell\n  }\n}\n```\n\n*With R.swift*\n\nOn your reusable cell Interface Builder \"Attributes\" inspector panel, set the cell \"Identifier\" field to the same value you are going to register and dequeue.\n\n```swift\nclass FaqAnswerController: UITableViewController {\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    tableView.register(R.nib.textCell)\n  }\n\n  override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {\n    let textCell = tableView.dequeueReusableCell(withIdentifier: R.reuseIdentifier.textCell, for: indexPath)!\n    textCell.mainLabel.text = \"Hello World\"\n    return textCell\n  }\n}\n```\n\n## Reusable collection view cells\n\n*Vanilla*\n```swift\nclass RecentsController: UICollectionViewController {\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    let talkCellNib = UINib(nibName: \"TalkCell\", bundle: nil)\n    collectionView?.register(talkCellNib, forCellWithReuseIdentifier: \"TalkCellIdentifier\")\n  }\n\n  override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {\n    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: \"TalkCellIdentifier\", for: indexPath) as! TalkCell\n    cell.configureCell(\"Item \\(indexPath.item)\")\n    return cell\n  }\n}\n```\n\n*With R.swift*\n\nOn your reusable cell Interface Builder \"Attributes\" inspector panel, set the cell \"Identifier\" field to the same value you are going to register and dequeue.\n\n```swift\nclass RecentsController: UICollectionViewController {\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    collectionView?.register(R.nib.talkCell)\n  }\n\n  override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {\n    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: R.reuseIdentifier.talkCell, for: indexPath)!\n    cell.configureCell(\"Item \\(indexPath.item)\")\n    return cell\n  }\n}\n```\n\n## Project\n\n*Vanilla*\n```swift\nlet developmentRegion = fatalError(\"Not available at runtime\")\nlet myTag = \"myTag\"\n```\n\n*With R.swift*\n\nAccess the development region and any asset tags that are set on the project file.\n\n```swift\nlet developmentRegion = R.project.developmentRegion\nlet myTag = R.project.knownAssetTags.myTag\n```\n\n## Entitlements\n\n*With R.swift*\n\nAccess the values in the entitlement file you embedded. This might differ from the entitlements your app actually has at runtime! But it's greate to get some identifiers in a consistent way.\n\n```swift\nlet appGroupIdentifier = R.entitlements.comAppleSecurityApplicationGroups.groupMyAppGroup\n```\n\n## Info.plist\n\nValues under `UIApplicationShortcutItems`, `UIApplicationSceneManifest`, `NSUserActivityTypes`, `NSExtension` that are often needed in code are available directly through R.swift.\n\n*With R.swift*\n\nAccess the values in the Info.plist file.\n\n```swift\nlet activity = NSUserActivity(activityType: R.info.nsUserActivityTypes.planTripIntent)\n```\n"
  },
  {
    "path": "Documentation/Ignoring.md",
    "content": "# Ignoring resources\n\nR.swift will discover resources used in your project automatically. To make sure you can continue to use R.swift in the rare case that a file gives problems it is possible to ignore resources.\n\nIt is also possible to only run certain generators to skip other `R.something` items.\n\n\n## How does it work?\n\nCreate a `.rswiftignore` file in the source root of your project, this file will automatically be discovered by R.swift. The format of the file is nearly the same as [a `.gitignore` file](https://git-scm.com/docs/gitignore#_pattern_format). Wildcards like `*` and `**` are supported and you can add comments by starting a line with a `#`. Explicitly including single or multiple files that are otherwise globally ignored is also supported by starting a pattern with `!`.\n\n_Note:_ All patterns are file paths relative to the path of the `.rswiftignore` file.\n\n### Example\n\n```\n# Ignore a specific font file\nfonts/myspecialfont.ttf\n\n# Ignore all tiff and tif files in the images folder\nimages/*.tif\nimages/*.tiff\n\n# Ignore all strings files wherever they are\n**/*.strings\n\n# Ignore all files containing '.ignore.'\n**/*.ignore.*\n\n# Explicitly include a single file\n!keepme.ignore.png\n\n# Explicitly include all files containing '.keepme.'\n!**/*.keepme.*\n```\n\n## Custom file location\n\nIt is also possible to call the binary with the `--rswiftignore` flag and give a custom location of the ignore file this way.\n\n\n## Only run specific generators (exclude R.something)\nBy default, R.swift runs all generators, for images, nibs, strings and many more. In some situations you may not want to generate R structs for all these types. You can choose to run only certain generators by adding a flag like this: `--generators image,string` to the call to the [Build Phase](/Documentation/Images/BuildPhaseExample.png)\n\nThese are the available generators:\n\n- `image`\n- `string`\n- `color`\n- `file`\n- `font`\n- `nib`\n- `segue`\n- `storyboard`\n- `reuseIdentifier`\n- `entitlements`\n- `info`\n- `id`\n"
  },
  {
    "path": "Documentation/Migration.md",
    "content": "# Migration\n\nPointers for migration between major versions.\n\n## Upgrading to 7.0\n\n[Demo video: Updating from R.swift 6 to Rswift 7](https://www.youtube.com/watch?v=icihJ_hin3I)\n\n#### R.string changes\n - Strings are always formatted using `String(format:)`, even strings without arguments, make sure to escape any percentage signs (`%`) with `%%`\n - Use a custom language: `R.string(preferredLanguages: [\"fr\"]).example.hello()`\n\n#### Running the executable\n\nIf you're using Swift Package Manager:\n - Separate R.swift.Library is no longer needed, remove dependency on that package\n - `R.generated.swift` file is no longer needed in the project, delete the file\n - Remove custom Run Script Build Phase that invokes `rswift` binary\n - Add SPM dependency on `github.com/mac-cain13/R.swift.git` package\n - Add `RswiftLibrary` to your targets\n - Under \"Run Build Tool Plug-ins\" Build Phase, add `RswiftGenerateInternalResources` or `RswiftGeneratePublicResources` ([Screenshot](Images/RunBuildToolPluginsRswift.png))\n - Right-click on your project, and run `RswiftXcodeModifyPackages` to modify your Xcode project so that the build tool plug-in will actually run during builds (this seems to fix a bug in Xcode?) ([Screenshot](Images/RunXcodeModifyPackages.png))\n\nIf you're using Mint or manual call `rswift` executable:\n - Separate R.swift.Library is no longer needed, remove dependency on that package\n - Add SPM dependency on `github.com/mac-cain13/R.swift.git` package\n - Add `RswiftLibrary` to your targets\n\nChanges to the commandline tool `rswift` (not relevant when using SPM):\n - Argument `accessLevel` renamed to `access-level`\n - Argument `generateUITestFile` removed, if you need a separate file with just ids, call rswift a second time with `--generators id`\n - Argument `hostingBundle` removed, bundle can be specified in code: `_R(bundle: someBundle)`\n - Arguments removed: `bundleIdentifier`, `productModuleName`, `infoPlistFile`, `codeSignEntitlements`, `builtProductsDir`, `developerDir`, `platformDir`, `sdkRoot`, `sourceRoot`. Use environment variables instead.\n\n#### Library changes\n\nInternal changes in the Rswift support library:\n - Support for `R.nib.XXX.secondView` to `.twentiethView` has been removed, only `.firstView` remains\n - Renamed internal module, update `import Rswift` to `import RswiftResources`\n - Removed protocols: `ColorResourceType`, `FileResourceType`, `FontResourceType`, `IdentifierType`, `ImageResourceType`, `StoryboardViewControllerResourceType`, `StringResourceType`, `Validatable`\n - Added `StringResource1` up to `StringResource9`, for strings with parameters\n - Renamed types:\n    * `ReuseIdentifierType` to `ReuseIdentifierContainer`\n    * `NibResourceType` to `NibReferenceContainer`\n    * `StoryboardResourceType` to `StoryboardReference`\n    * `StoryboardResourceWithInitialControllerType` to `InitialControllerContainer`\n    * `TypedStoryboardSegueInfo` to `TypedSegue`\n    * `StoryboardSegueIdentifier` to `SegueIdentifier`\n\n#### Configuring Continuous Integration system\n\nWhen using a Swift Package Manager Plugin on a Continuous Integration (CI) server, you may see the following error:\n\n> The following build commands failed:\n>   Validate plug-in “RswiftGeneratePublicResources” in package “r.swift”\n\nTo allow the running of plugins, pass `-skipPackagePluginValidation` to xcbuildtool.  See also this discussion on the Swift forums: https://forums.swift.org/t/telling-xcode-14-beta-4-to-trust-build-tool-plugins-programatically/59305\n\nFor users of Fastlane, pass the extra argument like so:\n```\nbuild_app(\n  ...\n  xcargs: \"-skipPackagePluginValidation\"\n  ...\n)\n```\n\n\n## Upgrading to 6.0\n\n- In the Build Phase, some changes are needed, [see an example screenshot](Images/BuildPhaseExample.png):\n  * Uncheck \"Based on dependency analysis\" so that R.swift is run on each build\n  * Remove `$TEMP_DIR/rswift-lastrun` from the \"Input Files\" of the Build Phase\n  * Keep `$SRCROOT/[YOUR_PATH]/R.generated.swift` in the \"Output Files\" of the Build Phase unchanged\n\n## Upgrading to 5.0\n\n- Make sure you use Xcode 10 since we've adjusted to the SDK changes\n- At the moment we are compatible with both Swift 4 and 4.2, this is more an accident then a feature, beware that we might drop Swift 4 support anytime.\n\nIf you are using the \"New Build System\":\n- In the Build Phase you must perform some changes:\n  * Change the script to give the explicit output file, for example: `\"$PODS_ROOT/R.swift/rswift\" generate \"$SRCROOT/[YOUR_PATH]/R.generated.swift\"`\n  * Add `$TEMP_DIR/rswift-lastrun` to the \"Input Files\" of the Build Phase\n  * Add `$SRCROOT/[YOUR_PATH]/R.generated.swift` to the \"Output Files\" of the Build Phase\n\nIf you are using the \"Legacy Build System\":\n- Add the flag `--disable-input-output-files-validation` and *do not* add input/output files to the Build Phase.\n\n## Upgrading to 4.0\n\n- Make sure you use Swift 4 / Xcode 9 since we've adjusted to the syntax and SDK changes.\n- Running R.swift now requires the `generate` command, check the error R.swift outputs for upgrade instructions\n- Capitalization of methods and properties might have changed, in these cases the compiler should generate a fix-it for you.\n- Support for CLR-files is deprecated, use the new named Color assets instead where possible.\n * CLR based colors are moved from `R.color.*` to `R.clr.*`\n * Support for CLR files will be removed in a later version\n- At the moment we are compatible with both Swift 3.2 and Swift 4, this is more an accident then a feature, beware that we might drop Swift 3.2 support anytime.\n- If you upgrade from Swift 2 we advise you to first migrate to Swift 3 / R.swift 3.0 and when that is done apply the migration to Swift 4 / R.swift 4.0\n\n## Upgrading to 3.0\n\n- Make sure you use Swift 3 / Xcode 8 since we've adjusted to the syntax changes.\n- If you want to use Swift 2.3 / Xcode 8 use the latest R.swift 2 release.\n- Some methods are renamed to match the new Swift 3 naming conventions, there are annotations available so the compiler can help you migrate.\n\n## Upgrading to 2.0\n\n- Make sure you use Swift 2.2 / Xcode 7.3 since we've adjusted to the syntax changes.\n\n## Upgrading to 1.0\n\n- iOS 7 support is dropped, use [R.swift 0.13](https://github.com/mac-cain13/R.swift/releases/tag/v0.13.0) if you still have to support it.\n- Generated code now depends on the [R.swift.Library](https://github.com/mac-cain13/R.swift.Library), CocoaPods users don't need to do anything. Manual installation users need to include this library themselves, see the readme for instructions.\n- In general; properties that created new stuff are now functions to represent better that they actually create a new instance.\n * `R.image.settingsIcon` changed to  `R.image.settingsIcon()`\n * `R.file.someJson` changed to `R.file.someJson()`\n * `R.storyboard.main.initialViewController` changed to `R.storyboard.main.initialViewController()`\n * `R.storyboard.main.someViewController` changed to `R.storyboard.main.someViewController()`\n- In general; Where you needed to use `.initialize()` to get the instance, a shorter function is available now:\n * `R.storyboard.main.initialize()` changed to `R.storyboard.main()`\n * `R.nib.someView.initiate()` changed to `R.nib.someView()`\n- Nib root view loading changed from `R.nib.someView.firstView(nil, options: nil)` to `R.nib.someView.firstView(owner: nil)`\n- Typed segue syntax changed from `segue.typedInfoWithIdentifier(R.segue.someViewController.someSegue)` to `R.segue.someViewController.someSegue(segue: segue)`\n- Runtime validation changed:\n * `R.validate()` now throws errors it encounters\n * `R.assertValid()` asserts on errors and only performs action in a debug/non-optimized build\n * For regular use cases using `R.assertValid()` is recommended\n"
  },
  {
    "path": "Documentation/QandA.md",
    "content": "# Questions and Answers\n\n## Why was R.swift created?\n\nSwift is a beautiful language and one of it's main advantages is its increasing popularity. However, it can be frustrating to deal with errors that compile but fail during runtime due to missing resources. This makes refactoring difficult while making it easy to create bugs (e.g. missing images etc).\n\nAndroid tackles this problem by generating something called the R class. It inspired me to create this very project, R.swift, which, thankfully, was well received by colleagues, friends and Github stargazers, so here we are now.\n\n## Why should I choose R.swift over alternative X or Y?\n\nThere are many nice R.swift alternatives like [SwiftGen](https://github.com/AliSoftware/SwiftGen) and [Shark](https://github.com/kaandedeoglu/Shark). However, I believe R.swift has these important advantages:\n- R.swift inspects your Xcodeproj file for resources instead of scanning folders or asking you for files\n- R.swift supports a lot of different assets\n- R.swift stays very close to the vanilla Apple API's, having minimal code change with maximum impact\n\n## What are the requirements to run R.swift?\n\nR.swift works with Xcode 10 for apps targetting iOS 8 and tvOS 9 and higher.\n\n## How do I fix missing imports in the generated file?\n\nIf you get errors like `Use of undeclared type 'SomeType'` in the `R.generated.swift` file, this can usually be fixed by [explicitly stating the module in your xib or storyboard](Images/ExplicitCustomModule.png). This will make R.swift recognize that an import is necessary.\n\n## How do I use classes with the same name as their module?\n\nIf you get errors like `'SomeType' is not a member type of 'SomeType'`, that means you are using a module that contains a class/struct/enum with the same name as the module itself. This is a known [Swift issue](https://bugs.swift.org/browse/SR-898).\n\nYou can work around this problem by [*emptying* the module field in the xib or storyboard](Images/ExplicitCustomModule.png) and then [adding `--import SomeType` as a flag](Images/CustomImport.png) to the R.swift build phase to ensure R.swift imports the module in the generated file.\n\n## Can I use R.swift in a library?\n\nYes, just add R.swift as a buildstep in your library project and it will work just like normal. This works best if you have a dedicated Xcode project you can use to add the build script to. For Cocoapod users: this is [not the case](https://github.com/mac-cain13/R.swift/issues/430#issue-344112657) if you've used `pod lib create MyNewLib` to scaffold your library.\n\nIf you want to expose the resources to users of your library, you have to make the generated code public, you can do this by adding `--accessLevel public` to the call to R.swift. For example, if you included R.swift as a cocoapod dependency to your library project, you would change your build step to: `\"$PODS_ROOT/R.swift/rswift\" generate --accessLevel public \"$SRCROOT\"`\n\n## How does R.swift work?\n\nDuring installation you add R.swift as a Build phase to your target, basically this means that:\n- Every time you build R.swift will run\n- It takes a look at your Xcode project file and inspects all resources linked with the target currently build\n- It generates a `R.generated.swift` file that contains a struct with types references to all of your resources \n"
  },
  {
    "path": "Documentation/Readme.md",
    "content": "# Documentation for R.swift\n\n- [Questions and Answers](QandA.md)\n- [Usage examples](Examples.md)\n- [Ignoring resources](Ignoring.md)\n- [Pointers for migration between major versions](Migration.md)\n- [About contributing](Contribute.md)\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/FileSystemSynchronized.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 74;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tE212C64E291BE24B000E4F65 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E212C64D291BE24B000E4F65 /* RswiftLibrary */; };\n\t\tE212C650291BE252000E4F65 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E212C64F291BE252000E4F65 /* RswiftLibrary */; };\n\t\tE22057AE2C9C71D70070148F /* Colors@3x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E22057AB2C9C71D70070148F /* Colors@3x.jpg */; };\n\t\tE243EFB02510E08D00DC653F /* TheAppClipApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E243EFAF2510E08D00DC653F /* TheAppClipApp.swift */; };\n\t\tE243EFB22510E08D00DC653F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E243EFB12510E08D00DC653F /* ContentView.swift */; };\n\t\tE243EFB42510E08E00DC653F /* ClipAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EFB32510E08E00DC653F /* ClipAssets.xcassets */; };\n\t\tE243EFB72510E08E00DC653F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EFB62510E08E00DC653F /* Preview Assets.xcassets */; };\n\t\tE243EFBC2510E08E00DC653F /* TheAppClip.app in Embed App Clips */ = {isa = PBXBuildFile; fileRef = E243EFAD2510E08D00DC653F /* TheAppClip.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };\n\t\tE2A7F4732CD799F300FCB116 /* MySiriIntents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = E2A7F4722CD799F300FCB116 /* MySiriIntents.intentdefinition */; };\n\t\tE2A7F4742CD799F300FCB116 /* MySiriIntents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = E2A7F4722CD799F300FCB116 /* MySiriIntents.intentdefinition */; };\n\t\tE2A7F4B62CD7A25100FCB116 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2A7F4B42CD7A25100FCB116 /* Localizable.strings */; };\n\t\tE2A7F4B72CD7A25100FCB116 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2A7F4B42CD7A25100FCB116 /* Localizable.strings */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tE243EFBA2510E08E00DC653F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = E243EF892510DF9100DC653F /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = E243EFAC2510E08D00DC653F;\n\t\t\tremoteInfo = TheAppClip;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\tE243EFBD2510E08E00DC653F /* Embed App Clips */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"$(CONTENTS_FOLDER_PATH)/AppClips\";\n\t\t\tdstSubfolderSpec = 16;\n\t\t\tfiles = (\n\t\t\t\tE243EFBC2510E08E00DC653F /* TheAppClip.app in Embed App Clips */,\n\t\t\t);\n\t\t\tname = \"Embed App Clips\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\tE212C64C291BE1DB000E4F65 /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n\t\tE22057AB2C9C71D70070148F /* Colors@3x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = \"Colors@3x.jpg\"; sourceTree = \"<group>\"; };\n\t\tE243EF912510DF9100DC653F /* MainUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MainUI.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE243EFAD2510E08D00DC653F /* TheAppClip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TheAppClip.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE243EFAF2510E08D00DC653F /* TheAppClipApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TheAppClipApp.swift; sourceTree = \"<group>\"; };\n\t\tE243EFB12510E08D00DC653F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = \"<group>\"; };\n\t\tE243EFB32510E08E00DC653F /* ClipAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ClipAssets.xcassets; sourceTree = \"<group>\"; };\n\t\tE243EFB62510E08E00DC653F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = \"Preview Assets.xcassets\"; sourceTree = \"<group>\"; };\n\t\tE243EFB82510E08E00DC653F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE243EFB92510E08E00DC653F /* TheAppClip.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = TheAppClip.entitlements; sourceTree = \"<group>\"; };\n\t\tE243EFC22510E0D900DC653F /* Rswift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Rswift.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE2A7F4712CD799F300FCB116 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; name = Base; path = Base.lproj/MySiriIntents.intentdefinition; sourceTree = \"<group>\"; };\n\t\tE2A7F47C2CD79A0F00FCB116 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/MySiriIntents.strings; sourceTree = \"<group>\"; };\n\t\tE2A7F4B52CD7A25100FCB116 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tE2A7F4B82CD7A25500FCB116 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */\n\t\tE22058272C9CB6AE0070148F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {\n\t\t\tisa = PBXFileSystemSynchronizedBuildFileExceptionSet;\n\t\t\tmembershipExceptions = (\n\t\t\t\tNogeeen/person.png,\n\t\t\t);\n\t\t\ttarget = E243EF902510DF9100DC653F /* MainUI */;\n\t\t};\n\t\tE220582B2C9CB71A0070148F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {\n\t\t\tisa = PBXFileSystemSynchronizedBuildFileExceptionSet;\n\t\t\tmembershipExceptions = (\n\t\t\t\tUser.png,\n\t\t\t);\n\t\t\ttarget = E243EFAC2510E08D00DC653F /* TheAppClip */;\n\t\t};\n\t\tE25226AE2C9C612000F32501 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {\n\t\t\tisa = PBXFileSystemSynchronizedBuildFileExceptionSet;\n\t\t\tmembershipExceptions = (\n\t\t\t\tInfo.plist,\n\t\t\t);\n\t\t\ttarget = E243EF902510DF9100DC653F /* MainUI */;\n\t\t};\n\t\tE25226AF2C9C612000F32501 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {\n\t\t\tisa = PBXFileSystemSynchronizedBuildFileExceptionSet;\n\t\t\tmembershipExceptions = (\n\t\t\t\t/Localized/MyStoryboard.storyboard,\n\t\t\t\tAssets.xcassets,\n\t\t\t);\n\t\t\ttarget = E243EFAC2510E08D00DC653F /* TheAppClip */;\n\t\t};\n/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */\n\n/* Begin PBXFileSystemSynchronizedRootGroup section */\n\t\tE2187D462CCC4ED800F33259 /* Folder2 */ = {\n\t\t\tisa = PBXFileSystemSynchronizedRootGroup;\n\t\t\texplicitFileTypes = {\n\t\t\t};\n\t\t\texplicitFolders = (\n\t\t\t);\n\t\t\tpath = Folder2;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE22057F22C9C95EC0070148F /* Folder1 */ = {\n\t\t\tisa = PBXFileSystemSynchronizedRootGroup;\n\t\t\texplicitFileTypes = {\n\t\t\t};\n\t\t\texplicitFolders = (\n\t\t\t);\n\t\t\tpath = Folder1;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE22058252C9CB6A20070148F /* Inner group */ = {\n\t\t\tisa = PBXFileSystemSynchronizedRootGroup;\n\t\t\texceptions = (\n\t\t\t\tE22058272C9CB6AE0070148F /* PBXFileSystemSynchronizedBuildFileExceptionSet */,\n\t\t\t\tE220582B2C9CB71A0070148F /* PBXFileSystemSynchronizedBuildFileExceptionSet */,\n\t\t\t);\n\t\t\texplicitFileTypes = {\n\t\t\t};\n\t\t\texplicitFolders = (\n\t\t\t);\n\t\t\tpath = \"Inner group\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE25226A62C9C612000F32501 /* MainUI */ = {\n\t\t\tisa = PBXFileSystemSynchronizedRootGroup;\n\t\t\texceptions = (\n\t\t\t\tE25226AE2C9C612000F32501 /* PBXFileSystemSynchronizedBuildFileExceptionSet */,\n\t\t\t\tE25226AF2C9C612000F32501 /* PBXFileSystemSynchronizedBuildFileExceptionSet */,\n\t\t\t);\n\t\t\texplicitFileTypes = {\n\t\t\t};\n\t\t\texplicitFolders = (\n\t\t\t);\n\t\t\tpath = MainUI;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXFileSystemSynchronizedRootGroup section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tE243EF8E2510DF9100DC653F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE212C64E291BE24B000E4F65 /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE243EFAA2510E08D00DC653F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE212C650291BE252000E4F65 /* RswiftLibrary 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\tE212C64B291BE1DB000E4F65 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE212C64C291BE1DB000E4F65 /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE22057AC2C9C71D70070148F /* Subdir */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE22057AB2C9C71D70070148F /* Colors@3x.jpg */,\n\t\t\t\tE22058252C9CB6A20070148F /* Inner group */,\n\t\t\t);\n\t\t\tpath = Subdir;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE22057F32C9C95F50070148F /* Group1 */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2187D462CCC4ED800F33259 /* Folder2 */,\n\t\t\t\tE22057F22C9C95EC0070148F /* Folder1 */,\n\t\t\t\tE2A7F4722CD799F300FCB116 /* MySiriIntents.intentdefinition */,\n\t\t\t);\n\t\t\tpath = Group1;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EF882510DF9100DC653F = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE212C64B291BE1DB000E4F65 /* Packages */,\n\t\t\t\tE25226A62C9C612000F32501 /* MainUI */,\n\t\t\t\tE243EFAE2510E08D00DC653F /* TheAppClip */,\n\t\t\t\tE243EF922510DF9100DC653F /* Products */,\n\t\t\t\tE243EFC12510E0D900DC653F /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EF922510DF9100DC653F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EF912510DF9100DC653F /* MainUI.app */,\n\t\t\t\tE243EFAD2510E08D00DC653F /* TheAppClip.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFAE2510E08D00DC653F /* TheAppClip */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE22057F32C9C95F50070148F /* Group1 */,\n\t\t\t\tE22057AC2C9C71D70070148F /* Subdir */,\n\t\t\t\tE243EFAF2510E08D00DC653F /* TheAppClipApp.swift */,\n\t\t\t\tE243EFB12510E08D00DC653F /* ContentView.swift */,\n\t\t\t\tE243EFB32510E08E00DC653F /* ClipAssets.xcassets */,\n\t\t\t\tE243EFB82510E08E00DC653F /* Info.plist */,\n\t\t\t\tE243EFB92510E08E00DC653F /* TheAppClip.entitlements */,\n\t\t\t\tE243EFB52510E08E00DC653F /* Preview Content */,\n\t\t\t\tE2A7F4B42CD7A25100FCB116 /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = TheAppClip;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFB52510E08E00DC653F /* Preview Content */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EFB62510E08E00DC653F /* Preview Assets.xcassets */,\n\t\t\t);\n\t\t\tpath = \"Preview Content\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFC12510E0D900DC653F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EFC22510E0D900DC653F /* Rswift.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tE243EF902510DF9100DC653F /* MainUI */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E243EFA02510DF9200DC653F /* Build configuration list for PBXNativeTarget \"MainUI\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE243EF8D2510DF9100DC653F /* Sources */,\n\t\t\t\tE243EF8E2510DF9100DC653F /* Frameworks */,\n\t\t\t\tE243EF8F2510DF9100DC653F /* Resources */,\n\t\t\t\tE243EFBD2510E08E00DC653F /* Embed App Clips */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE212C655291BE2D9000E4F65 /* PBXTargetDependency */,\n\t\t\t\tE243EFBB2510E08E00DC653F /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tfileSystemSynchronizedGroups = (\n\t\t\t\tE25226A62C9C612000F32501 /* MainUI */,\n\t\t\t);\n\t\t\tname = MainUI;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE212C64D291BE24B000E4F65 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = MainUI;\n\t\t\tproductReference = E243EF912510DF9100DC653F /* MainUI.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tE243EFAC2510E08D00DC653F /* TheAppClip */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E243EFC02510E08E00DC653F /* Build configuration list for PBXNativeTarget \"TheAppClip\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE243EFA92510E08D00DC653F /* Sources */,\n\t\t\t\tE243EFAA2510E08D00DC653F /* Frameworks */,\n\t\t\t\tE243EFAB2510E08D00DC653F /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE212C652291BE2C0000E4F65 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tfileSystemSynchronizedGroups = (\n\t\t\t\tE2187D462CCC4ED800F33259 /* Folder2 */,\n\t\t\t\tE22057F22C9C95EC0070148F /* Folder1 */,\n\t\t\t);\n\t\t\tname = TheAppClip;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE212C64F291BE252000E4F65 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = TheAppClip;\n\t\t\tproductReference = E243EFAD2510E08D00DC653F /* TheAppClip.app */;\n\t\t\tproductType = \"com.apple.product-type.application.on-demand-install-capable\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tE243EF892510DF9100DC653F /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tLastSwiftUpdateCheck = 1200;\n\t\t\t\tLastUpgradeCheck = 1500;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tE243EF902510DF9100DC653F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 12.0;\n\t\t\t\t\t};\n\t\t\t\t\tE243EFAC2510E08D00DC653F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 12.0;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = E243EF8C2510DF9100DC653F /* Build configuration list for PBXProject \"FileSystemSynchronized\" */;\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t\tnl,\n\t\t\t);\n\t\t\tmainGroup = E243EF882510DF9100DC653F;\n\t\t\tpackageReferences = (\n\t\t\t\tE2A7F4B12CD7A1D500FCB116 /* XCLocalSwiftPackageReference \"../../../R.swift\" */,\n\t\t\t);\n\t\t\tpreferredProjectObjectVersion = 50;\n\t\t\tproductRefGroup = E243EF922510DF9100DC653F /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tE243EF902510DF9100DC653F /* MainUI */,\n\t\t\t\tE243EFAC2510E08D00DC653F /* TheAppClip */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tE243EF8F2510DF9100DC653F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2A7F4B72CD7A25100FCB116 /* Localizable.strings in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE243EFAB2510E08D00DC653F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE243EFB72510E08E00DC653F /* Preview Assets.xcassets in Resources */,\n\t\t\t\tE2A7F4B62CD7A25100FCB116 /* Localizable.strings in Resources */,\n\t\t\t\tE243EFB42510E08E00DC653F /* ClipAssets.xcassets in Resources */,\n\t\t\t\tE22057AE2C9C71D70070148F /* Colors@3x.jpg 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\tE243EF8D2510DF9100DC653F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2A7F4732CD799F300FCB116 /* MySiriIntents.intentdefinition in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE243EFA92510E08D00DC653F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2A7F4742CD799F300FCB116 /* MySiriIntents.intentdefinition in Sources */,\n\t\t\t\tE243EFB22510E08D00DC653F /* ContentView.swift in Sources */,\n\t\t\t\tE243EFB02510E08D00DC653F /* TheAppClipApp.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\tE212C652291BE2C0000E4F65 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E212C651291BE2C0000E4F65 /* RswiftGenerateInternalResources */;\n\t\t};\n\t\tE212C655291BE2D9000E4F65 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E212C654291BE2D9000E4F65 /* RswiftGenerateInternalResources */;\n\t\t};\n\t\tE243EFBB2510E08E00DC653F /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = E243EFAC2510E08D00DC653F /* TheAppClip */;\n\t\t\ttargetProxy = E243EFBA2510E08E00DC653F /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\tE2A7F4722CD799F300FCB116 /* MySiriIntents.intentdefinition */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE2A7F4712CD799F300FCB116 /* Base */,\n\t\t\t\tE2A7F47C2CD79A0F00FCB116 /* nl */,\n\t\t\t);\n\t\t\tname = MySiriIntents.intentdefinition;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2A7F4B42CD7A25100FCB116 /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE2A7F4B52CD7A25100FCB116 /* en */,\n\t\t\t\tE2A7F4B82CD7A25500FCB116 /* nl */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tE243EF9E2510DF9200DC653F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE243EF9F2510DF9200DC653F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE243EFA12510DF9200DC653F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"MainUI/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = MainUI/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\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\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.MainUI;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE243EFA22510DF9200DC653F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"MainUI/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = MainUI/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\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\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.MainUI;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE243EFBE2510E08E00DC653F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = TheAppClip/TheAppClip.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"TheAppClip/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = TheAppClip/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.MainUI.Clip;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE243EFBF2510E08E00DC653F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = TheAppClip/TheAppClip.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"TheAppClip/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = TheAppClip/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.MainUI.Clip;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tE243EF8C2510DF9100DC653F /* Build configuration list for PBXProject \"FileSystemSynchronized\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE243EF9E2510DF9200DC653F /* Debug */,\n\t\t\t\tE243EF9F2510DF9200DC653F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE243EFA02510DF9200DC653F /* Build configuration list for PBXNativeTarget \"MainUI\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE243EFA12510DF9200DC653F /* Debug */,\n\t\t\t\tE243EFA22510DF9200DC653F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE243EFC02510E08E00DC653F /* Build configuration list for PBXNativeTarget \"TheAppClip\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE243EFBE2510E08E00DC653F /* Debug */,\n\t\t\t\tE243EFBF2510E08E00DC653F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCLocalSwiftPackageReference section */\n\t\tE2A7F4B12CD7A1D500FCB116 /* XCLocalSwiftPackageReference \"../../../R.swift\" */ = {\n\t\t\tisa = XCLocalSwiftPackageReference;\n\t\t\trelativePath = ../../../R.swift;\n\t\t};\n/* End XCLocalSwiftPackageReference section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\tE212C64D291BE24B000E4F65 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE212C64F291BE252000E4F65 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE212C651291BE2C0000E4F65 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n\t\tE212C654291BE2D9000E4F65 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = E243EF892510DF9100DC653F /* Project object */;\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/FileSystemSynchronized.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": "Examples/FileSystemSynchronized/FileSystemSynchronized.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"83.5x83.5\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"scale\" : \"1x\",\n      \"size\" : \"1024x1024\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/Assets.xcassets/hand.ignoreme.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"hand.ignoreme.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/Base.lproj/MyStoryboard.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"23094\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"Y6W-OH-hqX\">\n    <device id=\"retina6_12\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"23084\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"System colors in document resources\" minToolsVersion=\"11.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"s0d-6b-0kx\">\n            <objects>\n                <viewController id=\"Y6W-OH-hqX\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"5EZ-qb-Rvc\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" fixedFrame=\"YES\" text=\"The first\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"oox-ej-MK4\">\n                                <rect key=\"frame\" x=\"47\" y=\"77\" width=\"64\" height=\"21\"/>\n                                <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" fixedFrame=\"YES\" text=\"Second label\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"cgd-Ta-I3o\">\n                                <rect key=\"frame\" x=\"47\" y=\"123\" width=\"99\" height=\"21\"/>\n                                <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <viewLayoutGuide key=\"safeArea\" id=\"vDu-zF-Fre\"/>\n                        <color key=\"backgroundColor\" systemColor=\"systemBackgroundColor\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"Ief-a0-LHa\" userLabel=\"First Responder\" customClass=\"UIResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"138\" y=\"4\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <systemColor name=\"systemBackgroundColor\">\n            <color white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n        </systemColor>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/ContentView.swift",
    "content": "//\n//  ContentView.swift\n//  MainUI\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n    var body: some View {\n        Text(\"Hello, SwiftUI App!\")\n            .padding()\n\n        Image(R.image.handIgnoreme)\n            .resizable()\n            .aspectRatio(1, contentMode: .fit)\n            .frame(width: 140)\n    }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n    static var previews: some View {\n        ContentView()\n    }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>NSUserActivityTypes</key>\n\t<array>\n\t\t<string>FirstIntentIntent</string>\n\t</array>\n\t<key>UIApplicationSceneManifest</key>\n\t<dict>\n\t\t<key>UIApplicationSupportsMultipleScenes</key>\n\t\t<true/>\n\t</dict>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n\t<key>UILaunchScreen</key>\n\t<dict/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/MainUI.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.application-groups</key>\n\t<array/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/MainUIApp.swift",
    "content": "//\n//  MainUIApp.swift\n//  MainUI\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\n@main\nstruct MainUIApp: App {\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n                .onAppear {\n                    // From Assets (in this target)\n                    print(R.image.handIgnoreme()!)\n\n                    // From root folder (in this target)\n                    print(R.image.user1()!)\n                    print(R.storyboard.myStoryboard.instantiateInitialViewController()!)\n\n                    // From Folders3 copy (in this target)\n                    print(R.image.hand3Two()!)\n                    print(R.image.hand3Three()!)\n                    print(R.image.hand2Two()!)\n                    print(R.image.hand2Three()!)\n\n                    // From Subdir (in TheAppClip target)\n                    print(R.image.person()!)\n\n                    // From root folder (in TheAppClip target)\n                    print(R.string.localizable.helloWorld())\n                }\n        }\n    }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/Preview Content/Preview Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/View.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"23094\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_12\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"23084\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" preservesSuperviewLayoutMargins=\"YES\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"myReuse\" id=\"46V-W9-dmf\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"44\"/>\n            <autoresizingMask key=\"autoresizingMask\"/>\n            <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" preservesSuperviewLayoutMargins=\"YES\" insetsLayoutMarginsFromSafeArea=\"NO\" tableViewCell=\"46V-W9-dmf\" id=\"zIJ-Fj-7zx\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"44\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </tableViewCellContentView>\n            <point key=\"canvasLocation\" x=\"-22.137404580152669\" y=\"-412.67605633802822\"/>\n        </tableViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/MainUI/nl.lproj/MyStoryboard.strings",
    "content": "\n/* Class = \"UILabel\"; text = \"Second label\"; ObjectID = \"cgd-Ta-I3o\"; */\n\"cgd-Ta-I3o.text\" = \"Tweede label\";\n\n/* Class = \"UILabel\"; text = \"The first\"; ObjectID = \"oox-ej-MK4\"; */\n\"oox-ej-MK4.text\" = \"De eerste\";\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/ClipAssets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/ClipAssets.xcassets/MyColor.colorset/Contents.json",
    "content": "{\n  \"colors\" : [\n    {\n      \"color\" : {\n        \"platform\" : \"ios\",\n        \"reference\" : \"systemTealColor\"\n      },\n      \"idiom\" : \"universal\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"color\" : {\n        \"platform\" : \"ios\",\n        \"reference\" : \"systemOrangeColor\"\n      },\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/ContentView.swift",
    "content": "//\n//  ContentView.swift\n//  TheAppClip\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n    var body: some View {\n        Text(\"Hello, App Clip!\")\n            .padding()\n\n        Image(R.image.handIgnoreme)\n            .resizable()\n            .aspectRatio(1, contentMode: .fit)\n            .frame(width: 140)\n            .border(Color(R.color.myColor))\n    }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n    static var previews: some View {\n        ContentView()\n    }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/Group1/Base.lproj/MySiriIntents.intentdefinition",
    "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>INEnums</key>\n\t<array/>\n\t<key>INIntentDefinitionModelVersion</key>\n\t<string>1.2</string>\n\t<key>INIntentDefinitionNamespace</key>\n\t<string>CfVXCE</string>\n\t<key>INIntentDefinitionSystemVersion</key>\n\t<string>24A348</string>\n\t<key>INIntentDefinitionToolsBuildVersion</key>\n\t<string>16A242d</string>\n\t<key>INIntentDefinitionToolsVersion</key>\n\t<string>16.0</string>\n\t<key>INIntents</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>INIntentCategory</key>\n\t\t\t<string>generic</string>\n\t\t\t<key>INIntentConfigurable</key>\n\t\t\t<true/>\n\t\t\t<key>INIntentDescription</key>\n\t\t\t<string>the description</string>\n\t\t\t<key>INIntentDescriptionID</key>\n\t\t\t<string>0yVZNa</string>\n\t\t\t<key>INIntentManagedParameterCombinations</key>\n\t\t\t<dict>\n\t\t\t\t<key></key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>INIntentParameterCombinationSupportsBackgroundExecution</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>INIntentParameterCombinationUpdatesLinked</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t</dict>\n\t\t\t<key>INIntentName</key>\n\t\t\t<string>FirstIntent</string>\n\t\t\t<key>INIntentParameterCombinations</key>\n\t\t\t<dict>\n\t\t\t\t<key></key>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>INIntentParameterCombinationIsPrimary</key>\n\t\t\t\t\t<true/>\n\t\t\t\t\t<key>INIntentParameterCombinationSupportsBackgroundExecution</key>\n\t\t\t\t\t<true/>\n\t\t\t\t</dict>\n\t\t\t</dict>\n\t\t\t<key>INIntentResponse</key>\n\t\t\t<dict>\n\t\t\t\t<key>INIntentResponseCodes</key>\n\t\t\t\t<array>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>INIntentResponseCodeName</key>\n\t\t\t\t\t\t<string>success</string>\n\t\t\t\t\t\t<key>INIntentResponseCodeSuccess</key>\n\t\t\t\t\t\t<true/>\n\t\t\t\t\t</dict>\n\t\t\t\t\t<dict>\n\t\t\t\t\t\t<key>INIntentResponseCodeName</key>\n\t\t\t\t\t\t<string>failure</string>\n\t\t\t\t\t</dict>\n\t\t\t\t</array>\n\t\t\t</dict>\n\t\t\t<key>INIntentTitle</key>\n\t\t\t<string>First Intent</string>\n\t\t\t<key>INIntentTitleID</key>\n\t\t\t<string>YPNLgh</string>\n\t\t\t<key>INIntentType</key>\n\t\t\t<string>Custom</string>\n\t\t\t<key>INIntentVerb</key>\n\t\t\t<string>Do</string>\n\t\t</dict>\n\t</array>\n\t<key>INTypes</key>\n\t<array/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/Group1/Folder1/.gitkeep",
    "content": ""
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/Group1/nl.lproj/MySiriIntents.strings",
    "content": "\"0yVZNa\" = \"de omschrijving\";\n\n\"YPNLgh\" = \"Eerste Intent\";\n\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/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>CFBundleDisplayName</key>\n\t<string>MainUI</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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>NSUserActivityTypes</key>\n\t<array>\n\t\t<string>FirstIntentIntent</string>\n\t</array>\n\t<key>UIApplicationSceneManifest</key>\n\t<dict>\n\t\t<key>UIApplicationSupportsMultipleScenes</key>\n\t\t<true/>\n\t</dict>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n\t<key>UILaunchScreen</key>\n\t<dict/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/Preview Content/Preview Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/TheAppClip.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.developer.parent-application-identifiers</key>\n\t<array>\n\t\t<string>$(AppIdentifierPrefix)nl.mathijskadijk.MainUI</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/TheAppClipApp.swift",
    "content": "//\n//  TheAppClipApp.swift\n//  TheAppClip\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\n@main\nstruct TheAppClipApp: App {\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n                .onAppear {\n                    // From ClipAssets (in this target)\n                    print(R.color.myColor()!)\n\n                    // From Group1 (in this target)\n                    print(R.image.handTwo()!)\n                    print(R.image.handThree()!)\n                    print(R.image.hand3Two()!)\n                    print(R.image.hand3Three()!)\n                    print(R.image.hand3Three()!)\n\n                    // From Subdir (in this target)\n                    print(R.image.colorsJpg()!)\n                    print(R.image.user()!)\n\n                    // From root folder (in this target)\n                    print(R.string.localizable.helloWorld())\n\n                    // From Assets (in MainUI)\n                    print(R.image.handIgnoreme()!)\n\n                    // From root folder (in MainUI)\n                    print(R.storyboard.myStoryboard.instantiateInitialViewController()!)\n                }\n        }\n    }\n}\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/en.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  FileSystemSynchronized\n\n  Created by Tom Lokhorst on 2024-11-03.\n  \n*/\n\n\"hello.world\" = \"Hello world\";\n"
  },
  {
    "path": "Examples/FileSystemSynchronized/TheAppClip/nl.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  FileSystemSynchronized\n\n  Created by Tom Lokhorst on 2024-11-03.\n  \n*/\n\n\"hello.world\" = \"Hallo wereld\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  LocalizedStringApp\n//\n//  Created by Tom Lokhorst on 2019-08-30.\n//  Copyright © 2019 R.swift. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n\n\n  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n\n/*\n    let myprefs: [String] = [\"fr-CA\"]\n\n    print(\"Locale.preferredLanguages:\")\n    print(Locale.preferredLanguages)\n    print()\n    print(\"Bundle.main.preferredLocalizations:\")\n    print(Bundle.main.preferredLocalizations)\n    print()\n    print(\"Test:\")\n    print(NSLocalizedString(\"one1\", tableName: \"one\", comment: \"\"))\n    print(R.string.one.one1())\n    print(R.string.one.one1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"one2\", tableName: \"one\", comment: \"\"))\n    print(R.string.one.one2())\n    print(R.string.one.one2(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"two1\", tableName: \"two\", comment: \"\"))\n    print(R.string.two.two1())\n    print(R.string.two.two1(preferredLanguages: myprefs))\n    print()\n    print(String(format: NSLocalizedString(\"two2\", tableName: \"two\", comment: \"\"), locale: Locale(identifier: myprefs.first!), \"Hello\"))\n    print(R.string.two.two2(\"Hello\"))\n    print(R.string.two.two2(\"Hello\", preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"three1\", tableName: \"three\", comment: \"\"))\n    print(R.string.three.three1())\n    print(R.string.three.three1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"three2\", tableName: \"three\", comment: \"\"))\n    print(R.string.three.three2())\n    print(R.string.three.three2(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"three3\", tableName: \"three\", comment: \"\"))\n    print(R.string.three.three3())\n    print(R.string.three.three3(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"four1\", tableName: \"four\", comment: \"\"))\n    print(R.string.four.four1())\n    print(R.string.four.four1(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"five1\", tableName: \"five\", comment: \"\"))\n    print(R.string.five.five1())\n    print(R.string.five.five1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"five2\", tableName: \"five\", comment: \"\"))\n    print(R.string.five.five2())\n    print(R.string.five.five2(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"five4\", tableName: \"five\", comment: \"\"))\n    print(R.string.five.five4())\n    print(R.string.five.five4(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"six1\", tableName: \"six\", comment: \"\"))\n    print(R.string.six.six1())\n    print(R.string.six.six1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"six2\", tableName: \"six\", comment: \"\"))\n    print(R.string.six.six2())\n    print(R.string.six.six2(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"seven1\", tableName: \"seven\", comment: \"\"))\n    print(R.string.seven.seven1())\n    print(R.string.seven.seven1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"seven2\", tableName: \"seven\", comment: \"\"))\n    print(R.string.seven.seven2())\n    print(R.string.seven.seven2(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"seven3\", tableName: \"seven\", comment: \"\"))\n    print(R.string.seven.seven3())\n    print(R.string.seven.seven3(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"seven4\", tableName: \"seven\", comment: \"\"))\n    print(R.string.seven.seven4())\n    print(R.string.seven.seven4(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"eight1\", tableName: \"eight\", comment: \"\"))\n    print(R.string.eight.eight1())\n    print(R.string.eight.eight1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"eight2\", tableName: \"eight\", comment: \"\"))\n    print(R.string.eight.eight2())\n    print(R.string.eight.eight2(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"eight3\", tableName: \"eight\", comment: \"\"))\n    print(R.string.eight.eight3())\n    print(R.string.eight.eight3(preferredLanguages: myprefs))\n    print()\n\n    print(NSLocalizedString(\"nine1\", tableName: \"nine\", comment: \"\"))\n    print(R.string.nine.nine1())\n    print(R.string.nine.nine1(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"nine2\", tableName: \"nine\", comment: \"\"))\n    print(R.string.nine.nine2())\n    print(R.string.nine.nine2(preferredLanguages: myprefs))\n    print()\n    print(NSLocalizedString(\"nine\", tableName: \"nine\", comment: \"\"))\n    print(R.string.nine.nine3())\n    print(R.string.nine.nine3(preferredLanguages: myprefs))\n    print()\n*/\n\n\n    return true\n  }\n\n\n}\n\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/Base.lproj/eight.strings",
    "content": "/* \n  eight.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-26.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"eight1\" = \"eight 1, localized base\";\n\"eight2\" = \"eight 2, localized base\";\n\"eight3\" = \"eight 3, localized base\";\n\n\"eightArg1\" = \"eight 1 %@, localized base\";\n\"eightArg2\" = \"eight 2 %@, localized base\";\n\"eightArg3\" = \"eight 3 %@, localized base\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/Base.lproj/nine.strings",
    "content": "/* \n  nine.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-31.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"nine1\" = \"nine 1, localized base\";\n\"nine2\" = \"nine 2, localized base\";\n\"nine3\" = \"nine 3, localized base\";\n\n\"nineArg1\" = \"nine 1 %@, localized base\";\n\"nineArg2\" = \"nine 2 %@, localized base\";\n\"nineArg3\" = \"nine 3 %@, localized base\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSApplicationCategoryType</key>\n\t<string></string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/ca.lproj/four.strings",
    "content": "/* \n  four.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"four1\" = \"four 1, localized catalan\";\n\"fourArg\" = \"four %@, localized catalan\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en-GB.lproj/five.strings",
    "content": "/* \n  five.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"five1\" = \"five 1, localized english gb\";\n\n\n\n\"fiveArg1\" = \"five 1 %@, localized english gb\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en.lproj/MyStoryboard.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14865.1\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"cI2-jD-mV4\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14819.2\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"DOG-Xu-M6F\">\n            <objects>\n                <viewController storyboardIdentifier=\"First\" useStoryboardIdentifierAsRestorationIdentifier=\"YES\" id=\"cI2-jD-mV4\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"6oG-iq-Lyu\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" systemColor=\"systemBackgroundColor\" cocoaTouchSystemColor=\"whiteColor\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"Tdr-ao-2GW\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dXj-TI-GFt\" userLabel=\"First Responder\" customClass=\"UIResponder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"342\" y=\"56\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en.lproj/five.strings",
    "content": "/* \n  five.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"five1\" = \"five 1, localized english\";\n\"five2\" = \"five 2, localized english\";\n\"five3\" = \"five 3, localized english\";\n\n\"fiveArg1\" = \"five 1 %@, localized english\";\n\"fiveArg2\" = \"five 2 %@, localized english\";\n\"fiveArg3\" = \"five 3 %@, localized english\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en.lproj/nine.strings",
    "content": "/* \n  nine.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-31.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"nine1\" = \"nine 1, localized english\";\n\"nine2\" = \"nine 2, localized english\";\n\n\n\"nineArg1\" = \"nine 1 %@, localized english\";\n\"nineArg2\" = \"nine 2 %@, localized english\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en.lproj/seven.strings",
    "content": "/* \n  seven.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-22.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"seven1\" = \"seven 1, localized english\";\n\"seven2\" = \"seven 2, localized english\";\n\n\n\"sevenArg1\" = \"seven 1 %@, localized english\";\n\"sevenArg2\" = \"seven 2 %@, localized english\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en.lproj/three.strings",
    "content": "/* \n  three.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"three1\" = \"three 1, localized english\";\n\"three2\" = \"three 2, localized english\";\n\n\"threeArg1\" = \"three 1 %@, localized english\";\n\"threeArg2\" = \"three 2 %@, localized english\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/en.lproj/two.strings",
    "content": "/* \n  two.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"two1\" = \"two 1, localized english\";\n\"two2\" = \"two 2, %@ localized english\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr-CA.lproj/five.strings",
    "content": "/* \n  five.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"five1\" = \"five 1, localized french canada\";\n\n\n\n\"fiveArg1\" = \"five 1 %@, localized french canada\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr-CA.lproj/six.strings",
    "content": "/* \n  six.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"six1\" = \"six 1, localized french canada\";\n\n\"sixArg1\" = \"six 1 %@, localized french canada\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr.lproj/eight.strings",
    "content": "/* \n  eight.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-26.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"eight1\" = \"eight 1, localized french\";\n\"eight2\" = \"eight 2, localized french\";\n\n\n\"eightArg1\" = \"eight 1 %@, localized french\";\n\"eightArg2\" = \"eight 2 %@, localized french\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr.lproj/five.strings",
    "content": "/* \n  five.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"five1\" = \"five 1, localized french\";\n\"five2\" = \"five 2, localized french\";\n\n\"five4\" = \"five 4, localized french\";\n\"fiveArg1\" = \"five 1 %@, localized french\";\n\"fiveArg2\" = \"five 2 %@, localized french\";\n\n\"fiveArg4\" = \"five 4 %@, localized french\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr.lproj/nine.strings",
    "content": "/* \n  nine.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-31.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"nine1\" = \"nine 1, localized french\";\n\"nine2\" = \"nine 2, localized french\";\n\n\n\"nineArg1\" = \"nine 1 %@, localized french\";\n\"nineArg2\" = \"nine 2 %@, localized french\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr.lproj/seven.strings",
    "content": "/* \n  seven.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-22.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"seven1\" = \"seven 1, localized french\";\n\"seven2\" = \"seven 2, localized french\";\n\"seven3\" = \"seven 3, localized french\";\n\"seven4\" = \"seven 4, localized french\";\n\"sevenArg1\" = \"seven 1 %@, localized french\";\n\"sevenArg2\" = \"seven 2 %@, localized french\";\n\"sevenArg3\" = \"seven 3 %@, localized french\";\n\"sevenArg4\" = \"seven 4 %@, localized french\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr.lproj/six.strings",
    "content": "/* \n  six.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"six1\" = \"six 1, localized french\";\n\"six2\" = \"six 2, localized french\";\n\"sixArg1\" = \"six 1 %@, localized french\";\n\"sixArg2\" = \"six 2 %@, localized french\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/fr.lproj/ten.stringsdict",
    "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>ten1</key>\n\t<dict>\n\t\t<key>NSStringLocalizedFormatKey</key>\n\t\t<string>ten 1 - %#@things@, localized french</string>\n    <key>things</key>\n    <dict>\n      <key>NSStringFormatSpecTypeKey</key>\n      <string>NSStringPluralRuleType</string>\n      <key>NSStringFormatValueTypeKey</key>\n      <string>d</string>\n      <key>one</key>\n      <string>%d thing</string>\n      <key>other</key>\n      <string>%d things</string>\n    </dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/nl.lproj/eight.strings",
    "content": "/* \n  eight.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-26.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"eight1\" = \"eight 1, localized dutch\";\n\n\n\"eight4\" = \"eight 4, localized dutch\";\n\"eightArg1\" = \"eight 1 %@, localized dutch\";\n\n\n\"eightArg4\" = \"eight 4 %@, localized dutch\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/nl.lproj/four.strings",
    "content": "/* \n  four.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"four1\" = \"four 1, localized dutch\";\n\"fourArg\" = \"four %@, localized dutch\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/nl.lproj/nine.strings",
    "content": "/* \n  nine.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-31.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"nine1\" = \"nine 1, localized dutch\";\n\n\n\"nine4\" = \"nine 4, localized dutch\";\n\"nineArg1\" = \"nine 1 %@, localized dutch\";\n\n\n\"nineArg4\" = \"nine 4 %@, localized dutch\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/nl.lproj/seven.strings",
    "content": "/* \n  seven.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-22.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"seven1\" = \"seven 1, localized dutch\";\n\n\n\"seven4\" = \"seven 4, localized dutch\";\n\"sevenArg1\" = \"seven 1 %@, localized dutch\";\n\n\n\"sevenArg4\" = \"seven 4 %@, localized dutch\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/nl.lproj/ten.stringsdict",
    "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  <key>ten1</key>\n  <dict>\n    <key>NSStringLocalizedFormatKey</key>\n    <string>ten 1 - %#@things@, localized dutch</string>\n    <key>things</key>\n    <dict>\n      <key>NSStringFormatSpecTypeKey</key>\n      <string>NSStringPluralRuleType</string>\n      <key>NSStringFormatValueTypeKey</key>\n      <string>d</string>\n      <key>one</key>\n      <string>%d thing</string>\n      <key>other</key>\n      <string>%d things</string>\n    </dict>\n  </dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/nl.lproj/three.strings",
    "content": "/* \n  three.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"three1\" = \"three 1, localized dutch\";\n\n\"three3\" = \"three 3, localized dutch\";\n\"threeArg1\" = \"three 1 %@, localized dutch\";\n\n\"threeArg3\" = \"three 3 %@, localized dutch\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp/one.strings",
    "content": "/* \n  one.strings\n  LocalizedStringApp\n\n  Created by Tom Lokhorst on 2019-08-21.\n  Copyright © 2019 R.swift. All rights reserved.\n*/\n\n\"one1\" = \"one 1, not localized\";\n\"one2\" = \"one 2, not localized\";\n\"oneArg\" = \"one %@, not localized\";\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 52;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tE258099B29325C1F008EA19C /* ten.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = E258099929325C1F008EA19C /* ten.stringsdict */; };\n\t\tE264FBA12319055A008E0DB5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E264FBA02319055A008E0DB5 /* AppDelegate.swift */; };\n\t\tE264FBB82319055D008E0DB5 /* LocalizedStringAppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E264FBB72319055D008E0DB5 /* LocalizedStringAppTests.swift */; };\n\t\tE264FBCF2319082F008E0DB5 /* one.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBCE2319082E008E0DB5 /* one.strings */; };\n\t\tE264FBD22319083B008E0DB5 /* two.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBD02319083B008E0DB5 /* two.strings */; };\n\t\tE264FBD523190962008E0DB5 /* three.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBD323190962008E0DB5 /* three.strings */; };\n\t\tE264FBD923190992008E0DB5 /* four.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBD723190992008E0DB5 /* four.strings */; };\n\t\tE264FBDD231909F6008E0DB5 /* five.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBDB231909F6008E0DB5 /* five.strings */; };\n\t\tE264FBE223190A19008E0DB5 /* six.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBE023190A19008E0DB5 /* six.strings */; };\n\t\tE264FBE623190A2F008E0DB5 /* seven.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBE423190A2F008E0DB5 /* seven.strings */; };\n\t\tE264FBEB23190A49008E0DB5 /* eight.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBE923190A49008E0DB5 /* eight.strings */; };\n\t\tE264FBF4231A7335008E0DB5 /* nine.strings in Resources */ = {isa = PBXBuildFile; fileRef = E264FBF6231A7335008E0DB5 /* nine.strings */; };\n\t\tE2E58371291D3AC2006E17D9 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E2E58370291D3AC2006E17D9 /* RswiftLibrary */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tE264FBB42319055D008E0DB5 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = E264FB952319055A008E0DB5 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = E264FB9C2319055A008E0DB5;\n\t\t\tremoteInfo = LocalizedStringApp;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\tE258099A29325C1F008EA19C /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fr; path = fr.lproj/ten.stringsdict; sourceTree = \"<group>\"; };\n\t\tE258099C29325C29008EA19C /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/ten.stringsdict; sourceTree = \"<group>\"; };\n\t\tE264FB9D2319055A008E0DB5 /* LocalizedStringApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LocalizedStringApp.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE264FBA02319055A008E0DB5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tE264FBAE2319055D008E0DB5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE264FBB32319055D008E0DB5 /* LocalizedStringAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LocalizedStringAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE264FBB72319055D008E0DB5 /* LocalizedStringAppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizedStringAppTests.swift; sourceTree = \"<group>\"; };\n\t\tE264FBB92319055D008E0DB5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE264FBCE2319082E008E0DB5 /* one.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = one.strings; sourceTree = \"<group>\"; };\n\t\tE264FBD12319083B008E0DB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/two.strings; sourceTree = \"<group>\"; };\n\t\tE264FBD423190962008E0DB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/three.strings; sourceTree = \"<group>\"; };\n\t\tE264FBD62319096F008E0DB5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/three.strings; sourceTree = \"<group>\"; };\n\t\tE264FBD823190992008E0DB5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/four.strings; sourceTree = \"<group>\"; };\n\t\tE264FBDA231909D3008E0DB5 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/four.strings; sourceTree = \"<group>\"; };\n\t\tE264FBDC231909F6008E0DB5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/five.strings; sourceTree = \"<group>\"; };\n\t\tE264FBDE231909FD008E0DB5 /* fr-CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"fr-CA\"; path = \"fr-CA.lproj/five.strings\"; sourceTree = \"<group>\"; };\n\t\tE264FBDF231909FF008E0DB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/five.strings; sourceTree = \"<group>\"; };\n\t\tE264FBE123190A19008E0DB5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/six.strings; sourceTree = \"<group>\"; };\n\t\tE264FBE323190A1F008E0DB5 /* fr-CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"fr-CA\"; path = \"fr-CA.lproj/six.strings\"; sourceTree = \"<group>\"; };\n\t\tE264FBE523190A2F008E0DB5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/seven.strings; sourceTree = \"<group>\"; };\n\t\tE264FBE723190A38008E0DB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/seven.strings; sourceTree = \"<group>\"; };\n\t\tE264FBE823190A3C008E0DB5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/seven.strings; sourceTree = \"<group>\"; };\n\t\tE264FBEA23190A49008E0DB5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/eight.strings; sourceTree = \"<group>\"; };\n\t\tE264FBEC23190A5A008E0DB5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/eight.strings; sourceTree = \"<group>\"; };\n\t\tE264FBED23190A65008E0DB5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/eight.strings; sourceTree = \"<group>\"; };\n\t\tE264FBF1231A6984008E0DB5 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = \"en-GB\"; path = \"en-GB.lproj/five.strings\"; sourceTree = \"<group>\"; };\n\t\tE264FBF5231A7335008E0DB5 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/nine.strings; sourceTree = \"<group>\"; };\n\t\tE264FBF7231A7371008E0DB5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/nine.strings; sourceTree = \"<group>\"; };\n\t\tE264FBF8231A7392008E0DB5 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/nine.strings; sourceTree = \"<group>\"; };\n\t\tE264FBF9231A73BA008E0DB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/nine.strings; sourceTree = \"<group>\"; };\n\t\tE2E5836E291D3AB5006E17D9 /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tE264FB9A2319055A008E0DB5 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2E58371291D3AC2006E17D9 /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE264FBB02319055D008E0DB5 /* 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/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tE264FB942319055A008E0DB5 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2E5836D291D3AB5006E17D9 /* Packages */,\n\t\t\t\tE264FB9F2319055A008E0DB5 /* LocalizedStringApp */,\n\t\t\t\tE264FBB62319055D008E0DB5 /* LocalizedStringAppTests */,\n\t\t\t\tE264FB9E2319055A008E0DB5 /* Products */,\n\t\t\t\tE2E5836F291D3AC2006E17D9 /* Frameworks */,\n\t\t\t);\n\t\t\tindentWidth = 2;\n\t\t\tsourceTree = \"<group>\";\n\t\t\ttabWidth = 2;\n\t\t};\n\t\tE264FB9E2319055A008E0DB5 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FB9D2319055A008E0DB5 /* LocalizedStringApp.app */,\n\t\t\t\tE264FBB32319055D008E0DB5 /* LocalizedStringAppTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FB9F2319055A008E0DB5 /* LocalizedStringApp */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBA02319055A008E0DB5 /* AppDelegate.swift */,\n\t\t\t\tE264FBAE2319055D008E0DB5 /* Info.plist */,\n\t\t\t\tE264FBCE2319082E008E0DB5 /* one.strings */,\n\t\t\t\tE264FBD02319083B008E0DB5 /* two.strings */,\n\t\t\t\tE264FBD323190962008E0DB5 /* three.strings */,\n\t\t\t\tE264FBD723190992008E0DB5 /* four.strings */,\n\t\t\t\tE264FBDB231909F6008E0DB5 /* five.strings */,\n\t\t\t\tE264FBE023190A19008E0DB5 /* six.strings */,\n\t\t\t\tE264FBE423190A2F008E0DB5 /* seven.strings */,\n\t\t\t\tE264FBE923190A49008E0DB5 /* eight.strings */,\n\t\t\t\tE264FBF6231A7335008E0DB5 /* nine.strings */,\n\t\t\t\tE258099929325C1F008EA19C /* ten.stringsdict */,\n\t\t\t);\n\t\t\tpath = LocalizedStringApp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBB62319055D008E0DB5 /* LocalizedStringAppTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBB72319055D008E0DB5 /* LocalizedStringAppTests.swift */,\n\t\t\t\tE264FBB92319055D008E0DB5 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = LocalizedStringAppTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2E5836D291D3AB5006E17D9 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2E5836E291D3AB5006E17D9 /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2E5836F291D3AC2006E17D9 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tE264FB9C2319055A008E0DB5 /* LocalizedStringApp */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E264FBBC2319055D008E0DB5 /* Build configuration list for PBXNativeTarget \"LocalizedStringApp\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE264FB992319055A008E0DB5 /* Sources */,\n\t\t\t\tE264FB9A2319055A008E0DB5 /* Frameworks */,\n\t\t\t\tE264FB9B2319055A008E0DB5 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE2E58373291D3AD4006E17D9 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = LocalizedStringApp;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE2E58370291D3AC2006E17D9 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = LocalizedStringApp;\n\t\t\tproductReference = E264FB9D2319055A008E0DB5 /* LocalizedStringApp.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tE264FBB22319055D008E0DB5 /* LocalizedStringAppTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E264FBBF2319055D008E0DB5 /* Build configuration list for PBXNativeTarget \"LocalizedStringAppTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE264FBAF2319055D008E0DB5 /* Sources */,\n\t\t\t\tE264FBB02319055D008E0DB5 /* Frameworks */,\n\t\t\t\tE264FBB12319055D008E0DB5 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE264FBB52319055D008E0DB5 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = LocalizedStringAppTests;\n\t\t\tproductName = LocalizedStringAppTests;\n\t\t\tproductReference = E264FBB32319055D008E0DB5 /* LocalizedStringAppTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tE264FB952319055A008E0DB5 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1100;\n\t\t\t\tLastUpgradeCheck = 1410;\n\t\t\t\tORGANIZATIONNAME = R.swift;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tE264FB9C2319055A008E0DB5 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 11.0;\n\t\t\t\t\t};\n\t\t\t\t\tE264FBB22319055D008E0DB5 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 11.0;\n\t\t\t\t\t\tTestTargetID = E264FB9C2319055A008E0DB5;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = E264FB982319055A008E0DB5 /* Build configuration list for PBXProject \"LocalizedStringApp\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = fr;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\tca,\n\t\t\t\ten,\n\t\t\t\tnl,\n\t\t\t\tfr,\n\t\t\t\t\"fr-CA\",\n\t\t\t\tBase,\n\t\t\t\t\"en-GB\",\n\t\t\t);\n\t\t\tmainGroup = E264FB942319055A008E0DB5;\n\t\t\tproductRefGroup = E264FB9E2319055A008E0DB5 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tE264FB9C2319055A008E0DB5 /* LocalizedStringApp */,\n\t\t\t\tE264FBB22319055D008E0DB5 /* LocalizedStringAppTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tE264FB9B2319055A008E0DB5 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE264FBD923190992008E0DB5 /* four.strings in Resources */,\n\t\t\t\tE264FBE223190A19008E0DB5 /* six.strings in Resources */,\n\t\t\t\tE264FBF4231A7335008E0DB5 /* nine.strings in Resources */,\n\t\t\t\tE264FBCF2319082F008E0DB5 /* one.strings in Resources */,\n\t\t\t\tE258099B29325C1F008EA19C /* ten.stringsdict in Resources */,\n\t\t\t\tE264FBD22319083B008E0DB5 /* two.strings in Resources */,\n\t\t\t\tE264FBDD231909F6008E0DB5 /* five.strings in Resources */,\n\t\t\t\tE264FBE623190A2F008E0DB5 /* seven.strings in Resources */,\n\t\t\t\tE264FBEB23190A49008E0DB5 /* eight.strings in Resources */,\n\t\t\t\tE264FBD523190962008E0DB5 /* three.strings in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE264FBB12319055D008E0DB5 /* 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/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tE264FB992319055A008E0DB5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE264FBA12319055A008E0DB5 /* AppDelegate.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE264FBAF2319055D008E0DB5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE264FBB82319055D008E0DB5 /* LocalizedStringAppTests.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\tE264FBB52319055D008E0DB5 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = E264FB9C2319055A008E0DB5 /* LocalizedStringApp */;\n\t\t\ttargetProxy = E264FBB42319055D008E0DB5 /* PBXContainerItemProxy */;\n\t\t};\n\t\tE2E58373291D3AD4006E17D9 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E2E58372291D3AD4006E17D9 /* RswiftGenerateInternalResources */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\tE258099929325C1F008EA19C /* ten.stringsdict */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE258099A29325C1F008EA19C /* fr */,\n\t\t\t\tE258099C29325C29008EA19C /* nl */,\n\t\t\t);\n\t\t\tname = ten.stringsdict;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBD02319083B008E0DB5 /* two.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBD12319083B008E0DB5 /* en */,\n\t\t\t);\n\t\t\tname = two.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBD323190962008E0DB5 /* three.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBD423190962008E0DB5 /* en */,\n\t\t\t\tE264FBD62319096F008E0DB5 /* nl */,\n\t\t\t);\n\t\t\tname = three.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBD723190992008E0DB5 /* four.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBD823190992008E0DB5 /* nl */,\n\t\t\t\tE264FBDA231909D3008E0DB5 /* ca */,\n\t\t\t);\n\t\t\tname = four.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBDB231909F6008E0DB5 /* five.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBDC231909F6008E0DB5 /* fr */,\n\t\t\t\tE264FBDE231909FD008E0DB5 /* fr-CA */,\n\t\t\t\tE264FBDF231909FF008E0DB5 /* en */,\n\t\t\t\tE264FBF1231A6984008E0DB5 /* en-GB */,\n\t\t\t);\n\t\t\tname = five.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBE023190A19008E0DB5 /* six.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBE123190A19008E0DB5 /* fr */,\n\t\t\t\tE264FBE323190A1F008E0DB5 /* fr-CA */,\n\t\t\t);\n\t\t\tname = six.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBE423190A2F008E0DB5 /* seven.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBE523190A2F008E0DB5 /* nl */,\n\t\t\t\tE264FBE723190A38008E0DB5 /* en */,\n\t\t\t\tE264FBE823190A3C008E0DB5 /* fr */,\n\t\t\t);\n\t\t\tname = seven.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBE923190A49008E0DB5 /* eight.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBEA23190A49008E0DB5 /* fr */,\n\t\t\t\tE264FBEC23190A5A008E0DB5 /* Base */,\n\t\t\t\tE264FBED23190A65008E0DB5 /* nl */,\n\t\t\t);\n\t\t\tname = eight.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE264FBF6231A7335008E0DB5 /* nine.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE264FBF5231A7335008E0DB5 /* fr */,\n\t\t\t\tE264FBF7231A7371008E0DB5 /* Base */,\n\t\t\t\tE264FBF8231A7392008E0DB5 /* nl */,\n\t\t\t\tE264FBF9231A73BA008E0DB5 /* en */,\n\t\t\t);\n\t\t\tname = nine.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tE264FBBA2319055D008E0DB5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE264FBBB2319055D008E0DB5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE264FBBD2319055D008E0DB5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = LC3Y92HQQ3;\n\t\t\t\tINFOPLIST_FILE = LocalizedStringApp/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.LocalizedStringApp;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE264FBBE2319055D008E0DB5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = LC3Y92HQQ3;\n\t\t\t\tINFOPLIST_FILE = LocalizedStringApp/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.LocalizedStringApp;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE264FBC02319055D008E0DB5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = LocalizedStringAppTests/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\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.LocalizedStringAppTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/LocalizedStringApp.app/LocalizedStringApp\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE264FBC12319055D008E0DB5 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = LocalizedStringAppTests/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\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.LocalizedStringAppTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/LocalizedStringApp.app/LocalizedStringApp\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tE264FB982319055A008E0DB5 /* Build configuration list for PBXProject \"LocalizedStringApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE264FBBA2319055D008E0DB5 /* Debug */,\n\t\t\t\tE264FBBB2319055D008E0DB5 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE264FBBC2319055D008E0DB5 /* Build configuration list for PBXNativeTarget \"LocalizedStringApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE264FBBD2319055D008E0DB5 /* Debug */,\n\t\t\t\tE264FBBE2319055D008E0DB5 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE264FBBF2319055D008E0DB5 /* Build configuration list for PBXNativeTarget \"LocalizedStringAppTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE264FBC02319055D008E0DB5 /* Debug */,\n\t\t\t\tE264FBC12319055D008E0DB5 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\tE2E58370291D3AC2006E17D9 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE2E58372291D3AD4006E17D9 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = E264FB952319055A008E0DB5 /* Project object */;\n}\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"cd466d6e8c5ffd2f2b61165d37b0646f09068e1e\",\n        \"version\" : \"2.9.0\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp Dutch.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"nl\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"nl\"\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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp English (GB).xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"en\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"en-GB\"\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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp English.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"en\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"en\"\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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp French (Canada).xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"fr-CA\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"fr-CA\"\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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp French.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"fr\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"fr\"\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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp Turkish.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"tr\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      language = \"tr\"\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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringApp.xcodeproj/xcshareddata/xcschemes/LocalizedStringApp.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E264FB9C2319055A008E0DB5\"\n               BuildableName = \"LocalizedStringApp.app\"\n               BlueprintName = \"LocalizedStringApp\"\n               ReferencedContainer = \"container:LocalizedStringApp.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      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E264FBB22319055D008E0DB5\"\n               BuildableName = \"LocalizedStringAppTests.xctest\"\n               BlueprintName = \"LocalizedStringAppTests\"\n               ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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 = \"E264FB9C2319055A008E0DB5\"\n            BuildableName = \"LocalizedStringApp.app\"\n            BlueprintName = \"LocalizedStringApp\"\n            ReferencedContainer = \"container:LocalizedStringApp.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": "Examples/LocalizedStringApp/LocalizedStringAppTests/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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</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": "Examples/LocalizedStringApp/LocalizedStringAppTests/LocalizedStringAppTests.swift",
    "content": "//\n//  LocalizedStringAppTests.swift\n//  LocalizedStringAppTests\n//\n//  Created by Tom Lokhorst on 2019-08-30.\n//  Copyright © 2019 R.swift. All rights reserved.\n//\n\nimport XCTest\n@testable import LocalizedStringApp\n\nclass LocalizedStringAppTests: XCTestCase {\n\n  func testDefault() {\n\n    /* one */\n    XCTAssertEqual(\n      R.string.one.one1(),\n      NSLocalizedString(\"one1\", tableName: \"one\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.one.one2(),\n      NSLocalizedString(\"one2\", tableName: \"one\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.one.oneArg(\"ARG\"),\n      String(format: NSLocalizedString(\"oneArg\", tableName: \"one\", comment: \"\"), \"ARG\")\n    )\n\n    /* two */\n    XCTAssertEqual(\n      R.string.two.two1(),\n      NSLocalizedString(\"two1\", tableName: \"two\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.two.two2(\"Hello\"),\n      String(format: NSLocalizedString(\"two2\", tableName: \"two\", comment: \"\"), locale: Locale.current, \"Hello\")\n    )\n\n    /* three */\n    XCTAssertEqual(\n      R.string.three.three1(),\n      NSLocalizedString(\"three1\", tableName: \"three\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.three.three2(),\n      NSLocalizedString(\"three2\", tableName: \"three\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.three.three3(),\n      NSLocalizedString(\"three3\", tableName: \"three\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.three.threeArg1(\"ARG\"),\n      String(format: NSLocalizedString(\"threeArg1\", tableName: \"three\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.three.threeArg2(\"ARG\"),\n      String(format: NSLocalizedString(\"threeArg2\", tableName: \"three\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.three.threeArg3(\"ARG\"),\n      String(format: NSLocalizedString(\"threeArg3\", tableName: \"three\", comment: \"\"), \"ARG\")\n    )\n\n    /* four */\n    XCTAssertEqual(\n      R.string.four.four1(),\n      NSLocalizedString(\"four1\", tableName: \"four\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.four.fourArg(\"ARG\"),\n      String(format: NSLocalizedString(\"fourArg\", tableName: \"four\", comment: \"\"), \"ARG\")\n    )\n\n    /* five */\n    XCTAssertEqual(\n      R.string.five.five1(),\n      NSLocalizedString(\"five1\", tableName: \"five\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.five.five2(),\n      NSLocalizedString(\"five2\", tableName: \"five\", value: \"five 2, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.five.five4(),\n      NSLocalizedString(\"five4\", tableName: \"five\", value: \"five 4, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.five.fiveArg1(\"ARG\"),\n      String(format: NSLocalizedString(\"fiveArg1\", tableName: \"five\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.five.fiveArg2(\"ARG\"),\n      String(format: NSLocalizedString(\"fiveArg2\", tableName: \"five\", value: \"five 2 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.five.fiveArg4(\"ARG\"),\n      String(format: NSLocalizedString(\"fiveArg4\", tableName: \"five\", value: \"five 4 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n\n    /* six */\n    XCTAssertEqual(\n      R.string.six.six1(),\n      NSLocalizedString(\"six1\", tableName: \"six\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.six.six2(),\n      NSLocalizedString(\"six2\", tableName: \"six\", value: \"six 2, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.six.sixArg1(\"ARG\"),\n      String(format: NSLocalizedString(\"sixArg1\", tableName: \"six\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.six.sixArg2(\"ARG\"),\n      String(format: NSLocalizedString(\"sixArg2\", tableName: \"six\", value: \"six 2 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n\n    /* seven */\n    XCTAssertEqual(\n      R.string.seven.seven1(),\n      NSLocalizedString(\"seven1\", tableName: \"seven\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.seven.seven2(),\n      NSLocalizedString(\"seven2\", tableName: \"seven\", value: \"seven 2, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.seven.seven3(),\n      NSLocalizedString(\"seven3\", tableName: \"seven\", value: \"seven 3, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.seven.seven4(),\n      NSLocalizedString(\"seven4\", tableName: \"seven\", value: \"seven 4, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.seven.sevenArg1(\"ARG\"),\n      String(format: NSLocalizedString(\"sevenArg1\", tableName: \"seven\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.seven.sevenArg2(\"ARG\"),\n      String(format: NSLocalizedString(\"sevenArg2\", tableName: \"seven\", value: \"seven 2 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.seven.sevenArg3(\"ARG\"),\n      String(format: NSLocalizedString(\"sevenArg3\", tableName: \"seven\", value: \"seven 3 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.seven.sevenArg4(\"ARG\"),\n      String(format: NSLocalizedString(\"sevenArg4\", tableName: \"seven\", value: \"seven 4 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n\n    /* eight */\n    XCTAssertEqual(\n      R.string.eight.eight1(),\n      NSLocalizedString(\"eight1\", tableName: \"eight\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.eight.eight2(),\n      NSLocalizedString(\"eight2\", tableName: \"eight\", value: \"eight 2, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.eight.eight3(),\n      NSLocalizedString(\"eight3\", tableName: \"eight\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.eight.eightArg1(\"ARG\"),\n      String(format: NSLocalizedString(\"eightArg1\", tableName: \"eight\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.eight.eightArg2(\"ARG\"),\n      String(format: NSLocalizedString(\"eightArg2\", tableName: \"eight\", value: \"eight 2 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.eight.eightArg3(\"ARG\"),\n      String(format: NSLocalizedString(\"eightArg3\", tableName: \"eight\", comment: \"\"), \"ARG\")\n    )\n\n    /* nine */\n    XCTAssertEqual(\n      R.string.nine.nine1(),\n      NSLocalizedString(\"nine1\", tableName: \"nine\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.nine.nine2(),\n      NSLocalizedString(\"nine2\", tableName: \"nine\", value: \"nine 2, localized french\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.nine.nine3(),\n      NSLocalizedString(\"nine3\", tableName: \"nine\", comment: \"\")\n    )\n    XCTAssertEqual(\n      R.string.nine.nineArg1(\"ARG\"),\n      String(format: NSLocalizedString(\"nineArg1\", tableName: \"nine\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.nine.nineArg2(\"ARG\"),\n      String(format: NSLocalizedString(\"nineArg2\", tableName: \"nine\", value: \"nine 2 %@, localized french\", comment: \"\"), \"ARG\")\n    )\n    XCTAssertEqual(\n      R.string.nine.nineArg3(\"ARG\"),\n      String(format: NSLocalizedString(\"nineArg3\", tableName: \"nine\", comment: \"\"), \"ARG\")\n    )\n\n    /* ten */\n    XCTAssertEqual(\n      R.string.ten.ten1(things: 1),\n      String(format: NSLocalizedString(\"ten1\", tableName: \"ten\", comment: \"\"), 1)\n    )\n  }\n\n\n  func testTurkish() {\n    let myprefs = [\"tr\"]\n\n    testPrefferedLanguages(myprefs: myprefs)\n    let strings = R.string(preferredLanguages: myprefs)\n\n    /* one */\n    XCTAssertEqual(strings.one.one1(),\n                   \"one 1, not localized\")\n    XCTAssertEqual(strings.one.one2(),\n                   \"one 2, not localized\")\n    XCTAssertEqual(strings.one.oneArg(\"ARG\"),\n                   \"one ARG, not localized\")\n\n    /* two */\n    XCTAssertEqual(strings.two.two1(),\n                   \"two1\")\n    XCTAssertEqual(strings.two.two2(\"Hello\"),\n                   \"two2\")\n\n    /* three */\n    XCTAssertEqual(strings.three.three1(),\n                   \"three1\")\n    XCTAssertEqual(strings.three.three2(),\n                   \"three2\")\n    XCTAssertEqual(strings.three.three3(),\n                   \"three3\")\n    XCTAssertEqual(strings.three.threeArg1(\"ARG\"),\n                   \"threeArg1\")\n    XCTAssertEqual(strings.three.threeArg2(\"ARG\"),\n                   \"threeArg2\")\n    XCTAssertEqual(strings.three.threeArg3(\"ARG\"),\n                   \"threeArg3\")\n\n    /* four */\n    XCTAssertEqual(strings.four.four1(),\n                   \"four1\")\n    XCTAssertEqual(strings.four.fourArg(\"ARG\"),\n                   \"fourArg\")\n\n    /* five */\n    XCTAssertEqual(strings.five.five1(),\n                   \"five 1, localized french\")\n    XCTAssertEqual(strings.five.five2(),\n                   \"five 2, localized french\")\n    XCTAssertEqual(strings.five.five4(),\n                   \"five 4, localized french\")\n    XCTAssertEqual(strings.five.fiveArg1(\"ARG\"),\n                   \"five 1 ARG, localized french\")\n    XCTAssertEqual(strings.five.fiveArg2(\"ARG\"),\n                   \"five 2 ARG, localized french\")\n    XCTAssertEqual(strings.five.fiveArg4(\"ARG\"),\n                   \"five 4 ARG, localized french\")\n\n    /* six */\n    XCTAssertEqual(strings.six.six1(),\n                   \"six 1, localized french\")\n    XCTAssertEqual(strings.six.six2(),\n                   \"six 2, localized french\")\n    XCTAssertEqual(strings.six.sixArg1(\"ARG\"),\n                   \"six 1 ARG, localized french\")\n    XCTAssertEqual(strings.six.sixArg2(\"ARG\"),\n                   \"six 2 ARG, localized french\")\n\n    /* seven */\n    XCTAssertEqual(strings.seven.seven1(),\n                   \"seven 1, localized french\")\n    XCTAssertEqual(strings.seven.seven2(),\n                   \"seven 2, localized french\")\n    XCTAssertEqual(strings.seven.seven3(),\n                   \"seven 3, localized french\")\n    XCTAssertEqual(strings.seven.seven4(),\n                   \"seven 4, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg1(\"ARG\"),\n                   \"seven 1 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg2(\"ARG\"),\n                   \"seven 2 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg3(\"ARG\"),\n                   \"seven 3 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg4(\"ARG\"),\n                   \"seven 4 ARG, localized french\")\n\n    /* eight */\n    XCTAssertEqual(strings.eight.eight1(),\n                   \"eight 1, localized french\")\n    XCTAssertEqual(strings.eight.eight2(),\n                   \"eight 2, localized french\")\n    XCTAssertEqual(strings.eight.eight3(),\n                   \"eight3\")\n    XCTAssertEqual(strings.eight.eightArg1(\"ARG\"),\n                   \"eight 1 ARG, localized french\")\n    XCTAssertEqual(strings.eight.eightArg2(\"ARG\"),\n                   \"eight 2 ARG, localized french\")\n    XCTAssertEqual(strings.eight.eightArg3(\"ARG\"),\n                   \"eightArg3\")\n\n    /* nine */\n    XCTAssertEqual(strings.nine.nine1(),\n                   \"nine 1, localized french\")\n    XCTAssertEqual(strings.nine.nine2(),\n                   \"nine 2, localized french\")\n    XCTAssertEqual(strings.nine.nine3(),\n                   \"nine3\")\n    XCTAssertEqual(strings.nine.nineArg1(\"ARG\"),\n                   \"nine 1 ARG, localized french\")\n    XCTAssertEqual(strings.nine.nineArg2(\"ARG\"),\n                   \"nine 2 ARG, localized french\")\n    XCTAssertEqual(strings.nine.nineArg3(\"ARG\"),\n                   \"nineArg3\")\n\n    /* ten */\n    XCTAssertEqual(strings.ten.ten1(things: 1),\n                   \"ten 1 - 1 thing, localized french\")\n  }\n\n  func testDutch() {\n    let myprefs = [\"nl\"]\n\n    testPrefferedLanguages(myprefs: myprefs)\n    let strings = R.string(preferredLanguages: myprefs)\n\n    /* one */\n    XCTAssertEqual(strings.one.one1(),\n                   \"one 1, not localized\")\n    XCTAssertEqual(strings.one.one2(),\n                   \"one 2, not localized\")\n    XCTAssertEqual(strings.one.oneArg(\"ARG\"),\n                   \"one ARG, not localized\")\n\n    /* two */\n    XCTAssertEqual(strings.two.two1(),\n                   \"two1\")\n    XCTAssertEqual(strings.two.two2(\"Hello\"),\n                   \"two2\")\n\n    /* three */\n    XCTAssertEqual(strings.three.three1(),\n                   \"three 1, localized dutch\")\n    XCTAssertEqual(strings.three.three2(),\n                   \"three2\")\n    XCTAssertEqual(strings.three.three3(),\n                   \"three 3, localized dutch\")\n    XCTAssertEqual(strings.three.threeArg1(\"ARG\"),\n                   \"three 1 ARG, localized dutch\")\n    XCTAssertEqual(strings.three.threeArg2(\"ARG\"),\n                   \"threeArg2\")\n    XCTAssertEqual(strings.three.threeArg3(\"ARG\"),\n                   \"three 3 ARG, localized dutch\")\n\n    /* four */\n    XCTAssertEqual(strings.four.four1(),\n                   \"four 1, localized dutch\")\n    XCTAssertEqual(strings.four.fourArg(\"ARG\"),\n                   \"four ARG, localized dutch\")\n\n    /* five */\n    XCTAssertEqual(strings.five.five1(),\n                   \"five 1, localized french\")\n    XCTAssertEqual(strings.five.five2(),\n                   \"five 2, localized french\")\n    XCTAssertEqual(strings.five.five4(),\n                   \"five 4, localized french\")\n    XCTAssertEqual(strings.five.fiveArg1(\"ARG\"),\n                   \"five 1 ARG, localized french\")\n    XCTAssertEqual(strings.five.fiveArg2(\"ARG\"),\n                   \"five 2 ARG, localized french\")\n    XCTAssertEqual(strings.five.fiveArg4(\"ARG\"),\n                   \"five 4 ARG, localized french\")\n\n    /* six */\n    XCTAssertEqual(strings.six.six1(),\n                   \"six 1, localized french\")\n    XCTAssertEqual(strings.six.six2(),\n                   \"six 2, localized french\")\n    XCTAssertEqual(strings.six.sixArg1(\"ARG\"),\n                   \"six 1 ARG, localized french\")\n    XCTAssertEqual(strings.six.sixArg2(\"ARG\"),\n                   \"six 2 ARG, localized french\")\n\n    /* seven */\n    XCTAssertEqual(strings.seven.seven1(),\n                   \"seven 1, localized dutch\")\n    XCTAssertEqual(strings.seven.seven2(),\n                   \"seven2\")\n    XCTAssertEqual(strings.seven.seven3(),\n                   \"seven3\")\n    XCTAssertEqual(strings.seven.seven4(),\n                   \"seven 4, localized dutch\")\n    XCTAssertEqual(strings.seven.sevenArg1(\"ARG\"),\n                   \"seven 1 ARG, localized dutch\")\n    XCTAssertEqual(strings.seven.sevenArg2(\"ARG\"),\n                   \"sevenArg2\")\n    XCTAssertEqual(strings.seven.sevenArg3(\"ARG\"),\n                   \"sevenArg3\")\n    XCTAssertEqual(strings.seven.sevenArg4(\"ARG\"),\n                   \"seven 4 ARG, localized dutch\")\n\n    /* eight */\n    XCTAssertEqual(strings.eight.eight1(),\n                   \"eight 1, localized dutch\")\n    XCTAssertEqual(strings.eight.eight2(),\n                   \"eight2\")\n    XCTAssertEqual(strings.eight.eight3(),\n                   \"eight3\")\n    XCTAssertEqual(strings.eight.eightArg1(\"ARG\"),\n                   \"eight 1 ARG, localized dutch\")\n    XCTAssertEqual(strings.eight.eightArg2(\"ARG\"),\n                   \"eightArg2\")\n    XCTAssertEqual(strings.eight.eightArg3(\"ARG\"),\n                   \"eightArg3\")\n\n    /* nine */\n    XCTAssertEqual(strings.nine.nine1(),\n                   \"nine 1, localized dutch\")\n    XCTAssertEqual(strings.nine.nine2(),\n                   \"nine2\")\n    XCTAssertEqual(strings.nine.nine3(),\n                   \"nine3\")\n    XCTAssertEqual(strings.nine.nineArg1(\"ARG\"),\n                   \"nine 1 ARG, localized dutch\")\n    XCTAssertEqual(strings.nine.nineArg2(\"ARG\"),\n                   \"nineArg2\")\n    XCTAssertEqual(strings.nine.nineArg3(\"ARG\"),\n                   \"nineArg3\")\n\n    /* ten */\n    XCTAssertEqual(strings.ten.ten1(things: 1),\n                   \"ten 1 - 1 thing, localized dutch\")\n  }\n\n  func testEnglish() {\n    let myprefs = [\"en\"]\n\n    testPrefferedLanguages(myprefs: myprefs)\n    let strings = R.string(preferredLanguages: myprefs)\n\n    /* one */\n    XCTAssertEqual(strings.one.one1(),\n                   \"one 1, not localized\")\n    XCTAssertEqual(strings.one.one2(),\n                   \"one 2, not localized\")\n    XCTAssertEqual(strings.one.oneArg(\"ARG\"),\n                   \"one ARG, not localized\")\n\n    /* two */\n    XCTAssertEqual(strings.two.two1(),\n                   \"two 1, localized english\")\n    XCTAssertEqual(strings.two.two2(\"Hello\"),\n                   \"two 2, Hello localized english\")\n\n    /* three */\n    XCTAssertEqual(strings.three.three1(),\n                   \"three 1, localized english\")\n    XCTAssertEqual(strings.three.three2(),\n                   \"three 2, localized english\")\n    XCTAssertEqual(strings.three.three3(),\n                   \"three3\")\n    XCTAssertEqual(strings.three.threeArg1(\"ARG\"),\n                   \"three 1 ARG, localized english\")\n    XCTAssertEqual(strings.three.threeArg2(\"ARG\"),\n                   \"three 2 ARG, localized english\")\n    XCTAssertEqual(strings.three.threeArg3(\"ARG\"),\n                   \"threeArg3\")\n\n    /* four */\n    XCTAssertEqual(strings.four.four1(),\n                   \"four1\")\n    XCTAssertEqual(strings.four.fourArg(\"ARG\"),\n                   \"fourArg\")\n\n    /* five */\n    XCTAssertEqual(strings.five.five1(),\n                   \"five 1, localized english\")\n    XCTAssertEqual(strings.five.five2(),\n                   \"five 2, localized english\")\n    XCTAssertEqual(strings.five.five4(),\n                   \"five4\")\n    XCTAssertEqual(strings.five.fiveArg1(\"ARG\"),\n                   \"five 1 ARG, localized english\")\n    XCTAssertEqual(strings.five.fiveArg2(\"ARG\"),\n                   \"five 2 ARG, localized english\")\n    XCTAssertEqual(strings.five.fiveArg4(\"ARG\"),\n                   \"fiveArg4\")\n\n    /* six */\n    XCTAssertEqual(strings.six.six1(),\n                   \"six 1, localized french\")\n    XCTAssertEqual(strings.six.six2(),\n                   \"six 2, localized french\")\n    XCTAssertEqual(strings.six.sixArg1(\"ARG\"),\n                   \"six 1 ARG, localized french\")\n    XCTAssertEqual(strings.six.sixArg2(\"ARG\"),\n                   \"six 2 ARG, localized french\")\n\n    /* seven */\n    XCTAssertEqual(strings.seven.seven1(),\n                   \"seven 1, localized english\")\n    XCTAssertEqual(strings.seven.seven2(),\n                   \"seven 2, localized english\")\n    XCTAssertEqual(strings.seven.seven3(),\n                   \"seven3\")\n    XCTAssertEqual(strings.seven.seven4(),\n                   \"seven4\")\n    XCTAssertEqual(strings.seven.sevenArg1(\"ARG\"),\n                   \"seven 1 ARG, localized english\")\n    XCTAssertEqual(strings.seven.sevenArg2(\"ARG\"),\n                   \"seven 2 ARG, localized english\")\n    XCTAssertEqual(strings.seven.sevenArg3(\"ARG\"),\n                   \"sevenArg3\")\n    XCTAssertEqual(strings.seven.sevenArg4(\"ARG\"),\n                   \"sevenArg4\")\n\n    /* eight */\n    XCTAssertEqual(strings.eight.eight1(),\n                   \"eight 1, localized base\")\n    XCTAssertEqual(strings.eight.eight2(),\n                   \"eight 2, localized base\")\n    XCTAssertEqual(strings.eight.eight3(),\n                   \"eight 3, localized base\")\n    XCTAssertEqual(strings.eight.eightArg1(\"ARG\"),\n                   \"eight 1 ARG, localized base\")\n    XCTAssertEqual(strings.eight.eightArg2(\"ARG\"),\n                   \"eight 2 ARG, localized base\")\n    XCTAssertEqual(strings.eight.eightArg3(\"ARG\"),\n                   \"eight 3 ARG, localized base\")\n\n    /* nine */\n    XCTAssertEqual(strings.nine.nine1(),\n                   \"nine 1, localized english\")\n    XCTAssertEqual(strings.nine.nine2(),\n                   \"nine 2, localized english\")\n    XCTAssertEqual(strings.nine.nine3(),\n                   \"nine3\")\n    XCTAssertEqual(strings.nine.nineArg1(\"ARG\"),\n                   \"nine 1 ARG, localized english\")\n    XCTAssertEqual(strings.nine.nineArg2(\"ARG\"),\n                   \"nine 2 ARG, localized english\")\n    XCTAssertEqual(strings.nine.nineArg3(\"ARG\"),\n                   \"nineArg3\")\n\n    /* ten */\n    XCTAssertEqual(strings.ten.ten1(things: 1),\n                   \"ten 1 - 1 thing, localized french\")\n  }\n\n\n  func testEnglishGB() {\n    let myprefs = [\"en-GB\"]\n\n    testPrefferedLanguages(myprefs: myprefs)\n    let strings = R.string(preferredLanguages: myprefs)\n\n    /* one */\n    XCTAssertEqual(strings.one.one1(),\n                   \"one 1, not localized\")\n    XCTAssertEqual(strings.one.one2(),\n                   \"one 2, not localized\")\n    XCTAssertEqual(strings.one.oneArg(\"ARG\"),\n                   \"one ARG, not localized\")\n\n    /* two */\n    XCTAssertEqual(strings.two.two1(),\n                   \"two 1, localized english\")\n    XCTAssertEqual(strings.two.two2(\"Hello\"),\n                   \"two 2, Hello localized english\")\n\n    /* three */\n    XCTAssertEqual(strings.three.three1(),\n                   \"three 1, localized english\")\n    XCTAssertEqual(strings.three.three2(),\n                   \"three 2, localized english\")\n    XCTAssertEqual(strings.three.three3(),\n                   \"three3\")\n    XCTAssertEqual(strings.three.threeArg1(\"ARG\"),\n                   \"three 1 ARG, localized english\")\n    XCTAssertEqual(strings.three.threeArg2(\"ARG\"),\n                   \"three 2 ARG, localized english\")\n    XCTAssertEqual(strings.three.threeArg3(\"ARG\"),\n                   \"threeArg3\")\n\n    /* four */\n    XCTAssertEqual(strings.four.four1(),\n                   \"four1\")\n    XCTAssertEqual(strings.four.fourArg(\"ARG\"),\n                   \"fourArg\")\n\n    /* five */\n    XCTAssertEqual(strings.five.five1(),\n                   \"five 1, localized english gb\")\n    XCTAssertEqual(strings.five.five2(),\n                   \"five2\")\n    XCTAssertEqual(strings.five.five4(),\n                   \"five4\")\n    XCTAssertEqual(strings.five.fiveArg1(\"ARG\"),\n                   \"five 1 ARG, localized english gb\")\n    XCTAssertEqual(strings.five.fiveArg2(\"ARG\"),\n                   \"fiveArg2\")\n    XCTAssertEqual(strings.five.fiveArg4(\"ARG\"),\n                   \"fiveArg4\")\n\n    /* six */\n    XCTAssertEqual(strings.six.six1(),\n                   \"six 1, localized french\")\n    XCTAssertEqual(strings.six.six2(),\n                   \"six 2, localized french\")\n    XCTAssertEqual(strings.six.sixArg1(\"ARG\"),\n                   \"six 1 ARG, localized french\")\n    XCTAssertEqual(strings.six.sixArg2(\"ARG\"),\n                   \"six 2 ARG, localized french\")\n\n    /* seven */\n    XCTAssertEqual(strings.seven.seven1(),\n                   \"seven 1, localized english\")\n    XCTAssertEqual(strings.seven.seven2(),\n                   \"seven 2, localized english\")\n    XCTAssertEqual(strings.seven.seven3(),\n                   \"seven3\")\n    XCTAssertEqual(strings.seven.seven4(),\n                   \"seven4\")\n    XCTAssertEqual(strings.seven.sevenArg1(\"ARG\"),\n                   \"seven 1 ARG, localized english\")\n    XCTAssertEqual(strings.seven.sevenArg2(\"ARG\"),\n                   \"seven 2 ARG, localized english\")\n    XCTAssertEqual(strings.seven.sevenArg3(\"ARG\"),\n                   \"sevenArg3\")\n    XCTAssertEqual(strings.seven.sevenArg4(\"ARG\"),\n                   \"sevenArg4\")\n\n    /* eight */\n    XCTAssertEqual(strings.eight.eight1(),\n                   \"eight 1, localized base\")\n    XCTAssertEqual(strings.eight.eight2(),\n                   \"eight 2, localized base\")\n    XCTAssertEqual(strings.eight.eight3(),\n                   \"eight 3, localized base\")\n    XCTAssertEqual(strings.eight.eightArg1(\"ARG\"),\n                   \"eight 1 ARG, localized base\")\n    XCTAssertEqual(strings.eight.eightArg2(\"ARG\"),\n                   \"eight 2 ARG, localized base\")\n    XCTAssertEqual(strings.eight.eightArg3(\"ARG\"),\n                   \"eight 3 ARG, localized base\")\n\n    /* nine */\n    XCTAssertEqual(strings.nine.nine1(),\n                   \"nine 1, localized base\")\n    XCTAssertEqual(strings.nine.nine2(),\n                   \"nine 2, localized base\")\n    XCTAssertEqual(strings.nine.nine3(),\n                   \"nine 3, localized base\")\n    XCTAssertEqual(strings.nine.nineArg1(\"ARG\"),\n                   \"nine 1 ARG, localized base\")\n    XCTAssertEqual(strings.nine.nineArg2(\"ARG\"),\n                   \"nine 2 ARG, localized base\")\n    XCTAssertEqual(strings.nine.nineArg3(\"ARG\"),\n                   \"nine 3 ARG, localized base\")\n\n    /* ten */\n    XCTAssertEqual(strings.ten.ten1(things: 1),\n                   \"ten 1 - 1 thing, localized french\")\n  }\n\n\n  func testFrench() {\n    let myprefs = [\"fr\"]\n\n    testPrefferedLanguages(myprefs: myprefs)\n    let strings = R.string(preferredLanguages: myprefs)\n\n    /* one */\n    XCTAssertEqual(strings.one.one1(),\n                   \"one 1, not localized\")\n    XCTAssertEqual(strings.one.one2(),\n                   \"one 2, not localized\")\n    XCTAssertEqual(strings.one.oneArg(\"ARG\"),\n                   \"one ARG, not localized\")\n\n    /* two */\n    XCTAssertEqual(strings.two.two1(),\n                   \"two1\")\n    XCTAssertEqual(strings.two.two2(\"Hello\"),\n                   \"two2\")\n\n    /* three */\n    XCTAssertEqual(strings.three.three1(),\n                   \"three1\")\n    XCTAssertEqual(strings.three.three2(),\n                   \"three2\")\n    XCTAssertEqual(strings.three.three3(),\n                   \"three3\")\n    XCTAssertEqual(strings.three.threeArg1(\"ARG\"),\n                   \"threeArg1\")\n    XCTAssertEqual(strings.three.threeArg2(\"ARG\"),\n                   \"threeArg2\")\n    XCTAssertEqual(strings.three.threeArg3(\"ARG\"),\n                   \"threeArg3\")\n\n    /* four */\n    XCTAssertEqual(strings.four.four1(),\n                   \"four1\")\n    XCTAssertEqual(strings.four.fourArg(\"ARG\"),\n                   \"fourArg\")\n\n    /* five */\n    XCTAssertEqual(strings.five.five1(),\n                   \"five 1, localized french\")\n    XCTAssertEqual(strings.five.five2(),\n                   \"five 2, localized french\")\n    XCTAssertEqual(strings.five.five4(),\n                   \"five 4, localized french\")\n    XCTAssertEqual(strings.five.fiveArg1(\"ARG\"),\n                   \"five 1 ARG, localized french\")\n    XCTAssertEqual(strings.five.fiveArg2(\"ARG\"),\n                   \"five 2 ARG, localized french\")\n    XCTAssertEqual(strings.five.fiveArg4(\"ARG\"),\n                   \"five 4 ARG, localized french\")\n\n    /* six */\n    XCTAssertEqual(strings.six.six1(),\n                   \"six 1, localized french\")\n    XCTAssertEqual(strings.six.six2(),\n                   \"six 2, localized french\")\n    XCTAssertEqual(strings.six.sixArg1(\"ARG\"),\n                   \"six 1 ARG, localized french\")\n    XCTAssertEqual(strings.six.sixArg2(\"ARG\"),\n                   \"six 2 ARG, localized french\")\n\n    /* seven */\n    XCTAssertEqual(strings.seven.seven1(),\n                   \"seven 1, localized french\")\n    XCTAssertEqual(strings.seven.seven2(),\n                   \"seven 2, localized french\")\n    XCTAssertEqual(strings.seven.seven3(),\n                   \"seven 3, localized french\")\n    XCTAssertEqual(strings.seven.seven4(),\n                   \"seven 4, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg1(\"ARG\"),\n                   \"seven 1 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg2(\"ARG\"),\n                   \"seven 2 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg3(\"ARG\"),\n                   \"seven 3 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg4(\"ARG\"),\n                   \"seven 4 ARG, localized french\")\n\n    /* eight */\n    XCTAssertEqual(strings.eight.eight1(),\n                   \"eight 1, localized french\")\n    XCTAssertEqual(strings.eight.eight2(),\n                   \"eight 2, localized french\")\n    XCTAssertEqual(strings.eight.eight3(),\n                   \"eight3\")\n    XCTAssertEqual(strings.eight.eightArg1(\"ARG\"),\n                   \"eight 1 ARG, localized french\")\n    XCTAssertEqual(strings.eight.eightArg2(\"ARG\"),\n                   \"eight 2 ARG, localized french\")\n    XCTAssertEqual(strings.eight.eightArg3(\"ARG\"),\n                   \"eightArg3\")\n\n    /* nine */\n    XCTAssertEqual(strings.nine.nine1(),\n                   \"nine 1, localized french\")\n    XCTAssertEqual(strings.nine.nine2(),\n                   \"nine 2, localized french\")\n    XCTAssertEqual(strings.nine.nine3(),\n                   \"nine3\")\n    XCTAssertEqual(strings.nine.nineArg1(\"ARG\"),\n                   \"nine 1 ARG, localized french\")\n    XCTAssertEqual(strings.nine.nineArg2(\"ARG\"),\n                   \"nine 2 ARG, localized french\")\n    XCTAssertEqual(strings.nine.nineArg3(\"ARG\"),\n                   \"nineArg3\")\n\n    /* ten */\n    XCTAssertEqual(strings.ten.ten1(things: 1),\n                   \"ten 1 - 1 thing, localized french\")\n  }\n\n\n  func testFrenchCanada() {\n    let myprefs = [\"fr-CA\"]\n\n    testPrefferedLanguages(myprefs: myprefs)\n    let strings = R.string(preferredLanguages: myprefs)\n\n    /* one */\n    XCTAssertEqual(strings.one.one1(),\n                   \"one 1, not localized\")\n    XCTAssertEqual(strings.one.one2(),\n                   \"one 2, not localized\")\n    XCTAssertEqual(strings.one.oneArg(\"ARG\"),\n                   \"one ARG, not localized\")\n\n    /* two */\n    XCTAssertEqual(strings.two.two1(),\n                   \"two1\")\n    XCTAssertEqual(strings.two.two2(\"Hello\"),\n                   \"two2\")\n\n    /* three */\n    XCTAssertEqual(strings.three.three1(),\n                   \"three1\")\n    XCTAssertEqual(strings.three.three2(),\n                   \"three2\")\n    XCTAssertEqual(strings.three.three3(),\n                   \"three3\")\n    XCTAssertEqual(strings.three.threeArg1(\"ARG\"),\n                   \"threeArg1\")\n    XCTAssertEqual(strings.three.threeArg2(\"ARG\"),\n                   \"threeArg2\")\n    XCTAssertEqual(strings.three.threeArg3(\"ARG\"),\n                   \"threeArg3\")\n\n    /* four */\n    XCTAssertEqual(strings.four.four1(),\n                   \"four1\")\n    XCTAssertEqual(strings.four.fourArg(\"ARG\"),\n                   \"fourArg\")\n\n    /* five */\n    XCTAssertEqual(strings.five.five1(),\n                   \"five 1, localized french canada\")\n    XCTAssertEqual(strings.five.five2(),\n                   \"five2\")\n    XCTAssertEqual(strings.five.five4(),\n                   \"five4\")\n    XCTAssertEqual(strings.five.fiveArg1(\"ARG\"),\n                   \"five 1 ARG, localized french canada\")\n    XCTAssertEqual(strings.five.fiveArg2(\"ARG\"),\n                   \"fiveArg2\")\n    XCTAssertEqual(strings.five.fiveArg4(\"ARG\"),\n                   \"fiveArg4\")\n\n    /* six */\n    XCTAssertEqual(strings.six.six1(),\n                   \"six 1, localized french canada\")\n    XCTAssertEqual(strings.six.six2(),\n                   \"six2\")\n    XCTAssertEqual(strings.six.sixArg1(\"ARG\"),\n                   \"six 1 ARG, localized french canada\")\n    XCTAssertEqual(strings.six.sixArg2(\"ARG\"),\n                   \"sixArg2\")\n\n    /* seven */\n    XCTAssertEqual(strings.seven.seven1(),\n                   \"seven 1, localized french\")\n    XCTAssertEqual(strings.seven.seven2(),\n                   \"seven 2, localized french\")\n    XCTAssertEqual(strings.seven.seven3(),\n                   \"seven 3, localized french\")\n    XCTAssertEqual(strings.seven.seven4(),\n                   \"seven 4, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg1(\"ARG\"),\n                   \"seven 1 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg2(\"ARG\"),\n                   \"seven 2 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg3(\"ARG\"),\n                   \"seven 3 ARG, localized french\")\n    XCTAssertEqual(strings.seven.sevenArg4(\"ARG\"),\n                   \"seven 4 ARG, localized french\")\n\n    /* eight */\n    XCTAssertEqual(strings.eight.eight1(),\n                   \"eight 1, localized base\")\n    XCTAssertEqual(strings.eight.eight2(),\n                   \"eight 2, localized base\")\n    XCTAssertEqual(strings.eight.eight3(),\n                   \"eight 3, localized base\")\n    XCTAssertEqual(strings.eight.eightArg1(\"ARG\"),\n                   \"eight 1 ARG, localized base\")\n    XCTAssertEqual(strings.eight.eightArg2(\"ARG\"),\n                   \"eight 2 ARG, localized base\")\n    XCTAssertEqual(strings.eight.eightArg3(\"ARG\"),\n                   \"eight 3 ARG, localized base\")\n\n    /* nine */\n    XCTAssertEqual(strings.nine.nine1(),\n                   \"nine 1, localized base\")\n    XCTAssertEqual(strings.nine.nine2(),\n                   \"nine 2, localized base\")\n    XCTAssertEqual(strings.nine.nine3(),\n                   \"nine 3, localized base\")\n    XCTAssertEqual(strings.nine.nineArg1(\"ARG\"),\n                   \"nine 1 ARG, localized base\")\n    XCTAssertEqual(strings.nine.nineArg2(\"ARG\"),\n                   \"nine 2 ARG, localized base\")\n    XCTAssertEqual(strings.nine.nineArg3(\"ARG\"),\n                   \"nine 3 ARG, localized base\")\n\n    /* ten */\n    XCTAssertEqual(strings.ten.ten1(things: 1),\n                   \"ten 1 - 1 thing, localized french\")\n  }\n\n\n  func testPrefferedLanguages(myprefs: [String]) {\n\n    /* one */\n    XCTAssertEqual(R.string.one.one1(preferredLanguages: myprefs),\n                   R.string.one(preferredLanguages: myprefs).one1())\n    XCTAssertEqual(R.string.one.one2(preferredLanguages: myprefs),\n                   R.string.one(preferredLanguages: myprefs).one2())\n    XCTAssertEqual(R.string.one.oneArg(\"ARG\", preferredLanguages: myprefs),\n                   R.string.one(preferredLanguages: myprefs).oneArg(\"ARG\"))\n\n    /* two */\n    XCTAssertEqual(R.string.two.two1(preferredLanguages: myprefs),\n                   R.string.two(preferredLanguages: myprefs).two1())\n    XCTAssertEqual(R.string.two.two2(\"Hello\", preferredLanguages: myprefs),\n                   R.string.two(preferredLanguages: myprefs).two2(\"Hello\"))\n\n    /* three */\n    XCTAssertEqual(R.string.three.three1(preferredLanguages: myprefs),\n                   R.string.three(preferredLanguages: myprefs).three1())\n    XCTAssertEqual(R.string.three.three2(preferredLanguages: myprefs),\n                   R.string.three(preferredLanguages: myprefs).three2())\n    XCTAssertEqual(R.string.three.three3(preferredLanguages: myprefs),\n                   R.string.three(preferredLanguages: myprefs).three3())\n    XCTAssertEqual(R.string.three.threeArg1(\"ARG\", preferredLanguages: myprefs),\n                   R.string.three(preferredLanguages: myprefs).threeArg1(\"ARG\"))\n    XCTAssertEqual(R.string.three.threeArg2(\"ARG\", preferredLanguages: myprefs),\n                   R.string.three(preferredLanguages: myprefs).threeArg2(\"ARG\"))\n    XCTAssertEqual(R.string.three.threeArg3(\"ARG\", preferredLanguages: myprefs),\n                   R.string.three(preferredLanguages: myprefs).threeArg3(\"ARG\"))\n\n    /* four */\n    XCTAssertEqual(R.string.four.four1(preferredLanguages: myprefs),\n                   R.string.four(preferredLanguages: myprefs).four1())\n    XCTAssertEqual(R.string.four.fourArg(\"ARG\", preferredLanguages: myprefs),\n                   R.string.four(preferredLanguages: myprefs).fourArg(\"ARG\"))\n\n    /* five */\n    XCTAssertEqual(R.string.five.five1(preferredLanguages: myprefs),\n                   R.string.five(preferredLanguages: myprefs).five1())\n    XCTAssertEqual(R.string.five.five2(preferredLanguages: myprefs),\n                   R.string.five(preferredLanguages: myprefs).five2())\n    XCTAssertEqual(R.string.five.five4(preferredLanguages: myprefs),\n                   R.string.five(preferredLanguages: myprefs).five4())\n    XCTAssertEqual(R.string.five.fiveArg1(\"ARG\", preferredLanguages: myprefs),\n                   R.string.five(preferredLanguages: myprefs).fiveArg1(\"ARG\"))\n    XCTAssertEqual(R.string.five.fiveArg2(\"ARG\", preferredLanguages: myprefs),\n                   R.string.five(preferredLanguages: myprefs).fiveArg2(\"ARG\"))\n    XCTAssertEqual(R.string.five.fiveArg4(\"ARG\", preferredLanguages: myprefs),\n                   R.string.five(preferredLanguages: myprefs).fiveArg4(\"ARG\"))\n\n    /* six */\n    XCTAssertEqual(R.string.six.six1(preferredLanguages: myprefs),\n                   R.string.six(preferredLanguages: myprefs).six1())\n    XCTAssertEqual(R.string.six.six2(preferredLanguages: myprefs),\n                   R.string.six(preferredLanguages: myprefs).six2())\n    XCTAssertEqual(R.string.six.sixArg1(\"ARG\", preferredLanguages: myprefs),\n                   R.string.six(preferredLanguages: myprefs).sixArg1(\"ARG\"))\n    XCTAssertEqual(R.string.six.sixArg2(\"ARG\", preferredLanguages: myprefs),\n                   R.string.six(preferredLanguages: myprefs).sixArg2(\"ARG\"))\n\n    /* seven */\n    XCTAssertEqual(R.string.seven.seven1(preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).seven1())\n    XCTAssertEqual(R.string.seven.seven2(preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).seven2())\n    XCTAssertEqual(R.string.seven.seven3(preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).seven3())\n    XCTAssertEqual(R.string.seven.seven4(preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).seven4())\n    XCTAssertEqual(R.string.seven.sevenArg1(\"ARG\", preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).sevenArg1(\"ARG\"))\n    XCTAssertEqual(R.string.seven.sevenArg2(\"ARG\", preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).sevenArg2(\"ARG\"))\n    XCTAssertEqual(R.string.seven.sevenArg3(\"ARG\", preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).sevenArg3(\"ARG\"))\n    XCTAssertEqual(R.string.seven.sevenArg4(\"ARG\", preferredLanguages: myprefs),\n                   R.string.seven(preferredLanguages: myprefs).sevenArg4(\"ARG\"))\n\n    /* eight */\n    XCTAssertEqual(R.string.eight.eight1(preferredLanguages: myprefs),\n                   R.string.eight(preferredLanguages: myprefs).eight1())\n    XCTAssertEqual(R.string.eight.eight2(preferredLanguages: myprefs),\n                   R.string.eight(preferredLanguages: myprefs).eight2())\n    XCTAssertEqual(R.string.eight.eight3(preferredLanguages: myprefs),\n                   R.string.eight(preferredLanguages: myprefs).eight3())\n    XCTAssertEqual(R.string.eight.eightArg1(\"ARG\", preferredLanguages: myprefs),\n                   R.string.eight(preferredLanguages: myprefs).eightArg1(\"ARG\"))\n    XCTAssertEqual(R.string.eight.eightArg2(\"ARG\", preferredLanguages: myprefs),\n                   R.string.eight(preferredLanguages: myprefs).eightArg2(\"ARG\"))\n    XCTAssertEqual(R.string.eight.eightArg3(\"ARG\", preferredLanguages: myprefs),\n                   R.string.eight(preferredLanguages: myprefs).eightArg3(\"ARG\"))\n\n    /* nine */\n    XCTAssertEqual(R.string.nine.nine1(preferredLanguages: myprefs),\n                   R.string.nine(preferredLanguages: myprefs).nine1())\n    XCTAssertEqual(R.string.nine.nine2(preferredLanguages: myprefs),\n                   R.string.nine(preferredLanguages: myprefs).nine2())\n    XCTAssertEqual(R.string.nine.nine3(preferredLanguages: myprefs),\n                   R.string.nine(preferredLanguages: myprefs).nine3())\n    XCTAssertEqual(R.string.nine.nineArg1(\"ARG\", preferredLanguages: myprefs),\n                   R.string.nine(preferredLanguages: myprefs).nineArg1(\"ARG\"))\n    XCTAssertEqual(R.string.nine.nineArg2(\"ARG\", preferredLanguages: myprefs),\n                   R.string.nine(preferredLanguages: myprefs).nineArg2(\"ARG\"))\n    XCTAssertEqual(R.string.nine.nineArg3(\"ARG\", preferredLanguages: myprefs),\n                   R.string.nine(preferredLanguages: myprefs).nineArg3(\"ARG\"))\n\n    /* ten */\n    XCTAssertEqual(R.string.ten.ten1(things: 1, preferredLanguages: myprefs),\n                   R.string.ten(preferredLanguages: myprefs).ten1(things: 1))\n  }\n\n}\n"
  },
  {
    "path": "Examples/ResourceApp/.rswiftignore",
    "content": "# Filtering single file\nResourceApp/Images/Sky.tiff\n\n # Corrupt line\n\n# Ignore all files containing '.ignoreme.'\n**/*.ignoreme.*\n\n# Explicitly include single file\n!ResourceApp/ExplicitInclude.ignoreme.png\n\n# Explicitly include all files containing '.dont.ignoreme.'\n!**/*.dont.ignoreme.*\n"
  },
  {
    "path": "Examples/ResourceApp/Podfile",
    "content": "use_frameworks!\nworkspace 'ResourceApp'\n\ntarget 'ResourceApp' do\n  platform :ios, '12.0'\n  project 'ResourceApp'\n\n  pod 'SWRevealViewController'\nend\n\npost_install do |installer|\n  installer.pods_project.targets.each do |target|\n    target.build_configurations.each do |config|\n      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'\n    end\n  end\nend\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 20-07-15.\n//  Copyright (c) 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n  var window: UIWindow?\n\n  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool {\n    \n//    let defaults = UserDefaults.standard\n//    defaults.setValue([\"nl\"], forKey: \"AppleLanguages\")\n\n    // Override point for customization after application launch.\n    return true\n  }\n\n  @available(iOS 13.0, *)\n  func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {\n    // Called when a new scene session is being created.\n    // Use this method to select a configuration to create the new scene with.\n    let sceneConfigurationName = R.info.uiApplicationSceneManifest.uiSceneConfigurations\n      .uiWindowSceneSessionRoleApplication.defaultConfiguration.uiSceneConfigurationName\n    return UISceneConfiguration(name: sceneConfigurationName, sessionRole: connectingSceneSession.role)\n  }\n\n  @available(iOS 13.0, *)\n  func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {\n    // Called when the user discards a scene session.\n    // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.\n    // Use this method to release any resources that were specific to the discarded scenes, as they will not return.\n  }\n\n  func applicationWillResignActive(_ application: UIApplication) {\n    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.\n  }\n\n  func applicationDidEnterBackground(_ application: UIApplication) {\n    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n  }\n\n  func applicationWillEnterForeground(_ application: UIApplication) {\n    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.\n  }\n\n  func applicationDidBecomeActive(_ application: UIApplication) {\n    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n  }\n\n  func applicationWillTerminate(_ application: UIApplication) {\n    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n  }\n\n}\n\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Base.lproj/LaunchScreen.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"9531\" systemVersion=\"15D21\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"9529\"/>\n        <capability name=\"Constraints with non-1.0 multipliers\" minToolsVersion=\"5.1\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <view contentMode=\"scaleToFill\" id=\"iN0-l3-epB\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"480\" height=\"480\"/>\n            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n            <subviews>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"R.swift test app\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumFontSize=\"9\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"8ie-xW-0ye\">\n                    <rect key=\"frame\" x=\"20\" y=\"439\" width=\"441\" height=\"21\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                    <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"ResourceApp\" textAlignment=\"center\" lineBreakMode=\"middleTruncation\" baselineAdjustment=\"alignBaselines\" minimumFontSize=\"18\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"kId-c2-rCX\">\n                    <rect key=\"frame\" x=\"20\" y=\"140\" width=\"441\" height=\"43\"/>\n                    <fontDescription key=\"fontDescription\" type=\"boldSystem\" pointSize=\"36\"/>\n                    <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n            </subviews>\n            <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n            <constraints>\n                <constraint firstItem=\"kId-c2-rCX\" firstAttribute=\"centerY\" secondItem=\"iN0-l3-epB\" secondAttribute=\"bottom\" multiplier=\"1/3\" constant=\"1\" id=\"5cJ-9S-tgC\"/>\n                <constraint firstAttribute=\"centerX\" secondItem=\"kId-c2-rCX\" secondAttribute=\"centerX\" id=\"Koa-jz-hwk\"/>\n                <constraint firstAttribute=\"bottom\" secondItem=\"8ie-xW-0ye\" secondAttribute=\"bottom\" constant=\"20\" id=\"Kzo-t9-V3l\"/>\n                <constraint firstItem=\"8ie-xW-0ye\" firstAttribute=\"leading\" secondItem=\"iN0-l3-epB\" secondAttribute=\"leading\" constant=\"20\" symbolic=\"YES\" id=\"MfP-vx-nX0\"/>\n                <constraint firstAttribute=\"centerX\" secondItem=\"8ie-xW-0ye\" secondAttribute=\"centerX\" id=\"ZEH-qu-HZ9\"/>\n                <constraint firstItem=\"kId-c2-rCX\" firstAttribute=\"leading\" secondItem=\"iN0-l3-epB\" secondAttribute=\"leading\" constant=\"20\" symbolic=\"YES\" id=\"fvb-Df-36g\"/>\n            </constraints>\n            <nil key=\"simulatedStatusBarMetrics\"/>\n            <freeformSimulatedSizeMetrics key=\"simulatedDestinationMetrics\"/>\n            <point key=\"canvasLocation\" x=\"548\" y=\"455\"/>\n        </view>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"21507\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"49e-Tb-3d3\">\n    <device id=\"retina4_7\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"21505\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <customFonts key=\"customFonts\">\n        <array key=\"Helvetica.ttc\">\n            <string>Helvetica</string>\n        </array>\n    </customFonts>\n    <scenes>\n        <!--First-->\n        <scene sceneID=\"hNz-n2-bh7\">\n            <objects>\n                <viewController id=\"9pv-A4-QxB\" customClass=\"FirstViewController\" customModule=\"ResourceApp\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Ia1-K6-d13\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"4ug-Mw-9AY\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"tsR-hK-woN\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" text=\"First View\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"KQZ-1w-vlD\">\n                                <rect key=\"frame\" x=\"109\" y=\"313\" width=\"157.5\" height=\"41.5\"/>\n                                <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <fontDescription key=\"fontDescription\" name=\"Helvetica\" family=\"Helvetica\" pointSize=\"36\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Loaded by FirstViewController\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"A5M-7J-77L\">\n                                <rect key=\"frame\" x=\"90.5\" y=\"362.5\" width=\"194.5\" height=\"17\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"center\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"User@white.png\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ZJc-88-QRk\">\n                                <rect key=\"frame\" x=\"123.5\" y=\"32\" width=\"128\" height=\"128\"/>\n                            </imageView>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstAttribute=\"centerX\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"centerX\" id=\"6BV-lF-sBN\"/>\n                            <constraint firstItem=\"ZJc-88-QRk\" firstAttribute=\"top\" secondItem=\"Ia1-K6-d13\" secondAttribute=\"bottom\" constant=\"32\" id=\"9B5-tH-201\"/>\n                            <constraint firstItem=\"A5M-7J-77L\" firstAttribute=\"top\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"bottom\" constant=\"8\" symbolic=\"YES\" id=\"cfb-er-3JN\"/>\n                            <constraint firstItem=\"A5M-7J-77L\" firstAttribute=\"centerX\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"centerX\" id=\"e1l-AV-tCB\"/>\n                            <constraint firstAttribute=\"centerY\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"centerY\" id=\"exm-UA-ej4\"/>\n                            <constraint firstItem=\"ZJc-88-QRk\" firstAttribute=\"centerX\" secondItem=\"tsR-hK-woN\" secondAttribute=\"centerX\" id=\"vaM-po-q6m\"/>\n                        </constraints>\n                    </view>\n                    <tabBarItem key=\"tabBarItem\" title=\"First\" image=\"User@white\" id=\"acW-dT-cKf\"/>\n                    <connections>\n                        <outlet property=\"titleLabel\" destination=\"KQZ-1w-vlD\" id=\"ngg-aK-i8U\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"W5J-7L-Pyd\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"750\" y=\"-320\"/>\n        </scene>\n        <!--Reveal View Controller-->\n        <scene sceneID=\"d0u-kX-nCz\">\n            <objects>\n                <viewController storyboardIdentifier=\"swRevealViewController\" id=\"uQ3-nU-KEn\" customClass=\"SWRevealViewController\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"f16-cV-z5y\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"soX-IP-S1A\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"cRv-1n-fml\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"OSL-5X-vl5\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1586\" y=\"-321\"/>\n        </scene>\n        <!--Second-->\n        <scene sceneID=\"wg7-f3-ORb\">\n            <objects>\n                <viewController id=\"8rJ-Kc-sve\" customClass=\"SecondViewController\" customModule=\"ResourceApp\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"L7p-HK-0SC\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"Djb-ko-YwX\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"QS5-Rx-YEW\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" text=\"Second View\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zEq-FU-wV5\">\n                                <rect key=\"frame\" x=\"83\" y=\"313\" width=\"209.5\" height=\"41.5\"/>\n                                <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <fontDescription key=\"fontDescription\" name=\"Helvetica\" family=\"Helvetica\" pointSize=\"36\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Loaded by SecondViewController\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"NDk-cv-Gan\">\n                                <rect key=\"frame\" x=\"80\" y=\"362.5\" width=\"215\" height=\"17\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"NDk-cv-Gan\" firstAttribute=\"top\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"bottom\" constant=\"8\" symbolic=\"YES\" id=\"Day-4N-Vmt\"/>\n                            <constraint firstItem=\"NDk-cv-Gan\" firstAttribute=\"centerX\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"centerX\" id=\"JgO-Fn-dHn\"/>\n                            <constraint firstAttribute=\"centerX\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"centerX\" id=\"qqM-NS-xev\"/>\n                            <constraint firstAttribute=\"centerY\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"centerY\" id=\"qzY-Ky-pLD\"/>\n                        </constraints>\n                    </view>\n                    <tabBarItem key=\"tabBarItem\" title=\"Second\" image=\"Second\" id=\"cPa-gy-q4n\"/>\n                    <connections>\n                        <segue destination=\"oSY-nF-Ci0\" kind=\"show\" identifier=\"toThird\" id=\"yGR-hV-SHy\"/>\n                        <segue destination=\"YCO-tr-k3L\" kind=\"show\" identifier=\"ToFirst\" id=\"z6s-e4-G9Z\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"4Nw-L8-lE0\" sceneMemberID=\"firstResponder\"/>\n                <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" id=\"6kR-NP-pnc\">\n                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"36\" height=\"30\"/>\n                    <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                    <state key=\"normal\" title=\"Extra\"/>\n                    <connections>\n                        <segue destination=\"oSY-nF-Ci0\" kind=\"show\" identifier=\"attachedSegue\" id=\"7l5-o2-YcS\"/>\n                    </connections>\n                </button>\n                <tapGestureRecognizer id=\"tzp-w1-Hfz\">\n                    <connections>\n                        <segue destination=\"oSY-nF-Ci0\" kind=\"custom\" identifier=\"recognizerSegue\" customClass=\"CustomSegue\" customModule=\"ResourceApp\" customModuleProvider=\"target\" id=\"oyV-dS-wZu\"/>\n                    </connections>\n                </tapGestureRecognizer>\n            </objects>\n            <point key=\"canvasLocation\" x=\"750\" y=\"360\"/>\n        </scene>\n        <!--Third-->\n        <scene sceneID=\"zpX-de-BX8\">\n            <objects>\n                <viewController storyboardIdentifier=\"thirdViewController\" title=\"Third\" id=\"oSY-nF-Ci0\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Igu-U9-nxk\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"rQH-pS-9iA\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Xle-dW-hVf\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"8B6-zH-yBB\">\n                                <rect key=\"frame\" x=\"161.5\" y=\"318.5\" width=\"52\" height=\"30\"/>\n                                <state key=\"normal\" title=\"Unwind\"/>\n                                <connections>\n                                    <segue destination=\"gh1-ro-RFV\" kind=\"unwind\" identifier=\"unwindSegue\" customClass=\"CustomSegue\" customModule=\"ResourceApp\" customModuleProvider=\"target\" unwindAction=\"unwindSomethingSomthing:\" id=\"UNt-3N-uEw\"/>\n                                </connections>\n                            </button>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"8B6-zH-yBB\" firstAttribute=\"centerY\" secondItem=\"Xle-dW-hVf\" secondAttribute=\"centerY\" id=\"JNz-kz-XlF\"/>\n                            <constraint firstItem=\"8B6-zH-yBB\" firstAttribute=\"centerX\" secondItem=\"Xle-dW-hVf\" secondAttribute=\"centerX\" id=\"vuH-Hu-ZP0\"/>\n                        </constraints>\n                    </view>\n                    <navigationItem key=\"navigationItem\" id=\"0Bm-UV-nCz\"/>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"thV-Zl-Ztw\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n                <exit id=\"gh1-ro-RFV\" userLabel=\"Exit\" sceneMemberID=\"exit\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1587\" y=\"360\"/>\n        </scene>\n        <!--View Controller-->\n        <scene sceneID=\"LZC-66-TKR\">\n            <objects>\n                <viewController storyboardIdentifier=\"RSTestIdentifier\" id=\"ujD-bi-gPC\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"sP3-EC-0rc\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"LJ2-nC-XKz\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"lkp-og-Sgi\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"ITz-ai-Ozr\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"2394\" y=\"260\"/>\n        </scene>\n        <!--Table View Controller-->\n        <scene sceneID=\"hto-1q-4Hs\">\n            <objects>\n                <tableViewController id=\"YCO-tr-k3L\" sceneMemberID=\"viewController\">\n                    <tableView key=\"view\" clipsSubviews=\"YES\" contentMode=\"scaleToFill\" alwaysBounceVertical=\"YES\" dataMode=\"prototypes\" style=\"plain\" separatorStyle=\"default\" rowHeight=\"44\" sectionHeaderHeight=\"28\" sectionFooterHeight=\"28\" id=\"Pu5-zm-uIi\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <prototypes>\n                            <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"emptyCell\" id=\"Lre-Cj-0QS\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"50\" width=\"375\" height=\"44\"/>\n                                <autoresizingMask key=\"autoresizingMask\"/>\n                                <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"Lre-Cj-0QS\" id=\"sq1-mW-7Wa\">\n                                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"44\"/>\n                                    <autoresizingMask key=\"autoresizingMask\"/>\n                                </tableViewCellContentView>\n                            </tableViewCell>\n                            <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"fullCell\" id=\"L8j-6T-BZ6\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"94\" width=\"375\" height=\"44\"/>\n                                <autoresizingMask key=\"autoresizingMask\"/>\n                                <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"L8j-6T-BZ6\" id=\"Vn1-wc-sJz\">\n                                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"44\"/>\n                                    <autoresizingMask key=\"autoresizingMask\"/>\n                                </tableViewCellContentView>\n                            </tableViewCell>\n                        </prototypes>\n                        <connections>\n                            <outlet property=\"dataSource\" destination=\"YCO-tr-k3L\" id=\"Q0S-yM-kZP\"/>\n                            <outlet property=\"delegate\" destination=\"YCO-tr-k3L\" id=\"0xM-gI-arO\"/>\n                        </connections>\n                    </tableView>\n                </tableViewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"S0Y-qe-dOQ\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1130\" y=\"1141\"/>\n        </scene>\n        <!--Tab Bar Controller-->\n        <scene sceneID=\"yl2-sM-qoP\">\n            <objects>\n                <tabBarController id=\"49e-Tb-3d3\" sceneMemberID=\"viewController\">\n                    <nil key=\"simulatedBottomBarMetrics\"/>\n                    <tabBar key=\"tabBar\" contentMode=\"scaleToFill\" id=\"W28-zg-YXA\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"975\" width=\"768\" height=\"49\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" flexibleMinY=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"0.0\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                    </tabBar>\n                    <connections>\n                        <segue destination=\"9pv-A4-QxB\" kind=\"relationship\" relationship=\"viewControllers\" id=\"u7Y-xg-7CH\"/>\n                        <segue destination=\"8rJ-Kc-sve\" kind=\"relationship\" relationship=\"viewControllers\" id=\"lzU-1b-eKA\"/>\n                    </connections>\n                </tabBarController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"HuB-VB-40B\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"0.0\" y=\"0.0\"/>\n        </scene>\n    </scenes>\n    <inferredMetricsTieBreakers>\n        <segue reference=\"yGR-hV-SHy\"/>\n    </inferredMetricsTieBreakers>\n    <resources>\n        <image name=\"Second\" width=\"30\" height=\"30\"/>\n        <image name=\"User@white\" width=\"30\" height=\"30\"/>\n        <image name=\"User@white.png\" width=\"128\" height=\"128\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Base.lproj/Secondary.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"21507\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"49e-Tb-3d3\">\n    <device id=\"retina6_12\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"21505\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <customFonts key=\"customFonts\">\n        <array key=\"Helvetica.ttc\">\n            <string>Helvetica</string>\n        </array>\n    </customFonts>\n    <scenes>\n        <!--First-->\n        <scene sceneID=\"hNz-n2-bh7\">\n            <objects>\n                <viewController id=\"9pv-A4-QxB\" customClass=\"FirstViewController\" customModule=\"ResourceApp\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Ia1-K6-d13\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"4ug-Mw-9AY\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"tsR-hK-woN\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" misplaced=\"YES\" text=\"First View\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"KQZ-1w-vlD\">\n                                <rect key=\"frame\" x=\"221\" y=\"279\" width=\"157.5\" height=\"41.5\"/>\n                                <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <fontDescription key=\"fontDescription\" name=\"Helvetica\" family=\"Helvetica\" pointSize=\"36\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" misplaced=\"YES\" text=\"Loaded by FirstViewController\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"A5M-7J-77L\">\n                                <rect key=\"frame\" x=\"203\" y=\"329\" width=\"194.5\" height=\"17\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstAttribute=\"centerX\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"centerX\" id=\"6BV-lF-sBN\"/>\n                            <constraint firstItem=\"A5M-7J-77L\" firstAttribute=\"top\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"bottom\" constant=\"8\" symbolic=\"YES\" id=\"cfb-er-3JN\"/>\n                            <constraint firstItem=\"A5M-7J-77L\" firstAttribute=\"centerX\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"centerX\" id=\"e1l-AV-tCB\"/>\n                            <constraint firstAttribute=\"centerY\" secondItem=\"KQZ-1w-vlD\" secondAttribute=\"centerY\" id=\"exm-UA-ej4\"/>\n                        </constraints>\n                    </view>\n                    <tabBarItem key=\"tabBarItem\" title=\"First\" image=\"First\" id=\"acW-dT-cKf\"/>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"W5J-7L-Pyd\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"750\" y=\"-320\"/>\n        </scene>\n        <!--View Controller-->\n        <scene sceneID=\"NIm-qR-iSg\">\n            <objects>\n                <viewController storyboardIdentifier=\"Validation clash\" id=\"9vP-ly-6wu\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"EiQ-8k-zUI\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"TtM-Uz-9xj\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"o8C-sS-UZ0\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"13r-dT-Wd3\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1639\" y=\"-385\"/>\n        </scene>\n        <!--Second-->\n        <scene sceneID=\"wg7-f3-ORb\">\n            <objects>\n                <viewController id=\"8rJ-Kc-sve\" customClass=\"SecondViewController\" customModule=\"ResourceApp\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"L7p-HK-0SC\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"Djb-ko-YwX\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"QS5-Rx-YEW\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" misplaced=\"YES\" text=\"Second View\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zEq-FU-wV5\">\n                                <rect key=\"frame\" x=\"195\" y=\"279\" width=\"209.5\" height=\"41.5\"/>\n                                <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <fontDescription key=\"fontDescription\" name=\"Helvetica\" family=\"Helvetica\" pointSize=\"36\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" misplaced=\"YES\" text=\"Loaded by SecondViewController\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"NDk-cv-Gan\">\n                                <rect key=\"frame\" x=\"192\" y=\"329\" width=\"215.5\" height=\"17\"/>\n                                <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                                <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"NDk-cv-Gan\" firstAttribute=\"top\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"bottom\" constant=\"8\" symbolic=\"YES\" id=\"Day-4N-Vmt\"/>\n                            <constraint firstItem=\"NDk-cv-Gan\" firstAttribute=\"centerX\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"centerX\" id=\"JgO-Fn-dHn\"/>\n                            <constraint firstAttribute=\"centerX\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"centerX\" id=\"qqM-NS-xev\"/>\n                            <constraint firstAttribute=\"centerY\" secondItem=\"zEq-FU-wV5\" secondAttribute=\"centerY\" id=\"qzY-Ky-pLD\"/>\n                        </constraints>\n                    </view>\n                    <tabBarItem key=\"tabBarItem\" title=\"Second\" image=\"Second\" id=\"cPa-gy-q4n\"/>\n                    <connections>\n                        <segue destination=\"9pv-A4-QxB\" kind=\"show\" identifier=\"toFirst\" id=\"5ku-Ut-hbZ\"/>\n                        <segue destination=\"E90-AR-qIH\" kind=\"show\" identifier=\"toThird\" id=\"yat-aF-1Zf\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"4Nw-L8-lE0\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"750\" y=\"360\"/>\n        </scene>\n        <!--View Controller-->\n        <scene sceneID=\"878-Xp-6kA\">\n            <objects>\n                <viewController id=\"E90-AR-qIH\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"YHM-2b-2Nq\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"92K-h3-nh7\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"dIi-AZ-ZFQ\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"BaU-p5-xPk\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1522\" y=\"369\"/>\n        </scene>\n        <!--Tab Bar Controller-->\n        <scene sceneID=\"yl2-sM-qoP\">\n            <objects>\n                <tabBarController id=\"49e-Tb-3d3\" sceneMemberID=\"viewController\">\n                    <nil key=\"simulatedBottomBarMetrics\"/>\n                    <tabBar key=\"tabBar\" contentMode=\"scaleToFill\" id=\"W28-zg-YXA\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"975\" width=\"768\" height=\"49\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" flexibleMinY=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"0.0\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                    </tabBar>\n                    <connections>\n                        <segue destination=\"9pv-A4-QxB\" kind=\"relationship\" relationship=\"viewControllers\" id=\"u7Y-xg-7CH\"/>\n                        <segue destination=\"8rJ-Kc-sve\" kind=\"relationship\" relationship=\"viewControllers\" id=\"lzU-1b-eKA\"/>\n                    </connections>\n                </tabBarController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"HuB-VB-40B\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"0.0\" y=\"0.0\"/>\n        </scene>\n        <!--Table View Controller-->\n        <scene sceneID=\"u2N-AU-e2G\">\n            <objects>\n                <tableViewController id=\"t5w-AK-hcl\" sceneMemberID=\"viewController\">\n                    <tableView key=\"view\" clipsSubviews=\"YES\" contentMode=\"scaleToFill\" alwaysBounceVertical=\"YES\" dataMode=\"prototypes\" style=\"plain\" separatorStyle=\"default\" rowHeight=\"44\" sectionHeaderHeight=\"28\" sectionFooterHeight=\"28\" id=\"Eym-bH-xZt\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <prototypes>\n                            <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"emptyCell\" id=\"WTh-Yc-Cq4\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"50\" width=\"393\" height=\"44\"/>\n                                <autoresizingMask key=\"autoresizingMask\"/>\n                                <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"WTh-Yc-Cq4\" id=\"XFG-3D-Q0I\">\n                                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"44\"/>\n                                    <autoresizingMask key=\"autoresizingMask\"/>\n                                </tableViewCellContentView>\n                            </tableViewCell>\n                        </prototypes>\n                        <connections>\n                            <outlet property=\"dataSource\" destination=\"t5w-AK-hcl\" id=\"BbL-kR-cNg\"/>\n                            <outlet property=\"delegate\" destination=\"t5w-AK-hcl\" id=\"uJ5-Xb-JTN\"/>\n                        </connections>\n                    </tableView>\n                </tableViewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"f7e-fm-iWr\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1130\" y=\"1141\"/>\n        </scene>\n        <!--View Controller-->\n        <scene sceneID=\"lAm-bc-1tJ\">\n            <objects>\n                <viewController storyboardIdentifier=\"ValidationClash\" id=\"zj9-Kb-k1S\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"R5T-u1-EqU\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"7b2-Lm-Y8i\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"twU-Da-qJv\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"393\" height=\"852\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"M0j-Qk-mtR\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1695\" y=\"-320\"/>\n        </scene>\n    </scenes>\n    <inferredMetricsTieBreakers>\n        <segue reference=\"5ku-Ut-hbZ\"/>\n    </inferredMetricsTieBreakers>\n    <resources>\n        <image name=\"First\" width=\"170\" height=\"170\"/>\n        <image name=\"Second\" width=\"30\" height=\"30\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/CellCollectionView.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11201\" systemVersion=\"16A320\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11161\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <collectionViewCell opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" reuseIdentifier=\"myCollectionViewCell\" id=\"jya-RN-aIn\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"50\" height=\"50\"/>\n            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n            <view key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"50\" height=\"50\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </view>\n            <point key=\"canvasLocation\" x=\"83\" y=\"209\"/>\n        </collectionViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/CellView.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"14109\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14088\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"SomeReusableCell\" id=\"Aaa-Dg-POF\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"44\"/>\n            <autoresizingMask key=\"autoresizingMask\"/>\n            <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"Aaa-Dg-POF\" id=\"6lo-68-ygw\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"43.5\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </tableViewCellContentView>\n            <point key=\"canvasLocation\" x=\"177\" y=\"363\"/>\n        </tableViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/CustomSegue.swift",
    "content": "//\n//  CustomSegue.swift\n//  ResourceApp\n//\n//  Created by Tom Lokhorst on 2019-06-10.\n//  Copyright © 2019 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\nclass CustomSegue: UIStoryboardSegue {\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Duplicate/ADuplicateCellView.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11201\" systemVersion=\"16A320\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11161\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"duplicateCellView\" id=\"0cA-jF-MPM\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"44\"/>\n            <autoresizingMask key=\"autoresizingMask\"/>\n            <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"0cA-jF-MPM\" id=\"cz3-pF-gpd\">\n                <frame key=\"frameInset\" width=\"320\" height=\"43\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </tableViewCellContentView>\n            <point key=\"canvasLocation\" x=\"301\" y=\"157\"/>\n        </tableViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Duplicate/duplicate.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"6211\" systemVersion=\"14A298i\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"6204\"/>\n    </dependencies>\n    <scenes/>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Duplicate/duplicate.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11201\" systemVersion=\"16A320\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11161\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Duplicate.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_1\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n    </dependencies>\n    <scenes/>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Duplicate.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11201\" systemVersion=\"16A320\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11161\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/DuplicateCellView.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11201\" systemVersion=\"16A320\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11161\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"DuplicateCellView\" id=\"0cA-jF-MPM\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"44\"/>\n            <autoresizingMask key=\"autoresizingMask\"/>\n            <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"0cA-jF-MPM\" id=\"cz3-pF-gpd\">\n                <frame key=\"frameInset\" width=\"320\" height=\"43\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </tableViewCellContentView>\n            <point key=\"canvasLocation\" x=\"301\" y=\"157\"/>\n        </tableViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Files/#column",
    "content": "#column is a Swift keyword as of Swift 2.2"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Files/Duplicate.json",
    "content": "{ \"some\": \"json\" }"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Files/Some.json",
    "content": "{ \"some\": \"json\" }"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Files/__FILE__",
    "content": "__FILE__ is a reserved keyword in Swift"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Files/associatedtype",
    "content": "associatedtype is a Swift keyword as of Swift 2.2"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Files/duplicateJson",
    "content": "{ \"some\": \"json\" }"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/FirstViewController.swift",
    "content": "//\n//  FirstViewController.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 20-07-15.\n//  Copyright (c) 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\nclass FirstViewController: UIViewController {\n\n  @IBOutlet weak var titleLabel: UILabel!\n\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    // Do any additional setup after loading the view, typically from a nib.\n    titleLabel.font = R.font.averiaLibreBoldItalic(size: 36)\n    tabBarItem.image = R.image.userWhite()\n  }\n\n  override func didReceiveMemoryWarning() {\n    super.didReceiveMemoryWarning()\n    // Dispose of any resources that can be recreated.\n  }\n\n\n}\n\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"AppIcon.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"AppIcon-3.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"AppIcon-1.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"size\" : \"76x76\",\n      \"idiom\" : \"ipad\",\n      \"filename\" : \"AppIcon-2.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"83.5x83.5\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"size\" : \"1024x1024\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/My Red.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"display-p3\",\n        \"components\" : {\n          \"red\" : 0.8784313725,\n          \"alpha\" : 1,\n          \"blue\" : 0,\n          \"green\" : 0.4392156863\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Namespace/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Namespace/Second.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"second.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Namespace/first.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Second.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"second.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Some Folder/A Nested Folder/first nested.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Some Folder/A Nested Folder/second nested.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"second.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Some Folder/eerste.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/Some Folder/second.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"second.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/TheAppIcon.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"The App Icon.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images.xcassets/first.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Conflicting.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/Inner/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/Inner/Namespace 2/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/Inner/Namespace 2/Folder/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/Inner/Namespace 2/Folder/first.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/Second.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"second.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace 1/third.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/Inner/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/Inner/Namespace/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/Inner/Namespace/Folder/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/Inner/Namespace/Folder/first.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/Second.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"second.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/Namespace-/third.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/conflicting/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Images2.xcassets/conflicting/first.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"first.pdf\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/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>CFBundleDocumentTypes</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>CFBundleTypeName</key>\n\t\t\t<string>MKDirectionsRequest</string>\n\t\t\t<key>LSItemContentTypes</key>\n\t\t\t<array>\n\t\t\t\t<string>com.apple.maps.directionsrequest</string>\n\t\t\t</array>\n\t\t</dict>\n\t</array>\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>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIAppFonts</key>\n\t<array>\n\t\t<string>AveriaLibre-B.ttf</string>\n\t\t<string>AveriaLibre-BI.ttf</string>\n\t\t<string>AveriaLibre-L.ttf</string>\n\t\t<string>AveriaLibre.ttf</string>\n\t\t<string>GdyBkltter1911.ttf</string>\n\t</array>\n\t<key>UIApplicationShortcutItems</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>UIApplicationShortcutItemIconFile</key>\n\t\t\t<string>ShortcutQrScanning</string>\n\t\t\t<key>UIApplicationShortcutItemTitle</key>\n\t\t\t<string>Scan QR-code</string>\n\t\t\t<key>UIApplicationShortcutItemType</key>\n\t\t\t<string>nl.mathijskadijk.shortcuts.qr-scanning</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>UIApplicationShortcutItemIconFile</key>\n\t\t\t<string>ShortcutSendParcel</string>\n\t\t\t<key>UIApplicationShortcutItemTitle</key>\n\t\t\t<string>Send a Parcel</string>\n\t\t\t<key>UIApplicationShortcutItemType</key>\n\t\t\t<string>nl.mathijskadijk.shortcuts.send-parcel</string>\n\t\t</dict>\n\t</array>\n\t<key>UIApplicationSupportsMultipleScenes</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n  <key>UIApplicationSceneManifest</key>\n  <dict>\n    <key>UIApplicationSupportsMultipleScenes</key>\n    <false/>\n    <key>UISceneConfigurations</key>\n    <dict>\n      <key>UIWindowSceneSessionRoleApplication</key>\n      <array>\n        <dict>\n          <key>UISceneConfigurationName</key>\n          <string>Default Configuration</string>\n          <key>UISceneDelegateClassName</key>\n          <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>\n        </dict>\n      </array>\n    </dict>\n  </dict>\n\t<key>NSUserActivityTypes</key>\n\t<array>\n\t\t<string>PlanTripIntent</string>\n\t\t<string>ShowDeparturesIntent</string>\n\t\t<string>DuplicatePlistValue</string>\n\t\t<string>DuplicatePlistValue</string>\n\t</array>\n\t<key>NSExtension</key>\n\t<dict>\n\t\t<key>DuplicatePlistKey#</key>\n\t\t<string>Foo</string>\n\t\t<key>DuplicatePlistKey*</key>\n\t\t<string>Bar</string>\n\t\t<key>NSExtensionAttributes</key>\n\t\t<dict>\n\t\t\t<key>IntentsRestrictedWhileLocked</key>\n\t\t\t<array/>\n\t\t\t<key>IntentsRestrictedWhileProtectedDataUnavailable</key>\n\t\t\t<array/>\n\t\t\t<key>IntentsSupported</key>\n\t\t\t<array>\n\t\t\t\t<string>PlanTripIntent</string>\n\t\t\t\t<string>ShowDeparturesIntent</string>\n\t\t\t</array>\n\t\t</dict>\n\t\t<key>NSExtensionPointIdentifier</key>\n\t\t<string>com.apple.intents-service</string>\n\t\t<key>NSExtensionPrincipalClass</key>\n\t\t<string>$(PRODUCT_MODULE_NAME).IntentHandler</string>\n\t</dict>\n\t<key>UIStatusBarTintParameters</key>\n\t<dict>\n\t\t<key>UINavigationBar</key>\n\t\t<dict>\n\t\t\t<key>Style</key>\n\t\t\t<string>UIBarStyleDefault</string>\n\t\t\t<key>Translucent</key>\n\t\t\t<false/>\n\t\t</dict>\n\t</dict>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Localized/Base.lproj/hello.txt",
    "content": "Hello, World!\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Localized/es.lproj/hello.txt",
    "content": "¡Hola Mundo!\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Localized/nl.lproj/hello.txt",
    "content": "Hallo, Wereld!\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/Folder/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"provides-namespace\" : true\n  }\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/Folder/Not dupe.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"srgb\",\n        \"components\" : {\n          \"red\" : 0.7860491071,\n          \"alpha\" : 1,\n          \"blue\" : 1,\n          \"green\" : 1\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/Keyboard Focus Indicator color.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"srgb\",\n        \"components\" : {\n          \"red\" : 0.2313725490196079,\n          \"alpha\" : 1,\n          \"blue\" : 0.9882352941176471,\n          \"green\" : 0.6\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/My Red.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"display-p3\",\n        \"components\" : {\n          \"red\" : 0.7215686274999999,\n          \"alpha\" : 1,\n          \"blue\" : 0.1019607843,\n          \"green\" : 0.02745098039\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/Not dupe.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"display-p3\",\n        \"components\" : {\n          \"red\" : 1,\n          \"alpha\" : 1,\n          \"blue\" : 1,\n          \"green\" : 0.7767578125\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Media.xcassets/Slightly transparant.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"extended-gray\",\n        \"components\" : {\n          \"white\" : 0,\n          \"alpha\" : 0.4\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/My View.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment version=\"4352\" identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n        <capability name=\"Named colors\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <view contentMode=\"scaleToFill\" id=\"iN0-l3-epB\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n            <subviews>\n                <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" image=\"The App Icon.png\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"mpi-yw-TUg\">\n                    <rect key=\"frame\" x=\"127.5\" y=\"273.5\" width=\"120\" height=\"120\"/>\n                    <accessibility key=\"accessibilityConfiguration\" identifier=\"AppIcon ImageView\"/>\n                </imageView>\n            </subviews>\n            <color key=\"backgroundColor\" name=\"Not dupe\"/>\n            <constraints>\n                <constraint firstItem=\"mpi-yw-TUg\" firstAttribute=\"centerY\" secondItem=\"iN0-l3-epB\" secondAttribute=\"centerY\" id=\"7WP-eT-pCe\"/>\n                <constraint firstItem=\"mpi-yw-TUg\" firstAttribute=\"centerX\" secondItem=\"iN0-l3-epB\" secondAttribute=\"centerX\" id=\"Qd7-yK-yk1\"/>\n            </constraints>\n        </view>\n    </objects>\n    <resources>\n        <image name=\"The App Icon.png\" width=\"120\" height=\"120\"/>\n        <namedColor name=\"Not dupe\">\n            <color red=\"1\" green=\"0.77675783634185791\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"displayP3\"/>\n        </namedColor>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/MyViewController.swift",
    "content": "//\n//  MyViewController.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 08-08-15.\n//  Copyright © 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\nclass MyViewController: UIViewController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        // Do any additional setup after loading the view.\n    }\n\n    override func didReceiveMemoryWarning() {\n        super.didReceiveMemoryWarning()\n        // Dispose of any resources that can be recreated.\n    }\n    \n\n    /*\n    // MARK: - Navigation\n\n    // In a storyboard-based application, you will often want to do a little preparation before navigation\n    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {\n        // Get the new view controller using segue.destinationViewController.\n        // Pass the selected object to the new view controller.\n    }\n    */\n\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/References.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14810.11\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"IfC-nk-yIu\">\n    <device id=\"retina4_7\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment version=\"4352\" identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14766.13\"/>\n        <capability name=\"Named colors\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--First View Controller-->\n        <scene sceneID=\"Ec6-ap-ExA\">\n            <objects>\n                <viewController storyboardIdentifier=\"asdf\" id=\"IfC-nk-yIu\" customClass=\"FirstViewController\" customModule=\"ResourceApp\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"gMc-Wp-NdB\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"fBR-5G-wqf\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"fBs-Rf-9GL\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" name=\"My Red\"/>\n                    </view>\n                    <connections>\n                        <segue destination=\"pmI-7c-sCm\" kind=\"show\" identifier=\"toMain\" id=\"8v0-IP-YL0\"/>\n                        <segue destination=\"IcN-B5-zUv\" kind=\"show\" identifier=\"toAVPlayerController\" id=\"5eO-0j-fVU\"/>\n                        <segue destination=\"kne-1k-ozT\" kind=\"show\" identifier=\"toSomeStoryboard\" id=\"b6z-Sc-6eL\"/>\n                        <segue destination=\"Zbd-89-K73\" kind=\"show\" identifier=\"toUnknown\" id=\"6N8-Dg-FOm\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"H3t-vu-4W6\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"245\" y=\"-158\"/>\n        </scene>\n        <!--Main-->\n        <scene sceneID=\"86e-Pp-WWd\">\n            <objects>\n                <viewControllerPlaceholder storyboardName=\"Main\" id=\"pmI-7c-sCm\" sceneMemberID=\"viewController\"/>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"pxH-tw-N3D\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"717\" y=\"-158\"/>\n        </scene>\n        <!--avpVC-->\n        <scene sceneID=\"Evt-JE-8Jh\">\n            <objects>\n                <viewControllerPlaceholder storyboardName=\"Specials\" referencedIdentifier=\"avpVC\" id=\"IcN-B5-zUv\" sceneMemberID=\"viewController\"/>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"ur6-Tt-rn7\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"721.5\" y=\"-68\"/>\n        </scene>\n        <!--SomeStoryboard-->\n        <scene sceneID=\"Sxb-ap-wVJ\">\n            <objects>\n                <viewControllerPlaceholder storyboardName=\"SomeStoryboard\" bundleIdentifier=\"com.example.someBundle\" id=\"kne-1k-ozT\" sceneMemberID=\"viewController\"/>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"1gs-Cr-B2I\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"753.5\" y=\"31\"/>\n        </scene>\n        <!--Storyboard Reference-->\n        <scene sceneID=\"IO1-Rw-OzQ\">\n            <objects>\n                <viewControllerPlaceholder id=\"Zbd-89-K73\" sceneMemberID=\"viewController\"/>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"eMh-8l-g71\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"768.5\" y=\"121\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <namedColor name=\"My Red\">\n            <color red=\"0.72156864404678345\" green=\"0.027450980618596077\" blue=\"0.10196078568696976\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"displayP3\"/>\n        </namedColor>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Relative To Project/RelativeToProject.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"10116\" systemVersion=\"15E65\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <view contentMode=\"scaleToFill\" id=\"iN0-l3-epB\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n            <subviews>\n                <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" fixedFrame=\"YES\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" numberOfLines=\"0\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"CtM-uS-clU\">\n                    <rect key=\"frame\" x=\"8\" y=\"24\" width=\"406\" height=\"71\"/>\n                    <string key=\"text\">Demo for Xcode.swift issue:\nhttps://github.com/mac-cain13/R.swift/issues/191\n</string>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                    <color key=\"textColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n            </subviews>\n            <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n            <point key=\"canvasLocation\" x=\"304\" y=\"380\"/>\n        </view>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/SceneDelegate.swift",
    "content": "//\n//  SceneDelegate.swift\n//  ResourceApp\n//\n//  Created by Tom Lokhorst on 2020-04-20.\n//  Copyright © 2020 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\n@available(iOS 13.0, *)\nclass SceneDelegate: UIResponder, UIWindowSceneDelegate {\n\n  var window: UIWindow?\n\n\n  func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {\n    // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.\n    // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.\n    // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).\n\n    // Use a UIHostingController as window root view controller.\n    if let windowScene = scene as? UIWindowScene {\n      let tabController = R.storyboard.main.instantiateInitialViewController()!\n\n      let window = UIWindow(windowScene: windowScene)\n      window.rootViewController = tabController\n\n      self.window = window\n      window.makeKeyAndVisible()\n    }\n  }\n\n  func sceneDidDisconnect(_ scene: UIScene) {\n    // Called as the scene is being released by the system.\n    // This occurs shortly after the scene enters the background, or when its session is discarded.\n    // Release any resources associated with this scene that can be re-created the next time the scene connects.\n    // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).\n  }\n\n  func sceneDidBecomeActive(_ scene: UIScene) {\n    // Called when the scene has moved from an inactive state to an active state.\n    // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.\n  }\n\n  func sceneWillResignActive(_ scene: UIScene) {\n    // Called when the scene will move from an active state to an inactive state.\n    // This may occur due to temporary interruptions (ex. an incoming phone call).\n  }\n\n  func sceneWillEnterForeground(_ scene: UIScene) {\n    // Called as the scene transitions from the background to the foreground.\n    // Use this method to undo the changes made on entering the background.\n  }\n\n  func sceneDidEnterBackground(_ scene: UIScene) {\n    // Called as the scene transitions from the foreground to the background.\n    // Use this method to save data, release shared resources, and store enough scene-specific state information\n    // to restore the scene back to its current state.\n  }\n\n\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/SecondViewController.swift",
    "content": "//\n//  SecondViewController.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 20-07-15.\n//  Copyright (c) 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\nclass SecondViewController: UIViewController {\n\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    // Do any additional setup after loading the view, typically from a nib.\n\n    let _ = MyViewController(nib: R.nib.myView)\n  }\n\n  override func didReceiveMemoryWarning() {\n    super.didReceiveMemoryWarning()\n    // Dispose of any resources that can be recreated.\n  }\n\n  @IBAction func unwindSomethingSomthing(_ segue: UIStoryboardSegue) {\n\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/SegueIdentifiers.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_1\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"Elh-lG-SSX\">\n            <objects>\n                <viewController storyboardIdentifier=\"fooController\" id=\"HrG-n6-FlD\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"vwT-hP-vDh\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"roundedRect\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ng3-RU-Omo\">\n                                <rect key=\"frame\" x=\"179.5\" y=\"433\" width=\"55\" height=\"30\"/>\n                                <state key=\"normal\" title=\"Tap me!\"/>\n                                <connections>\n                                    <segue destination=\"ZNm-In-nYu\" kind=\"show\" identifier=\"\" id=\"caA-qX-mBE\"/>\n                                </connections>\n                            </button>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstItem=\"ng3-RU-Omo\" firstAttribute=\"centerX\" secondItem=\"vwT-hP-vDh\" secondAttribute=\"centerX\" id=\"3d8-jg-zUX\"/>\n                            <constraint firstItem=\"ng3-RU-Omo\" firstAttribute=\"centerY\" secondItem=\"vwT-hP-vDh\" secondAttribute=\"centerY\" id=\"Oul-Jw-qVS\"/>\n                        </constraints>\n                        <viewLayoutGuide key=\"safeArea\" id=\"X6S-rH-NiE\"/>\n                    </view>\n                    <connections>\n                        <segue destination=\"3xr-4N-OFV\" kind=\"show\" identifier=\"goToBaz\" id=\"2ar-g5-qcn\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"ZFb-TE-cAg\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-467\" y=\"84\"/>\n        </scene>\n        <!--View Controller-->\n        <scene sceneID=\"ojs-Ki-Ii5\">\n            <objects>\n                <viewController storyboardIdentifier=\"barController\" id=\"ZNm-In-nYu\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"NNW-lF-hGd\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"wPw-97-s3b\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"xXW-ou-FAU\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"380\" y=\"-427\"/>\n        </scene>\n        <!--View Controller-->\n        <scene sceneID=\"inW-58-91J\">\n            <objects>\n                <viewController storyboardIdentifier=\"bazController\" id=\"3xr-4N-OFV\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"NY0-ZZ-TOt\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"fOE-qb-xRY\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"WjL-NR-bo9\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"381\" y=\"269\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Settings.bundle/Root.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>StringsTable</key>\n\t<string>Root</string>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Group</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSTextFieldSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Name</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>name_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<string></string>\n\t\t\t<key>IsSecure</key>\n\t\t\t<false/>\n\t\t\t<key>KeyboardType</key>\n\t\t\t<string>Alphabet</string>\n\t\t\t<key>AutocapitalizationType</key>\n\t\t\t<string>None</string>\n\t\t\t<key>AutocorrectionType</key>\n\t\t\t<string>No</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSToggleSwitchSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Enabled</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>enabled_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSSliderSpecifier</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>slider_preference</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<real>0.5</real>\n\t\t\t<key>MinimumValue</key>\n\t\t\t<integer>0</integer>\n\t\t\t<key>MaximumValue</key>\n\t\t\t<integer>1</integer>\n\t\t\t<key>MinimumValueImage</key>\n\t\t\t<string></string>\n\t\t\t<key>MaximumValueImage</key>\n\t\t\t<string></string>\n\t\t</dict>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Specials.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_1\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--GLKit View Controller-->\n        <scene sceneID=\"oaa-SX-d3J\">\n            <objects>\n                <glkViewController storyboardIdentifier=\"glkVC\" preferredFramesPerSecond=\"30\" id=\"dwB-A3-SIq\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"RI7-Yo-hsa\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"AUx-2k-79R\"/>\n                    </layoutGuides>\n                    <glkView key=\"view\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" enableSetNeedsDisplay=\"NO\" id=\"RuM-p3-cNM\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <connections>\n                            <outlet property=\"delegate\" destination=\"dwB-A3-SIq\" id=\"RB8-Mm-LrX\"/>\n                        </connections>\n                    </glkView>\n                </glkViewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"QUP-W3-Reu\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"80\" y=\"157\"/>\n        </scene>\n        <!--AV Player View Controller-->\n        <scene sceneID=\"zIo-74-upb\">\n            <objects>\n                <avPlayerViewController storyboardIdentifier=\"avpVC\" videoGravity=\"AVLayerVideoGravityResizeAspect\" id=\"XiG-bv-YXF\" sceneMemberID=\"viewController\"/>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"Xw8-wH-Wfi\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"768\" y=\"421\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/@@.strings",
    "content": "/* \n  @@.strings\n  ResourceApp\n\n  Created by Tom Lokhorst on 2016-04-17.\n  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n*/\n\n\"at\" = \"@\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/Base.lproj/Settings.strings",
    "content": "/* \n  Settings.strings\n  ResourceApp\n\n  Created by Tom Lokhorst on 2016-04-17.\n  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n*/\n\n\"Title\" = \"Settings\";\n\n\"Not translated\" = \"Base language; Not translated\";\n\n\"Multiline\t\\\\key/\n\\\"weird\\\"?!\" = \"ABC\n\\\"\\\\DEF/\\\"\nGHI Base\";\n\"Copy.Progress\" = \"%1$d of %2$i files copied, %3$f.2%% completed.\";\n\"We need a couple things\\r\\nbefore you get started.\" = \"We need a couple things\\r\\nbefore you get started.\";\n\n\"FormatSpecifiers1\" = \"number 1: %d, number 2: %i, string 3: %@\";\n\"FormatSpecifiers2\" = \"string 3: %3$@, number 2: %2$d, number 1: %1$i\";\n\"FormatSpecifiers3\" = \"Nothing\";\n\"FormatSpecifiers4\" = \"number 1: %1$d\";\n\"FormatSpecifiers5\" = \"number 1: %d, string 3: %@\";\n\"FormatSpecifiers6\" = \"number 1: %1$i, string 3: %3$@\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/Base.lproj/Settings.stringsdict",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--\n   Localizable.stringsdict.plist\n   ResourceApp\n\n   Created by Tom Lokhorst on 2016-04-24.\n   Copyright (c) 2016 Mathijs Kadijk. All rights reserved.\n-->\n<!-- Example from: https://www.objc.io/issues/9-strings/string-localization/ -->\n<plist version=\"1.0\">\n  <dict>\n    <key>scope.%lu out of %lu runs</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>%1$#@lu_completed_runs@</string>\n      <key>lu_completed_runs</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>lu</string>\n        <key>zero</key>\n        <string>No runs completed yet</string>\n        <key>one</key>\n        <string>One %2$#@lu_total_runs@</string>\n        <key>other</key>\n        <string>%lu %2$#@lu_total_runs@</string>\n      </dict>\n      <key>lu_total_runs</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>lu</string>\n        <key>one</key>\n        <string>run completed</string>\n        <key>other</key>\n        <string>of %lu runs completed</string>\n      </dict>\n    </dict>\n\n    <key>mismatch</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Base %#@first@</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>other</key>\n        <string>%d</string>\n      </dict>\n    </dict>\n\n    <key>incorrect in dutch</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Base %#@first@</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>other</key>\n        <string>%d</string>\n      </dict>\n    </dict>\n  </dict>\n</plist>"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/Duplicate#.strings",
    "content": "/* \n  Duplicate_.strings\n  ResourceApp\n\n  Created by Tom Lokhorst on 2016-04-17.\n  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n*/\n\n\"duplicate2\" = \"Duplicate 2\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/Duplicate.strings",
    "content": "/* \n  Duplicate.strings\n  ResourceApp\n\n  Created by Tom Lokhorst on 2016-04-17.\n  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n*/\n\n\"duplicate1\" = \"Duplicate 1\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/Generic.strings",
    "content": "/* \n  Generic.strings\n  ResourceApp\n\n  Created by Tom Lokhorst on 2016-04-17.\n  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n*/\n\n\"loremipsum\" = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\";\n\"#\" = \"hashtag\";\n\"precision1\" = \"one   - %012.2f\";\n\"precision2\" = \"two   - %12.2f\";\n\"precision3\" = \"three - %12.4f\";\n\"precision4\" = \"four  - %.2f\";\n\"discount10\" = \"Today, 10%% off!\";\n\"discountX\" = \"Today, %d%% off!\";\n\"url\" = \"http%%3A%%2F%%2Fwww.abc.xyz\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/Generic.stringsdict",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--\n   Generic.stringsdict.plist\n   ResourceApp\n\n   Created by Tom Lokhorst on 2016-04-25.\n   Copyright (c) 2016 Mathijs Kadijk. All rights reserved.\n-->\n<plist version=\"1.0\">\n  <dict>\n\n    <key>correct alpha</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Alpha (| %#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Alpha</string>\n        <key>one</key>\n        <string>One Alpha</string>\n        <key>other</key>\n        <string>Other Alpha: %d</string>\n      </dict>\n    </dict>\n\n    <key>correct beta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Beta (| %#@first@ x %#@second@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Beta.first</string>\n        <key>other</key>\n        <string>Other Beta.first: %d</string>\n      </dict>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Beta.second</string>\n        <key>other</key>\n        <string>Other Beta.second: %d</string>\n      </dict>\n    </dict>\n\n    <key>correct gamma</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Gamma (| %2$#@second@ x %1$#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Gamma.first</string>\n        <key>other</key>\n        <string>Other Gamma.first: %d</string>\n      </dict>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Gamma.second</string>\n        <key>other</key>\n        <string>Other Gamma.second: %d</string>\n      </dict>\n    </dict>\n\n    <key>correct delta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Delta (| %#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Delta.first (%d). Second: %#@second@</string>\n        <key>other</key>\n        <string>Other Delta.first: %d. Second: %#@second@</string>\n      </dict>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Delta.second</string>\n        <key>other</key>\n        <string>Other Delta.second: %d</string>\n      </dict>\n    </dict>\n\n    <key>correct epsilon</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Epsilon (| %#@first@ |)</string>\n\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Epsilon.first (%d). Second: %#@second@</string>\n        <key>other</key>\n        <string>Other Epsilon.first: %d. Second: %#@second@</string>\n      </dict>\n\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Epsilon.second</string>\n        <key>other</key>\n        <string>Other Epsilon.second: %d</string>\n      </dict>\n    </dict>\n\n    <key>correct zeta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Zeta (| %@ %2$#@second@ |)</string>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Zeta.second.</string>\n        <key>other</key>\n        <string>Other Zeta.second: %d.</string>\n      </dict>\n    </dict>\n\n    <key>correct eta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Eta (| %@ - %#@second@ - %d|)</string>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Eta.second.</string>\n        <key>other</key>\n        <string>Other Eta.second: %d.</string>\n      </dict>\n    </dict>\n\n    <key>correct theta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Theta (| %#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Theta.first</string>\n        <key>other</key>\n        <string>Other Theta.first: %d. %#@second@</string>\n      </dict>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Theta.second</string>\n        <key>other</key>\n        <string>Other Theta.second: %d. %#@third@</string>\n      </dict>\n      <key>third</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Theta.third</string>\n        <key>other</key>\n        <string>Other Theta.third: %d</string>\n      </dict>\n    </dict>\n\n    <key>fault alpha</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Alpha (| %#@missing@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Alpha</string>\n        <key>one</key>\n        <string>One Alpha</string>\n        <key>other</key>\n        <string>Other Alpha: %d</string>\n      </dict>\n    </dict>\n\n    <key>fault beta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Beta (| %#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Beta.first %u</string>\n        <key>other</key>\n        <string>Other Beta.first: %d</string>\n      </dict>\n    </dict>\n\n    <key>fault gamma</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Gamma (| %1$#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Gamma.first</string>\n        <key>other</key>\n        <string>Other Gamma.first: %lu</string>\n      </dict>\n    </dict>\n\n    <key>fault delta</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Delta (| %#@first@ |)</string>\n      <key>first</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>one</key>\n        <string>One Delta.first. Second: %#@missing@</string>\n        <key>other</key>\n        <string>Other Delta.first: %d. Second: %#@missing@</string>\n      </dict>\n    </dict>\n\n    <key>fault epsilon</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Pre Epsilon (| %#@second@ |)</string>\n      <key>second</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>zero</key>\n        <string>Zero Epsilon.second. First: %1$#@first_two@</string>\n        <key>other</key>\n        <string>Other Epsilon.second: %d. First: %1$#@first_one@</string>\n      </dict>\n    </dict>\n\n    <key>Welcome</key>\n    <dict>\n      <key>NSStringVariableWidthRuleType</key>\n      <dict>\n        <key>100</key>\n        <string>Hi</string>\n        <key>200</key>\n        <string>Welcome</string>\n        <key>300</key>\n        <string>Welcome to the store!</string>\n      </dict>\n    </dict>\n  </dict>\n</plist>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/en.lproj/Localizable.strings",
    "content": "//\n//  Localizable.strings\n//  ResourceApp\n//\n//  Created by Nolan Warner on 2016/03/01.\n//  Copyright © 2016 Nolan Warner. All rights reserved.\n//\n\none = Zero; // Duplicate keys are ignored, a warning from R.swift would be nice\none = One;\ntwo = 2;\n\n\"quote\" = \"There are %d lights!\";\n\"discount10\" = \"Today, 10%% off!\";\n\"discountX\" = \"Today, %d%% off!\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/es.lproj/Localizable.strings",
    "content": "//\n//  Localizable.strings\n//  ResourceApp\n//\n//  Created by Nolan Warner on 2016/03/01.\n//  Copyright © 2016 Nolan Warner. All rights reserved.\n//\n\n\none = Uno;\ntwo = 2;\n\n\"quote\" = \"Hay %d luces!\";\n\"discount10\" = \"Today, 10%% off!\";\n\"discountX\" = \"Today, %d%% off!\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/ja.lproj/Localizable.strings",
    "content": "//\n//  Localizable.strings\n//  ResourceApp\n//\n//  Created by Nolan Warner on 2016/03/01.\n//  Copyright © 2016 Nolan Warner. All rights reserved.\n//\n\n\none = \"一つ\";\ntwo = 2;\n\n\"quote\" = \"%dつの光があります！\";\n\"discount10\" = \"Today, 10%% off!\";\n\"discountX\" = \"Today, %d%% off!\";\n\"japanese only\" = \"Not translated in other languages, and there is no Base\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/nl.lproj/Settings.strings",
    "content": "/* \n  Settings.strings\n  ResourceApp\n\n  Created by Tom Lokhorst on 2016-04-17.\n  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n*/\n\n\"Title\" = \"Instellingen\";\n\n\"Only Dutch\" = \"Alleen Nederlands. Doesn't apepar in Base translation\";\n\n\"Multiline\t\\\\key/\n\\\"weird\\\"?!\" = \"ABC\n\\\"\\\\DEF/\\\"\nGHI Dutch\";\n\"Copy.Progress\" = \"Van de %2$d bestanden zijn er %1$d gekopieerd, %3$.2f%% compleet.\";\n\"We need a couple things\\r\\nbefore you get started.\" = \"We hebben een aantal dingen nodig\\r\\nvoordat je begint.\";\n\n\"FormatSpecifiers1\" = \"number 1: %d, number 2: %i\";\n\"FormatSpecifiers2\" = \"string 3: %3$@, number 1: %1$i\";\n\"FormatSpecifiers3\" = \"number 2: %2$d, string 3: %3$@, number 1: %1$i\";\n\"FormatSpecifiers4\" = \"number 1: %d, number 2: %i, string 3: %@\";\n\"FormatSpecifiers5\" = \"number 1: %d, number 2: %i, string 3: %@\";\n\"FormatSpecifiers6\" = \"number 1: %1$i, string 3: %3$@\";\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Strings/nl.lproj/Settings.stringsdict",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<!--\n   Localizable.stringsdict.plist\n   ResourceApp\n\n   Created by Tom Lokhorst on 2016-04-24.\n   Copyright (c) 2016 Mathijs Kadijk. All rights reserved.\n-->\n<!-- Example from: https://www.objc.io/issues/9-strings/string-localization/ -->\n<plist version=\"1.0\">\n  <dict>\n    <key>scope.%lu out of %lu runs</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>%1$#@lu_completed_runs@</string>\n      <key>lu_completed_runs</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>lu</string>\n        <key>zero</key>\n        <string>Geen rondes afgerond</string>\n        <key>one</key>\n        <string>Één %2$#@lu_total_runs@</string>\n        <key>other</key>\n        <string>%lu %2$#@lu_total_runs@</string>\n      </dict>\n      <key>lu_total_runs</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>lu</string>\n        <key>one</key>\n        <string>ronde afgerond</string>\n        <key>other</key>\n        <string>van de %lu rondes afgerond</string>\n      </dict>\n    </dict>\n\n    <key>mismatch</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Nederlands %#@eerste@</string>\n      <key>eerste</key>\n      <dict>\n        <key>NSStringFormatSpecTypeKey</key>\n        <string>NSStringPluralRuleType</string>\n        <key>NSStringFormatValueTypeKey</key>\n        <string>d</string>\n        <key>other</key>\n        <string>%d</string>\n      </dict>\n    </dict>\n\n    <key>incorrect in dutch</key>\n    <dict>\n      <key>NSStringLocalizedFormatKey</key>\n      <string>Nederalnds %#@first@</string>\n    </dict>\n  </dict>\n</plist>"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/SupplementaryElement.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_1\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <collectionReusableView opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" restorationIdentifier=\"SupplementaryElement\" reuseIdentifier=\"SupplementaryElement\" id=\"1gU-UE-1eW\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"50\"/>\n            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n            <point key=\"canvasLocation\" x=\"550\" y=\"77\"/>\n        </collectionReusableView>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/TabBarItem.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_1\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--Item-->\n        <scene sceneID=\"kV3-3f-uTy\">\n            <objects>\n                <viewController id=\"n5a-DO-Hpk\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"BeB-20-Kyk\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"djj-2M-vFE\"/>\n                    </view>\n                    <tabBarItem key=\"tabBarItem\" title=\"Item\" id=\"S7E-R5-eaQ\">\n                        <userDefinedRuntimeAttributes>\n                            <userDefinedRuntimeAttribute type=\"string\" keyPath=\"accessibilityIdentifier\" value=\"tabBarItem\"/>\n                        </userDefinedRuntimeAttributes>\n                    </tabBarItem>\n                    <simulatedTabBarMetrics key=\"simulatedBottomBarMetrics\"/>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iNP-U2-061\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"330\" y=\"-313\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/WhitespaceReuseIdentifer.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"9532\" systemVersion=\"15D21\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"9530\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\" \" id=\"yTq-Bk-xQX\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"44\"/>\n            <autoresizingMask key=\"autoresizingMask\"/>\n            <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"yTq-Bk-xQX\" id=\"xgh-Yx-L0w\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"43\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n            </tableViewCellContentView>\n            <point key=\"canvasLocation\" x=\"306\" y=\"385\"/>\n        </tableViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp/Xib with ViewController.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"14490.70\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina6_1\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14490.49\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <viewController id=\"6lp-Ql-5bv\" customClass=\"FirstViewController\" customModule=\"ResourceApp\" customModuleProvider=\"target\">\n            <layoutGuides>\n                <viewControllerLayoutGuide type=\"top\" id=\"eTw-4b-dIl\"/>\n                <viewControllerLayoutGuide type=\"bottom\" id=\"Vlc-QB-kZj\"/>\n            </layoutGuides>\n            <view key=\"view\" contentMode=\"scaleToFill\" id=\"6cb-9m-arb\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                <subviews>\n                    <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" fixedFrame=\"YES\" text=\"Another view that refers to FirstViewController\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"0Pv-oh-uAh\">\n                        <rect key=\"frame\" x=\"10\" y=\"28\" width=\"354\" height=\"21\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                        <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                        <nil key=\"textColor\"/>\n                        <nil key=\"highlightedColor\"/>\n                    </label>\n                    <button opaque=\"NO\" contentMode=\"scaleToFill\" fixedFrame=\"YES\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"roundedRect\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"iv9-w2-Jys\">\n                        <rect key=\"frame\" x=\"147\" y=\"193\" width=\"46\" height=\"30\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                        <state key=\"normal\" title=\"Button\"/>\n                    </button>\n                    <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" fixedFrame=\"YES\" text=\"title label\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"4gQ-iR-0Gr\">\n                        <rect key=\"frame\" x=\"10\" y=\"72\" width=\"70\" height=\"21\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                        <accessibility key=\"accessibilityConfiguration\" identifier=\"Some Title label\"/>\n                        <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                        <nil key=\"textColor\"/>\n                        <nil key=\"highlightedColor\"/>\n                    </label>\n                </subviews>\n                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n            </view>\n            <connections>\n                <outlet property=\"titleLabel\" destination=\"4gQ-iR-0Gr\" id=\"sQ1-d8-AmE\"/>\n            </connections>\n            <point key=\"canvasLocation\" x=\"10\" y=\"-87\"/>\n        </viewController>\n        <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"roundedRect\" lineBreakMode=\"middleTruncation\" id=\"bmk-oJ-WgQ\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"106\" height=\"30\"/>\n            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n            <accessibility key=\"accessibilityConfiguration\" identifier=\"RandomButton\"/>\n            <state key=\"normal\" title=\"Random button\"/>\n            <point key=\"canvasLocation\" x=\"302\" y=\"-136\"/>\n        </button>\n    </objects>\n</document>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp.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\t5D1AFAB11C858637003FE7AB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5D1AFAAF1C858637003FE7AB /* Localizable.strings */; };\n\t\t5D9E41341C96918E002172D3 /* StringsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D9E41331C96918E002172D3 /* StringsTests.swift */; };\n\t\tA3D0897420CF6FDA007ED462 /* Keep.dont.ignoreme.png in Resources */ = {isa = PBXBuildFile; fileRef = A3D0897320CF6FDA007ED462 /* Keep.dont.ignoreme.png */; };\n\t\tA3D0897620CF6FE4007ED462 /* ExplicitInclude.ignoreme.png in Resources */ = {isa = PBXBuildFile; fileRef = A3D0897520CF6FE4007ED462 /* ExplicitInclude.ignoreme.png */; };\n\t\tC30DF7218982DFFDAFAD2A11 /* Pods_ResourceApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1867ABA7936CAD2320B248E1 /* Pods_ResourceApp.framework */; };\n\t\tC378DD7A1C68C2BF003598B8 /* SupplementaryElement.xib in Resources */ = {isa = PBXBuildFile; fileRef = C378DD791C68C2BF003598B8 /* SupplementaryElement.xib */; };\n\t\tCCBC9CB91EC4809D002F3D0E /* Images2.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CCBC9CB81EC4809D002F3D0E /* Images2.xcassets */; };\n\t\tCCBC9CBA1EC480A2002F3D0E /* Images2.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CCBC9CB81EC4809D002F3D0E /* Images2.xcassets */; };\n\t\tD50175BE1B5FEFD000DB8314 /* Secondary.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D50175BC1B5FEFD000DB8314 /* Secondary.storyboard */; };\n\t\tD5159E9E1BBC33680013F52A /* Colors@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D5159E9D1BBC33680013F52A /* Colors@2x.jpg */; };\n\t\tD5159EA01BBC37BC0013F52A /* Colors@3x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D5159E9F1BBC37BC0013F52A /* Colors@3x.jpg */; };\n\t\tD5159EA21BBD0BB40013F52A /* Colors~ipad@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D5159EA11BBD0BB40013F52A /* Colors~ipad@2x.jpg */; };\n\t\tD51E60C11BB13626004BB376 /* Colors.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D51E60C01BB13626004BB376 /* Colors.jpg */; };\n\t\tD51E60C51BB1E600004BB376 /* User@white.png in Resources */ = {isa = PBXBuildFile; fileRef = D51E60C21BB1E600004BB376 /* User@white.png */; };\n\t\tD51E60C61BB1E600004BB376 /* User@white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D51E60C31BB1E600004BB376 /* User@white@2x.png */; };\n\t\tD51E60C71BB1E600004BB376 /* User@white@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D51E60C41BB1E600004BB376 /* User@white@3x.png */; };\n\t\tD51F47231B8FAF9F0028BAFD /* NibTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D51F47221B8FAF9F0028BAFD /* NibTests.swift */; };\n\t\tD52725FC1C4A7C6A0005C8D4 /* Sky.tiff in Resources */ = {isa = PBXBuildFile; fileRef = D52725FB1C4A7C6A0005C8D4 /* Sky.tiff */; };\n\t\tD52725FE1C4BB6BC0005C8D4 /* References.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D52725FD1C4BB6BC0005C8D4 /* References.storyboard */; };\n\t\tD55C6CC01B5D757300301B0D /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55C6CBF1B5D757300301B0D /* FirstViewController.swift */; };\n\t\tD55C6CC21B5D757300301B0D /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55C6CC11B5D757300301B0D /* SecondViewController.swift */; };\n\t\tD55C6CC51B5D757300301B0D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D55C6CC31B5D757300301B0D /* Main.storyboard */; };\n\t\tD55C6CC71B5D757300301B0D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D55C6CC61B5D757300301B0D /* Images.xcassets */; };\n\t\tD55C6CCA1B5D757300301B0D /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = D55C6CC81B5D757300301B0D /* LaunchScreen.xib */; };\n\t\tD55C6CD61B5D757300301B0D /* ResourceAppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55C6CD51B5D757300301B0D /* ResourceAppTests.swift */; };\n\t\tD56DC7701C42A5E700623437 /* StoryboardTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56DC76F1C42A5E700623437 /* StoryboardTests.swift */; };\n\t\tD575E25D1B766CD800C22F0B /* My View.xib in Resources */ = {isa = PBXBuildFile; fileRef = D575E25C1B766CD800C22F0B /* My View.xib */; };\n\t\tD58AF2811B708CB300FB2A4E /* rswift.log in Resources */ = {isa = PBXBuildFile; fileRef = D50175BA1B5FEF6E00DB8314 /* rswift.log */; };\n\t\tD59A04641DF3223800B9F65F /* icon.ignoreme.png in Resources */ = {isa = PBXBuildFile; fileRef = D59A04631DF3223800B9F65F /* icon.ignoreme.png */; };\n\t\tD59A04661DF3225500B9F65F /* hand.ignoreme.png in Resources */ = {isa = PBXBuildFile; fileRef = D59A04651DF3225500B9F65F /* hand.ignoreme.png */; };\n\t\tD5AD5C911B78FC0500A8B96C /* duplicate.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5C901B78FC0500A8B96C /* duplicate.xib */; };\n\t\tD5AD5C941B78FC4E00A8B96C /* Duplicate.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5C931B78FC4E00A8B96C /* Duplicate.xib */; };\n\t\tD5AD5C971B7A7CDA00A8B96C /* duplicate.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5C961B7A7CDA00A8B96C /* duplicate.storyboard */; };\n\t\tD5AD5C991B7A7CE700A8B96C /* Duplicate.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5C981B7A7CE700A8B96C /* Duplicate.storyboard */; };\n\t\tD5AD5C9B1B7A8F4300A8B96C /* CellView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5C9A1B7A8F4300A8B96C /* CellView.xib */; };\n\t\tD5AD5C9D1B7A901F00A8B96C /* ADuplicateCellView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5C9C1B7A901F00A8B96C /* ADuplicateCellView.xib */; };\n\t\tD5AD5C9F1B7A924000A8B96C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5AD5C9E1B7A924000A8B96C /* AppDelegate.swift */; };\n\t\tD5AD5CA11B7A926200A8B96C /* DuplicateCellView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5AD5CA01B7A926200A8B96C /* DuplicateCellView.xib */; };\n\t\tD5B799851C1B8DB6009EA901 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D5B799841C1B8DB6009EA901 /* Settings.bundle */; };\n\t\tD5B799871C1B8DD2009EA901 /* Specials.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5B799861C1B8DD2009EA901 /* Specials.storyboard */; };\n\t\tD5BA2E5F1C90086C0025C9E3 /* CellCollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5BA2E5E1C90086C0025C9E3 /* CellCollectionView.xib */; };\n\t\tD5CBCE491B7682B800C5D96B /* MyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5CBCE481B7682B800C5D96B /* MyViewController.swift */; };\n\t\tD5D398EC20D43ADE00D67745 /* IgnoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D398EB20D43ADE00D67745 /* IgnoreTests.swift */; };\n\t\tD5DE480E1B5E1CC7000F6A85 /* R.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5DE480D1B5E1CC7000F6A85 /* R.generated.swift */; };\n\t\tD5E513BA1B8E111A0035ECAA /* AveriaLibre-B.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D5E513B51B8E111A0035ECAA /* AveriaLibre-B.ttf */; };\n\t\tD5E513BB1B8E111A0035ECAA /* AveriaLibre-BI.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D5E513B61B8E111A0035ECAA /* AveriaLibre-BI.ttf */; };\n\t\tD5E513BC1B8E111A0035ECAA /* AveriaLibre-L.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D5E513B71B8E111A0035ECAA /* AveriaLibre-L.ttf */; };\n\t\tD5E513BD1B8E111A0035ECAA /* AveriaLibre.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D5E513B81B8E111A0035ECAA /* AveriaLibre.ttf */; };\n\t\tD5E513BE1B8E111A0035ECAA /* GdyBkltter1911.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D5E513B91B8E111A0035ECAA /* GdyBkltter1911.ttf */; };\n\t\tD5E513C01B8E11810035ECAA /* FontsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E513BF1B8E11810035ECAA /* FontsTests.swift */; };\n\t\tD5EB32701B63AD6B005C7B47 /* ValidationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5EB326E1B63AD6B005C7B47 /* ValidationTests.swift */; };\n\t\tD5EE1B5622DEEF3E00A901EC /* TabBarItem.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5EE1B5522DEEF3E00A901EC /* TabBarItem.storyboard */; };\n\t\tD5F05D3F1BB3CDF3003AE55E /* The App Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D3E1BB3CDF3003AE55E /* The App Icon.png */; };\n\t\tD5F05D421BB52002003AE55E /* Some.json in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D411BB52002003AE55E /* Some.json */; };\n\t\tD5F05D441BB52063003AE55E /* Duplicate.json in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D431BB52063003AE55E /* Duplicate.json */; };\n\t\tD5F05D461BB52078003AE55E /* duplicateJson in Resources */ = {isa = PBXBuildFile; fileRef = D5F05D451BB52078003AE55E /* duplicateJson */; };\n\t\tD5F05D481BB520B1003AE55E /* FilesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5F05D471BB520B1003AE55E /* FilesTests.swift */; };\n\t\tD5FAD9091B63B05700ECE230 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D55C6CC61B5D757300301B0D /* Images.xcassets */; };\n\t\tDD0CD0C4232A950A00A555A3 /* SegueIdentifiers.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DD0CD0C3232A950A00A555A3 /* SegueIdentifiers.storyboard */; };\n\t\tE20983241D585E78005ACBAA /* SegueTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E20983231D585E78005ACBAA /* SegueTests.swift */; };\n\t\tE20983261D585F8C005ACBAA /* Xib with ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E20983251D585F8C005ACBAA /* Xib with ViewController.xib */; };\n\t\tE2156B631CC4042900F341DC /* Settings.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2156B651CC4042900F341DC /* Settings.strings */; };\n\t\tE2156B681CC41EB400F341DC /* Generic.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2156B671CC41EB400F341DC /* Generic.strings */; };\n\t\tE2156B6A1CC4292600F341DC /* Duplicate.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2156B691CC4292600F341DC /* Duplicate.strings */; };\n\t\tE2156B6C1CC4293000F341DC /* Duplicate#.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2156B6B1CC4293000F341DC /* Duplicate#.strings */; };\n\t\tE2156B6E1CC42B6700F341DC /* @@.strings in Resources */ = {isa = PBXBuildFile; fileRef = E2156B6D1CC42B6700F341DC /* @@.strings */; };\n\t\tE22070771C92E137007A090B /* WhitespaceReuseIdentifer.xib in Resources */ = {isa = PBXBuildFile; fileRef = E22070761C92E137007A090B /* WhitespaceReuseIdentifer.xib */; };\n\t\tE2562CD61EE70C68007D8938 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2562CD51EE70C68007D8938 /* Media.xcassets */; };\n\t\tE25984A122AEE89B00467E1E /* CustomSegue.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25984A022AEE89B00467E1E /* CustomSegue.swift */; };\n\t\tE2762AC01CCCDFDA0009BCAA /* Settings.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = E2762AC21CCCDFDA0009BCAA /* Settings.stringsdict */; };\n\t\tE2762AE01CCE62CC0009BCAA /* Generic.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = E2762ADF1CCE62CC0009BCAA /* Generic.stringsdict */; };\n\t\tE29693581CAD64B500401D53 /* __FILE__ in Resources */ = {isa = PBXBuildFile; fileRef = E29693571CAD64B500401D53 /* __FILE__ */; };\n\t\tE296935A1CAD64D100401D53 /* associatedtype in Resources */ = {isa = PBXBuildFile; fileRef = E29693591CAD64D100401D53 /* associatedtype */; };\n\t\tE296935C1CAD666200401D53 /* #column in Resources */ = {isa = PBXBuildFile; fileRef = E296935B1CAD666200401D53 /* #column */; };\n\t\tE2A10EF81CD13779006BFC63 /* RelativeToProject.xib in Resources */ = {isa = PBXBuildFile; fileRef = E2A10EF71CD13779006BFC63 /* RelativeToProject.xib */; };\n\t\tE2C415D028EED7890028D537 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E2C415CF28EED7890028D537 /* RswiftLibrary */; };\n\t\tE2CD68671D7CADEA00BEBE59 /* hello.txt in Resources */ = {isa = PBXBuildFile; fileRef = E2CD68641D7CACC100BEBE59 /* hello.txt */; };\n\t\tE2DB0EB02334DCC100815AAF /* InfoPlistTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2DB0EAF2334DCC100815AAF /* InfoPlistTests.swift */; };\n\t\tE2F768FC244D92A200761E14 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F768FB244D92A200761E14 /* SceneDelegate.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tD55C6CD01B5D757300301B0D /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = D55C6CB01B5D757300301B0D /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = D55C6CB71B5D757300301B0D;\n\t\t\tremoteInfo = ResourceApp;\n\t\t};\n\t\tE22C7596251235D900124573 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = E243EFA32510DFA600DC653F /* RswiftUI.xcodeproj */;\n\t\t\tproxyType = 2;\n\t\t\tremoteGlobalIDString = E243EFAD2510E08D00DC653F;\n\t\t\tremoteInfo = RswiftUIAppClip;\n\t\t};\n\t\tE243EFA72510DFA600DC653F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = E243EFA32510DFA600DC653F /* RswiftUI.xcodeproj */;\n\t\t\tproxyType = 2;\n\t\t\tremoteGlobalIDString = E243EF912510DF9100DC653F;\n\t\t\tremoteInfo = RswiftUI;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t2F5FBC3A2135561400A83A69 /* Embed Watch Content */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"$(CONTENTS_FOLDER_PATH)/Watch\";\n\t\t\tdstSubfolderSpec = 16;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tname = \"Embed Watch Content\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t1867ABA7936CAD2320B248E1 /* Pods_ResourceApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ResourceApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t41D4DA51D96C4F7DDF13157E /* Pods-ResourceApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-ResourceApp.release.xcconfig\"; path = \"Pods/Target Support Files/Pods-ResourceApp/Pods-ResourceApp.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t5D1AFAB01C858637003FE7AB /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t5D1AFAB21C858647003FE7AB /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t5D1AFAB31C85864F003FE7AB /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t5D9E41331C96918E002172D3 /* StringsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringsTests.swift; sourceTree = \"<group>\"; };\n\t\tA3D0897320CF6FDA007ED462 /* Keep.dont.ignoreme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Keep.dont.ignoreme.png; sourceTree = \"<group>\"; };\n\t\tA3D0897520CF6FE4007ED462 /* ExplicitInclude.ignoreme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ExplicitInclude.ignoreme.png; sourceTree = \"<group>\"; };\n\t\tBCFE901EE74D3A3CF9909E5D /* Pods-ResourceApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-ResourceApp.debug.xcconfig\"; path = \"Pods/Target Support Files/Pods-ResourceApp/Pods-ResourceApp.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tC378DD791C68C2BF003598B8 /* SupplementaryElement.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SupplementaryElement.xib; sourceTree = \"<group>\"; };\n\t\tCCBC9CB81EC4809D002F3D0E /* Images2.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images2.xcassets; sourceTree = \"<group>\"; };\n\t\tD50175BA1B5FEF6E00DB8314 /* rswift.log */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rswift.log; sourceTree = SOURCE_ROOT; };\n\t\tD50175BD1B5FEFD000DB8314 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Secondary.storyboard; sourceTree = \"<group>\"; };\n\t\tD5159E9D1BBC33680013F52A /* Colors@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = \"Colors@2x.jpg\"; sourceTree = \"<group>\"; };\n\t\tD5159E9F1BBC37BC0013F52A /* Colors@3x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = \"Colors@3x.jpg\"; sourceTree = \"<group>\"; };\n\t\tD5159EA11BBD0BB40013F52A /* Colors~ipad@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = \"Colors~ipad@2x.jpg\"; sourceTree = \"<group>\"; };\n\t\tD51E60C01BB13626004BB376 /* Colors.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = Colors.jpg; sourceTree = \"<group>\"; };\n\t\tD51E60C21BB1E600004BB376 /* User@white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"User@white.png\"; sourceTree = \"<group>\"; };\n\t\tD51E60C31BB1E600004BB376 /* User@white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"User@white@2x.png\"; sourceTree = \"<group>\"; };\n\t\tD51E60C41BB1E600004BB376 /* User@white@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"User@white@3x.png\"; sourceTree = \"<group>\"; };\n\t\tD51F47221B8FAF9F0028BAFD /* NibTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibTests.swift; sourceTree = \"<group>\"; };\n\t\tD52725FB1C4A7C6A0005C8D4 /* Sky.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Sky.tiff; sourceTree = \"<group>\"; };\n\t\tD52725FD1C4BB6BC0005C8D4 /* References.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = References.storyboard; sourceTree = \"<group>\"; };\n\t\tD55C6CB81B5D757300301B0D /* ResourceApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ResourceApp.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD55C6CBC1B5D757300301B0D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tD55C6CBF1B5D757300301B0D /* FirstViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = \"<group>\"; };\n\t\tD55C6CC11B5D757300301B0D /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = \"<group>\"; };\n\t\tD55C6CC41B5D757300301B0D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\tD55C6CC61B5D757300301B0D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = \"<group>\"; };\n\t\tD55C6CC91B5D757300301B0D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = \"<group>\"; };\n\t\tD55C6CCF1B5D757300301B0D /* ResourceAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ResourceAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD55C6CD41B5D757300301B0D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tD55C6CD51B5D757300301B0D /* ResourceAppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResourceAppTests.swift; sourceTree = \"<group>\"; };\n\t\tD56DC76F1C42A5E700623437 /* StoryboardTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardTests.swift; sourceTree = \"<group>\"; };\n\t\tD575E25C1B766CD800C22F0B /* My View.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = \"My View.xib\"; sourceTree = \"<group>\"; };\n\t\tD59A04631DF3223800B9F65F /* icon.ignoreme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.ignoreme.png; sourceTree = \"<group>\"; };\n\t\tD59A04651DF3225500B9F65F /* hand.ignoreme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hand.ignoreme.png; sourceTree = \"<group>\"; };\n\t\tD5AD5C901B78FC0500A8B96C /* duplicate.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = duplicate.xib; path = Duplicate/duplicate.xib; sourceTree = \"<group>\"; };\n\t\tD5AD5C931B78FC4E00A8B96C /* Duplicate.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Duplicate.xib; sourceTree = \"<group>\"; };\n\t\tD5AD5C961B7A7CDA00A8B96C /* duplicate.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = duplicate.storyboard; path = Duplicate/duplicate.storyboard; sourceTree = \"<group>\"; };\n\t\tD5AD5C981B7A7CE700A8B96C /* Duplicate.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Duplicate.storyboard; sourceTree = \"<group>\"; };\n\t\tD5AD5C9A1B7A8F4300A8B96C /* CellView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CellView.xib; sourceTree = \"<group>\"; };\n\t\tD5AD5C9C1B7A901F00A8B96C /* ADuplicateCellView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ADuplicateCellView.xib; path = ResourceApp/Duplicate/ADuplicateCellView.xib; sourceTree = SOURCE_ROOT; };\n\t\tD5AD5C9E1B7A924000A8B96C /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tD5AD5CA01B7A926200A8B96C /* DuplicateCellView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DuplicateCellView.xib; sourceTree = \"<group>\"; };\n\t\tD5B799841C1B8DB6009EA901 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.plug-in\"; path = Settings.bundle; sourceTree = \"<group>\"; };\n\t\tD5B799861C1B8DD2009EA901 /* Specials.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Specials.storyboard; sourceTree = \"<group>\"; };\n\t\tD5B799881C1B8F0C009EA901 /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = System/Library/Frameworks/AVKit.framework; sourceTree = SDKROOT; };\n\t\tD5BA2E5E1C90086C0025C9E3 /* CellCollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CellCollectionView.xib; sourceTree = \"<group>\"; };\n\t\tD5CBCE481B7682B800C5D96B /* MyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyViewController.swift; sourceTree = \"<group>\"; };\n\t\tD5D398EB20D43ADE00D67745 /* IgnoreTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IgnoreTests.swift; sourceTree = \"<group>\"; };\n\t\tD5DE480D1B5E1CC7000F6A85 /* R.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = R.generated.swift; sourceTree = SOURCE_ROOT; };\n\t\tD5E513B51B8E111A0035ECAA /* AveriaLibre-B.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = \"AveriaLibre-B.ttf\"; sourceTree = \"<group>\"; };\n\t\tD5E513B61B8E111A0035ECAA /* AveriaLibre-BI.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = \"AveriaLibre-BI.ttf\"; sourceTree = \"<group>\"; };\n\t\tD5E513B71B8E111A0035ECAA /* AveriaLibre-L.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = \"AveriaLibre-L.ttf\"; sourceTree = \"<group>\"; };\n\t\tD5E513B81B8E111A0035ECAA /* AveriaLibre.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = AveriaLibre.ttf; sourceTree = \"<group>\"; };\n\t\tD5E513B91B8E111A0035ECAA /* GdyBkltter1911.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = GdyBkltter1911.ttf; sourceTree = \"<group>\"; };\n\t\tD5E513BF1B8E11810035ECAA /* FontsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontsTests.swift; sourceTree = \"<group>\"; };\n\t\tD5EB326E1B63AD6B005C7B47 /* ValidationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationTests.swift; sourceTree = \"<group>\"; };\n\t\tD5EE1B5522DEEF3E00A901EC /* TabBarItem.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = TabBarItem.storyboard; sourceTree = \"<group>\"; };\n\t\tD5EE1B5722DEEFBF00A901EC /* R.UITest.generated.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = R.UITest.generated.swift; sourceTree = \"<group>\"; };\n\t\tD5F05D3E1BB3CDF3003AE55E /* The App Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"The App Icon.png\"; sourceTree = \"<group>\"; };\n\t\tD5F05D411BB52002003AE55E /* Some.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Some.json; sourceTree = \"<group>\"; };\n\t\tD5F05D431BB52063003AE55E /* Duplicate.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Duplicate.json; sourceTree = \"<group>\"; };\n\t\tD5F05D451BB52078003AE55E /* duplicateJson */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = duplicateJson; sourceTree = \"<group>\"; };\n\t\tD5F05D471BB520B1003AE55E /* FilesTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilesTests.swift; sourceTree = \"<group>\"; };\n\t\tDD0CD0C3232A950A00A555A3 /* SegueIdentifiers.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SegueIdentifiers.storyboard; sourceTree = \"<group>\"; };\n\t\tE20983231D585E78005ACBAA /* SegueTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegueTests.swift; sourceTree = \"<group>\"; };\n\t\tE20983251D585F8C005ACBAA /* Xib with ViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = \"Xib with ViewController.xib\"; sourceTree = \"<group>\"; };\n\t\tE2156B641CC4042900F341DC /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Settings.strings; sourceTree = \"<group>\"; };\n\t\tE2156B661CC4043C00F341DC /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Settings.strings; sourceTree = \"<group>\"; };\n\t\tE2156B671CC41EB400F341DC /* Generic.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Generic.strings; sourceTree = \"<group>\"; };\n\t\tE2156B691CC4292600F341DC /* Duplicate.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Duplicate.strings; sourceTree = \"<group>\"; };\n\t\tE2156B6B1CC4293000F341DC /* Duplicate#.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = \"Duplicate#.strings\"; sourceTree = \"<group>\"; };\n\t\tE2156B6D1CC42B6700F341DC /* @@.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = \"@@.strings\"; sourceTree = \"<group>\"; };\n\t\tE22070761C92E137007A090B /* WhitespaceReuseIdentifer.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WhitespaceReuseIdentifer.xib; sourceTree = \"<group>\"; };\n\t\tE243EFA32510DFA600DC653F /* RswiftUI.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.pb-project\"; name = RswiftUI.xcodeproj; path = ../RswiftUI/RswiftUI.xcodeproj; sourceTree = \"<group>\"; };\n\t\tE2562CD51EE70C68007D8938 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = \"<group>\"; };\n\t\tE25984A022AEE89B00467E1E /* CustomSegue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSegue.swift; sourceTree = \"<group>\"; };\n\t\tE2762AC11CCCDFDA0009BCAA /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = Base; path = Base.lproj/Settings.stringsdict; sourceTree = \"<group>\"; };\n\t\tE2762AC31CCCDFE10009BCAA /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/Settings.stringsdict; sourceTree = \"<group>\"; };\n\t\tE2762ADF1CCE62CC0009BCAA /* Generic.stringsdict */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.stringsdict; path = Generic.stringsdict; sourceTree = \"<group>\"; };\n\t\tE29693571CAD64B500401D53 /* __FILE__ */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = __FILE__; sourceTree = \"<group>\"; };\n\t\tE29693591CAD64D100401D53 /* associatedtype */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = associatedtype; sourceTree = \"<group>\"; };\n\t\tE296935B1CAD666200401D53 /* #column */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = \"#column\"; sourceTree = \"<group>\"; };\n\t\tE2A10EF71CD13779006BFC63 /* RelativeToProject.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RelativeToProject.xib; sourceTree = \"<group>\"; };\n\t\tE2C415CE28EED7580028D537 /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n\t\tE2CD68631D7CACC100BEBE59 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text; name = Base; path = Base.lproj/hello.txt; sourceTree = \"<group>\"; };\n\t\tE2CD68651D7CACCA00BEBE59 /* es */ = {isa = PBXFileReference; lastKnownFileType = text; name = es; path = es.lproj/hello.txt; sourceTree = \"<group>\"; };\n\t\tE2CD68661D7CACCB00BEBE59 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text; name = nl; path = nl.lproj/hello.txt; sourceTree = \"<group>\"; };\n\t\tE2DB0EAF2334DCC100815AAF /* InfoPlistTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoPlistTests.swift; sourceTree = \"<group>\"; };\n\t\tE2F768FB244D92A200761E14 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tD55C6CB51B5D757300301B0D /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC30DF7218982DFFDAFAD2A11 /* Pods_ResourceApp.framework in Frameworks */,\n\t\t\t\tE2C415D028EED7890028D537 /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD55C6CCC1B5D757300301B0D /* 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/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t065D32753EEB6C7AE2FA201F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5B799881C1B8F0C009EA901 /* AVKit.framework */,\n\t\t\t\t1867ABA7936CAD2320B248E1 /* Pods_ResourceApp.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t5D1AFAAC1C85859D003FE7AB /* Strings */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2156B6D1CC42B6700F341DC /* @@.strings */,\n\t\t\t\tE2156B691CC4292600F341DC /* Duplicate.strings */,\n\t\t\t\tE2156B6B1CC4293000F341DC /* Duplicate#.strings */,\n\t\t\t\tE2156B671CC41EB400F341DC /* Generic.strings */,\n\t\t\t\tE2762ADF1CCE62CC0009BCAA /* Generic.stringsdict */,\n\t\t\t\t5D1AFAAF1C858637003FE7AB /* Localizable.strings */,\n\t\t\t\tE2156B651CC4042900F341DC /* Settings.strings */,\n\t\t\t\tE2762AC21CCCDFDA0009BCAA /* Settings.stringsdict */,\n\t\t\t);\n\t\t\tpath = Strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6BD8864A6B6559C4D6F93D81 /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBCFE901EE74D3A3CF9909E5D /* Pods-ResourceApp.debug.xcconfig */,\n\t\t\t\t41D4DA51D96C4F7DDF13157E /* Pods-ResourceApp.release.xcconfig */,\n\t\t\t);\n\t\t\tname = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD51E60BF1BB13612004BB376 /* Images */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA3D0897320CF6FDA007ED462 /* Keep.dont.ignoreme.png */,\n\t\t\t\tD59A04631DF3223800B9F65F /* icon.ignoreme.png */,\n\t\t\t\tD52725FB1C4A7C6A0005C8D4 /* Sky.tiff */,\n\t\t\t\tD5F05D3E1BB3CDF3003AE55E /* The App Icon.png */,\n\t\t\t\tD51E60C01BB13626004BB376 /* Colors.jpg */,\n\t\t\t\tD5159E9D1BBC33680013F52A /* Colors@2x.jpg */,\n\t\t\t\tD5159EA11BBD0BB40013F52A /* Colors~ipad@2x.jpg */,\n\t\t\t\tD5159E9F1BBC37BC0013F52A /* Colors@3x.jpg */,\n\t\t\t\tD51E60C21BB1E600004BB376 /* User@white.png */,\n\t\t\t\tD51E60C31BB1E600004BB376 /* User@white@2x.png */,\n\t\t\t\tD51E60C41BB1E600004BB376 /* User@white@3x.png */,\n\t\t\t);\n\t\t\tpath = Images;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CAF1B5D757300301B0D = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2C415CD28EED7580028D537 /* Packages */,\n\t\t\t\tE243EFA32510DFA600DC653F /* RswiftUI.xcodeproj */,\n\t\t\t\tD5DE480D1B5E1CC7000F6A85 /* R.generated.swift */,\n\t\t\t\tD5EE1B5722DEEFBF00A901EC /* R.UITest.generated.swift */,\n\t\t\t\tD55C6CBA1B5D757300301B0D /* ResourceApp */,\n\t\t\t\tD55C6CD21B5D757300301B0D /* ResourceAppTests */,\n\t\t\t\tD55C6CB91B5D757300301B0D /* Products */,\n\t\t\t\t6BD8864A6B6559C4D6F93D81 /* Pods */,\n\t\t\t\t065D32753EEB6C7AE2FA201F /* Frameworks */,\n\t\t\t);\n\t\t\tindentWidth = 2;\n\t\t\tsourceTree = \"<group>\";\n\t\t\ttabWidth = 2;\n\t\t\tusesTabs = 0;\n\t\t};\n\t\tD55C6CB91B5D757300301B0D /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD55C6CB81B5D757300301B0D /* ResourceApp.app */,\n\t\t\t\tD55C6CCF1B5D757300301B0D /* ResourceAppTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CBA1B5D757300301B0D /* ResourceApp */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5B799841C1B8DB6009EA901 /* Settings.bundle */,\n\t\t\t\tA3D0897520CF6FE4007ED462 /* ExplicitInclude.ignoreme.png */,\n\t\t\t\tD59A04651DF3225500B9F65F /* hand.ignoreme.png */,\n\t\t\t\tD5AD5C961B7A7CDA00A8B96C /* duplicate.storyboard */,\n\t\t\t\tD5AD5C981B7A7CE700A8B96C /* Duplicate.storyboard */,\n\t\t\t\tD52725FD1C4BB6BC0005C8D4 /* References.storyboard */,\n\t\t\t\tD5B799861C1B8DD2009EA901 /* Specials.storyboard */,\n\t\t\t\tD5AD5C9E1B7A924000A8B96C /* AppDelegate.swift */,\n\t\t\t\tE25984A022AEE89B00467E1E /* CustomSegue.swift */,\n\t\t\t\tD55C6CBF1B5D757300301B0D /* FirstViewController.swift */,\n\t\t\t\tD5CBCE481B7682B800C5D96B /* MyViewController.swift */,\n\t\t\t\tDD0CD0C3232A950A00A555A3 /* SegueIdentifiers.storyboard */,\n\t\t\t\tD55C6CC11B5D757300301B0D /* SecondViewController.swift */,\n\t\t\t\tD55C6CC61B5D757300301B0D /* Images.xcassets */,\n\t\t\t\tCCBC9CB81EC4809D002F3D0E /* Images2.xcassets */,\n\t\t\t\tE2562CD51EE70C68007D8938 /* Media.xcassets */,\n\t\t\t\tD5AD5C9C1B7A901F00A8B96C /* ADuplicateCellView.xib */,\n\t\t\t\tD5BA2E5E1C90086C0025C9E3 /* CellCollectionView.xib */,\n\t\t\t\tD5AD5C9A1B7A8F4300A8B96C /* CellView.xib */,\n\t\t\t\tD5AD5C901B78FC0500A8B96C /* duplicate.xib */,\n\t\t\t\tD5AD5C931B78FC4E00A8B96C /* Duplicate.xib */,\n\t\t\t\tD5AD5CA01B7A926200A8B96C /* DuplicateCellView.xib */,\n\t\t\t\tD575E25C1B766CD800C22F0B /* My View.xib */,\n\t\t\t\tE2F768FB244D92A200761E14 /* SceneDelegate.swift */,\n\t\t\t\tC378DD791C68C2BF003598B8 /* SupplementaryElement.xib */,\n\t\t\t\tE22070761C92E137007A090B /* WhitespaceReuseIdentifer.xib */,\n\t\t\t\tE20983251D585F8C005ACBAA /* Xib with ViewController.xib */,\n\t\t\t\tD5EE1B5522DEEF3E00A901EC /* TabBarItem.storyboard */,\n\t\t\t\tD5F05D401BB51FEA003AE55E /* Files */,\n\t\t\t\tD5E513B41B8E10F90035ECAA /* Fonts */,\n\t\t\t\tD51E60BF1BB13612004BB376 /* Images */,\n\t\t\t\tD55C6CC81B5D757300301B0D /* LaunchScreen.xib */,\n\t\t\t\tE2CD68611D7CAC9200BEBE59 /* Localized */,\n\t\t\t\tD55C6CC31B5D757300301B0D /* Main.storyboard */,\n\t\t\t\tE2A10EF61CD13768006BFC63 /* Relative To Project */,\n\t\t\t\tD50175BC1B5FEFD000DB8314 /* Secondary.storyboard */,\n\t\t\t\t5D1AFAAC1C85859D003FE7AB /* Strings */,\n\t\t\t\tD55C6CBB1B5D757300301B0D /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = ResourceApp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CBB1B5D757300301B0D /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD55C6CBC1B5D757300301B0D /* Info.plist */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CD21B5D757300301B0D /* ResourceAppTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5F05D471BB520B1003AE55E /* FilesTests.swift */,\n\t\t\t\tD5E513BF1B8E11810035ECAA /* FontsTests.swift */,\n\t\t\t\tD5D398EB20D43ADE00D67745 /* IgnoreTests.swift */,\n\t\t\t\tE2DB0EAF2334DCC100815AAF /* InfoPlistTests.swift */,\n\t\t\t\tD51F47221B8FAF9F0028BAFD /* NibTests.swift */,\n\t\t\t\tD55C6CD51B5D757300301B0D /* ResourceAppTests.swift */,\n\t\t\t\tE20983231D585E78005ACBAA /* SegueTests.swift */,\n\t\t\t\tD56DC76F1C42A5E700623437 /* StoryboardTests.swift */,\n\t\t\t\t5D9E41331C96918E002172D3 /* StringsTests.swift */,\n\t\t\t\tD5EB326E1B63AD6B005C7B47 /* ValidationTests.swift */,\n\t\t\t\tD55C6CD31B5D757300301B0D /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = ResourceAppTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CD31B5D757300301B0D /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD50175BA1B5FEF6E00DB8314 /* rswift.log */,\n\t\t\t\tD55C6CD41B5D757300301B0D /* Info.plist */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD5E513B41B8E10F90035ECAA /* Fonts */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5E513B51B8E111A0035ECAA /* AveriaLibre-B.ttf */,\n\t\t\t\tD5E513B61B8E111A0035ECAA /* AveriaLibre-BI.ttf */,\n\t\t\t\tD5E513B71B8E111A0035ECAA /* AveriaLibre-L.ttf */,\n\t\t\t\tD5E513B81B8E111A0035ECAA /* AveriaLibre.ttf */,\n\t\t\t\tD5E513B91B8E111A0035ECAA /* GdyBkltter1911.ttf */,\n\t\t\t);\n\t\t\tpath = Fonts;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD5F05D401BB51FEA003AE55E /* Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5F05D451BB52078003AE55E /* duplicateJson */,\n\t\t\t\tD5F05D431BB52063003AE55E /* Duplicate.json */,\n\t\t\t\tD5F05D411BB52002003AE55E /* Some.json */,\n\t\t\t\tE29693571CAD64B500401D53 /* __FILE__ */,\n\t\t\t\tE29693591CAD64D100401D53 /* associatedtype */,\n\t\t\t\tE296935B1CAD666200401D53 /* #column */,\n\t\t\t);\n\t\t\tpath = Files;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFA42510DFA600DC653F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EFA82510DFA600DC653F /* RswiftUI.app */,\n\t\t\t\tE22C7597251235D900124573 /* RswiftUIAppClip.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2A10EF61CD13768006BFC63 /* Relative To Project */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2A10EF71CD13779006BFC63 /* RelativeToProject.xib */,\n\t\t\t);\n\t\t\tname = \"Relative To Project\";\n\t\t\tpath = \"ResourceApp/Relative To Project\";\n\t\t\tsourceTree = SOURCE_ROOT;\n\t\t};\n\t\tE2C415CD28EED7580028D537 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2C415CE28EED7580028D537 /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2CD68611D7CAC9200BEBE59 /* Localized */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2CD68641D7CACC100BEBE59 /* hello.txt */,\n\t\t\t);\n\t\t\tpath = Localized;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tD55C6CB71B5D757300301B0D /* ResourceApp */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = D55C6CD91B5D757300301B0D /* Build configuration list for PBXNativeTarget \"ResourceApp\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t978E4B8123C372F370555011 /* [CP] Check Pods Manifest.lock */,\n\t\t\t\tD55C6CED1B5E172900301B0D /* R.swift */,\n\t\t\t\tD55C6CB41B5D757300301B0D /* Sources */,\n\t\t\t\tD55C6CB51B5D757300301B0D /* Frameworks */,\n\t\t\t\tD55C6CB61B5D757300301B0D /* Resources */,\n\t\t\t\t89BF8D4EC08D38DB6564C369 /* [CP] Embed Pods Frameworks */,\n\t\t\t\t2F5FBC3A2135561400A83A69 /* Embed Watch Content */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = ResourceApp;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE2C415CF28EED7890028D537 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = ResourceApp;\n\t\t\tproductReference = D55C6CB81B5D757300301B0D /* ResourceApp.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tD55C6CCE1B5D757300301B0D /* ResourceAppTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = D55C6CDC1B5D757300301B0D /* Build configuration list for PBXNativeTarget \"ResourceAppTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tD55C6CCB1B5D757300301B0D /* Sources */,\n\t\t\t\tD55C6CCC1B5D757300301B0D /* Frameworks */,\n\t\t\t\tD55C6CCD1B5D757300301B0D /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tD55C6CD11B5D757300301B0D /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = ResourceAppTests;\n\t\t\tproductName = ResourceAppTests;\n\t\t\tproductReference = D55C6CCF1B5D757300301B0D /* ResourceAppTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tD55C6CB01B5D757300301B0D /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tKnownAssetTags = (\n\t\t\t\t\tone,\n\t\t\t\t\ttwo,\n\t\t\t\t);\n\t\t\t\tLastSwiftMigration = 0700;\n\t\t\t\tLastSwiftUpdateCheck = 1000;\n\t\t\t\tLastUpgradeCheck = 1500;\n\t\t\t\tORGANIZATIONNAME = \"Mathijs Kadijk\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tD55C6CB71B5D757300301B0D = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 6.4;\n\t\t\t\t\t\tLastSwiftMigration = 1140;\n\t\t\t\t\t};\n\t\t\t\t\tD55C6CCE1B5D757300301B0D = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 6.4;\n\t\t\t\t\t\tLastSwiftMigration = 1140;\n\t\t\t\t\t\tTestTargetID = D55C6CB71B5D757300301B0D;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = D55C6CB31B5D757300301B0D /* Build configuration list for PBXProject \"ResourceApp\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\tEnglish,\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t\tes,\n\t\t\t\tja,\n\t\t\t\tnl,\n\t\t\t);\n\t\t\tmainGroup = D55C6CAF1B5D757300301B0D;\n\t\t\tproductRefGroup = D55C6CB91B5D757300301B0D /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectReferences = (\n\t\t\t\t{\n\t\t\t\t\tProductGroup = E243EFA42510DFA600DC653F /* Products */;\n\t\t\t\t\tProjectRef = E243EFA32510DFA600DC653F /* RswiftUI.xcodeproj */;\n\t\t\t\t},\n\t\t\t);\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tD55C6CB71B5D757300301B0D /* ResourceApp */,\n\t\t\t\tD55C6CCE1B5D757300301B0D /* ResourceAppTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXReferenceProxy section */\n\t\tE22C7597251235D900124573 /* RswiftUIAppClip.app */ = {\n\t\t\tisa = PBXReferenceProxy;\n\t\t\tfileType = wrapper.application;\n\t\t\tpath = RswiftUIAppClip.app;\n\t\t\tremoteRef = E22C7596251235D900124573 /* PBXContainerItemProxy */;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\tE243EFA82510DFA600DC653F /* RswiftUI.app */ = {\n\t\t\tisa = PBXReferenceProxy;\n\t\t\tfileType = wrapper.application;\n\t\t\tpath = RswiftUI.app;\n\t\t\tremoteRef = E243EFA72510DFA600DC653F /* PBXContainerItemProxy */;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n/* End PBXReferenceProxy section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tD55C6CB61B5D757300301B0D /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE296935C1CAD666200401D53 /* #column in Resources */,\n\t\t\t\tD5E513BB1B8E111A0035ECAA /* AveriaLibre-BI.ttf in Resources */,\n\t\t\t\tD5AD5C9B1B7A8F4300A8B96C /* CellView.xib in Resources */,\n\t\t\t\tD5159E9E1BBC33680013F52A /* Colors@2x.jpg in Resources */,\n\t\t\t\tD5E513BA1B8E111A0035ECAA /* AveriaLibre-B.ttf in Resources */,\n\t\t\t\tE2562CD61EE70C68007D8938 /* Media.xcassets in Resources */,\n\t\t\t\tD50175BE1B5FEFD000DB8314 /* Secondary.storyboard in Resources */,\n\t\t\t\tD5AD5C911B78FC0500A8B96C /* duplicate.xib in Resources */,\n\t\t\t\tD575E25D1B766CD800C22F0B /* My View.xib in Resources */,\n\t\t\t\tDD0CD0C4232A950A00A555A3 /* SegueIdentifiers.storyboard in Resources */,\n\t\t\t\tD5AD5C941B78FC4E00A8B96C /* Duplicate.xib in Resources */,\n\t\t\t\tE2CD68671D7CADEA00BEBE59 /* hello.txt in Resources */,\n\t\t\t\tD55C6CC51B5D757300301B0D /* Main.storyboard in Resources */,\n\t\t\t\tD5EE1B5622DEEF3E00A901EC /* TabBarItem.storyboard in Resources */,\n\t\t\t\tE29693581CAD64B500401D53 /* __FILE__ in Resources */,\n\t\t\t\tA3D0897420CF6FDA007ED462 /* Keep.dont.ignoreme.png in Resources */,\n\t\t\t\tA3D0897620CF6FE4007ED462 /* ExplicitInclude.ignoreme.png in Resources */,\n\t\t\t\tD5F05D461BB52078003AE55E /* duplicateJson in Resources */,\n\t\t\t\tE2156B6C1CC4293000F341DC /* Duplicate#.strings in Resources */,\n\t\t\t\tE2156B681CC41EB400F341DC /* Generic.strings in Resources */,\n\t\t\t\tE296935A1CAD64D100401D53 /* associatedtype in Resources */,\n\t\t\t\tD51E60C71BB1E600004BB376 /* User@white@3x.png in Resources */,\n\t\t\t\tD5B799851C1B8DB6009EA901 /* Settings.bundle in Resources */,\n\t\t\t\tD5B799871C1B8DD2009EA901 /* Specials.storyboard in Resources */,\n\t\t\t\tD5E513BD1B8E111A0035ECAA /* AveriaLibre.ttf in Resources */,\n\t\t\t\tD52725FE1C4BB6BC0005C8D4 /* References.storyboard in Resources */,\n\t\t\t\tE2156B6A1CC4292600F341DC /* Duplicate.strings in Resources */,\n\t\t\t\tE2762AE01CCE62CC0009BCAA /* Generic.stringsdict in Resources */,\n\t\t\t\tD5159EA01BBC37BC0013F52A /* Colors@3x.jpg in Resources */,\n\t\t\t\tD5F05D3F1BB3CDF3003AE55E /* The App Icon.png in Resources */,\n\t\t\t\t5D1AFAB11C858637003FE7AB /* Localizable.strings in Resources */,\n\t\t\t\tD5E513BC1B8E111A0035ECAA /* AveriaLibre-L.ttf in Resources */,\n\t\t\t\tD51E60C51BB1E600004BB376 /* User@white.png in Resources */,\n\t\t\t\tD55C6CCA1B5D757300301B0D /* LaunchScreen.xib in Resources */,\n\t\t\t\tC378DD7A1C68C2BF003598B8 /* SupplementaryElement.xib in Resources */,\n\t\t\t\tE2762AC01CCCDFDA0009BCAA /* Settings.stringsdict in Resources */,\n\t\t\t\tD5AD5C991B7A7CE700A8B96C /* Duplicate.storyboard in Resources */,\n\t\t\t\tD5BA2E5F1C90086C0025C9E3 /* CellCollectionView.xib in Resources */,\n\t\t\t\tD5AD5CA11B7A926200A8B96C /* DuplicateCellView.xib in Resources */,\n\t\t\t\tE2A10EF81CD13779006BFC63 /* RelativeToProject.xib in Resources */,\n\t\t\t\tE20983261D585F8C005ACBAA /* Xib with ViewController.xib in Resources */,\n\t\t\t\tD5F05D421BB52002003AE55E /* Some.json in Resources */,\n\t\t\t\tE2156B631CC4042900F341DC /* Settings.strings in Resources */,\n\t\t\t\tD5F05D441BB52063003AE55E /* Duplicate.json in Resources */,\n\t\t\t\tD59A04641DF3223800B9F65F /* icon.ignoreme.png in Resources */,\n\t\t\t\tD5159EA21BBD0BB40013F52A /* Colors~ipad@2x.jpg in Resources */,\n\t\t\t\tD5AD5C971B7A7CDA00A8B96C /* duplicate.storyboard in Resources */,\n\t\t\t\tCCBC9CB91EC4809D002F3D0E /* Images2.xcassets in Resources */,\n\t\t\t\tD59A04661DF3225500B9F65F /* hand.ignoreme.png in Resources */,\n\t\t\t\tD5AD5C9D1B7A901F00A8B96C /* ADuplicateCellView.xib in Resources */,\n\t\t\t\tD55C6CC71B5D757300301B0D /* Images.xcassets in Resources */,\n\t\t\t\tD52725FC1C4A7C6A0005C8D4 /* Sky.tiff in Resources */,\n\t\t\t\tD5E513BE1B8E111A0035ECAA /* GdyBkltter1911.ttf in Resources */,\n\t\t\t\tD51E60C61BB1E600004BB376 /* User@white@2x.png in Resources */,\n\t\t\t\tE2156B6E1CC42B6700F341DC /* @@.strings in Resources */,\n\t\t\t\tD51E60C11BB13626004BB376 /* Colors.jpg in Resources */,\n\t\t\t\tE22070771C92E137007A090B /* WhitespaceReuseIdentifer.xib in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD55C6CCD1B5D757300301B0D /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD5FAD9091B63B05700ECE230 /* Images.xcassets in Resources */,\n\t\t\t\tD58AF2811B708CB300FB2A4E /* rswift.log in Resources */,\n\t\t\t\tCCBC9CBA1EC480A2002F3D0E /* Images2.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t89BF8D4EC08D38DB6564C369 /* [CP] Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${PODS_ROOT}/Target Support Files/Pods-ResourceApp/Pods-ResourceApp-frameworks.sh\",\n\t\t\t\t\"${BUILT_PRODUCTS_DIR}/SWRevealViewController/SWRevealViewController.framework\",\n\t\t\t);\n\t\t\tname = \"[CP] Embed Pods Frameworks\";\n\t\t\toutputPaths = (\n\t\t\t\t\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SWRevealViewController.framework\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${PODS_ROOT}/Target Support Files/Pods-ResourceApp/Pods-ResourceApp-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t978E4B8123C372F370555011 /* [CP] Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${PODS_PODFILE_DIR_PATH}/Podfile.lock\",\n\t\t\t\t\"${PODS_ROOT}/Manifest.lock\",\n\t\t\t);\n\t\t\tname = \"[CP] Check Pods Manifest.lock\";\n\t\t\toutputPaths = (\n\t\t\t\t\"$(DERIVED_FILE_DIR)/Pods-ResourceApp-checkManifestLockResult.txt\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_PODFILE_DIR_PATH}/Podfile.lock\\\" \\\"${PODS_ROOT}/Manifest.lock\\\" > /dev/null\\nif [ $? != 0 ] ; then\\n    # print error to STDERR\\n    echo \\\"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\\" >&2\\n    exit 1\\nfi\\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\\necho \\\"SUCCESS\\\" > \\\"${SCRIPT_OUTPUT_FILE_0}\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\tD55C6CED1B5E172900301B0D /* R.swift */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = R.swift;\n\t\t\toutputPaths = (\n\t\t\t\t$SRCROOT/R.generated.swift,\n\t\t\t\t$SRCROOT/R.UITest.generated.swift,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"../../.build/release/rswift generate --import SWRevealViewController \\\"$SRCROOT/R.generated.swift\\\" > \\\"$SRCROOT/rswift.log\\\"\\n../../.build/release/rswift generate \\\"$SRCROOT/R.UITest.generated.swift\\\" --generators id\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tD55C6CB41B5D757300301B0D /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD5AD5C9F1B7A924000A8B96C /* AppDelegate.swift in Sources */,\n\t\t\t\tE2F768FC244D92A200761E14 /* SceneDelegate.swift in Sources */,\n\t\t\t\tD55C6CC21B5D757300301B0D /* SecondViewController.swift in Sources */,\n\t\t\t\tD55C6CC01B5D757300301B0D /* FirstViewController.swift in Sources */,\n\t\t\t\tD5CBCE491B7682B800C5D96B /* MyViewController.swift in Sources */,\n\t\t\t\tE25984A122AEE89B00467E1E /* CustomSegue.swift in Sources */,\n\t\t\t\tD5DE480E1B5E1CC7000F6A85 /* R.generated.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tD55C6CCB1B5D757300301B0D /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE20983241D585E78005ACBAA /* SegueTests.swift in Sources */,\n\t\t\t\tD5E513C01B8E11810035ECAA /* FontsTests.swift in Sources */,\n\t\t\t\tD56DC7701C42A5E700623437 /* StoryboardTests.swift in Sources */,\n\t\t\t\t5D9E41341C96918E002172D3 /* StringsTests.swift in Sources */,\n\t\t\t\tE2DB0EB02334DCC100815AAF /* InfoPlistTests.swift in Sources */,\n\t\t\t\tD51F47231B8FAF9F0028BAFD /* NibTests.swift in Sources */,\n\t\t\t\tD55C6CD61B5D757300301B0D /* ResourceAppTests.swift in Sources */,\n\t\t\t\tD5D398EC20D43ADE00D67745 /* IgnoreTests.swift in Sources */,\n\t\t\t\tD5EB32701B63AD6B005C7B47 /* ValidationTests.swift in Sources */,\n\t\t\t\tD5F05D481BB520B1003AE55E /* FilesTests.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\tD55C6CD11B5D757300301B0D /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = D55C6CB71B5D757300301B0D /* ResourceApp */;\n\t\t\ttargetProxy = D55C6CD01B5D757300301B0D /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t5D1AFAAF1C858637003FE7AB /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t5D1AFAB01C858637003FE7AB /* en */,\n\t\t\t\t5D1AFAB21C858647003FE7AB /* es */,\n\t\t\t\t5D1AFAB31C85864F003FE7AB /* ja */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD50175BC1B5FEFD000DB8314 /* Secondary.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD50175BD1B5FEFD000DB8314 /* Base */,\n\t\t\t);\n\t\t\tname = Secondary.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CC31B5D757300301B0D /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD55C6CC41B5D757300301B0D /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CC81B5D757300301B0D /* LaunchScreen.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD55C6CC91B5D757300301B0D /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2156B651CC4042900F341DC /* Settings.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE2156B641CC4042900F341DC /* Base */,\n\t\t\t\tE2156B661CC4043C00F341DC /* nl */,\n\t\t\t);\n\t\t\tname = Settings.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2762AC21CCCDFDA0009BCAA /* Settings.stringsdict */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE2762AC11CCCDFDA0009BCAA /* Base */,\n\t\t\t\tE2762AC31CCCDFE10009BCAA /* nl */,\n\t\t\t);\n\t\t\tname = Settings.stringsdict;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2CD68641D7CACC100BEBE59 /* hello.txt */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tE2CD68631D7CACC100BEBE59 /* Base */,\n\t\t\t\tE2CD68651D7CACCA00BEBE59 /* es */,\n\t\t\t\tE2CD68661D7CACCB00BEBE59 /* nl */,\n\t\t\t);\n\t\t\tname = hello.txt;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tD55C6CD71B5D757300301B0D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = 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_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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\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_SYMBOLS_PRIVATE_EXTERN = NO;\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\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD55C6CD81B5D757300301B0D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = 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_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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD55C6CDA1B5D757300301B0D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = BCFE901EE74D3A3CF9909E5D /* Pods-ResourceApp.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tINFOPLIST_FILE = ResourceApp/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD55C6CDB1B5D757300301B0D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 41D4DA51D96C4F7DDF13157E /* Pods-ResourceApp.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tINFOPLIST_FILE = ResourceApp/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD55C6CDD1B5D757300301B0D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"$(inherited)\";\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\tINFOPLIST_FILE = ResourceAppTests/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\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/ResourceApp.app/ResourceApp\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD55C6CDE1B5D757300301B0D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"$(inherited)\";\n\t\t\t\tINFOPLIST_FILE = ResourceAppTests/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\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.$(PRODUCT_NAME:rfc1034identifier)\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/ResourceApp.app/ResourceApp\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tD55C6CB31B5D757300301B0D /* Build configuration list for PBXProject \"ResourceApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD55C6CD71B5D757300301B0D /* Debug */,\n\t\t\t\tD55C6CD81B5D757300301B0D /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD55C6CD91B5D757300301B0D /* Build configuration list for PBXNativeTarget \"ResourceApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD55C6CDA1B5D757300301B0D /* Debug */,\n\t\t\t\tD55C6CDB1B5D757300301B0D /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD55C6CDC1B5D757300301B0D /* Build configuration list for PBXNativeTarget \"ResourceAppTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD55C6CDD1B5D757300301B0D /* Debug */,\n\t\t\t\tD55C6CDE1B5D757300301B0D /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\tE2C415CF28EED7890028D537 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = D55C6CB01B5D757300301B0D /* Project object */;\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp.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": "Examples/ResourceApp/ResourceApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"cd466d6e8c5ffd2f2b61165d37b0646f09068e1e\",\n        \"version\" : \"2.9.0\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp.xcodeproj/xcshareddata/xcschemes/ResourceApp.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1500\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"D55C6CB71B5D757300301B0D\"\n               BuildableName = \"ResourceApp.app\"\n               BlueprintName = \"ResourceApp\"\n               ReferencedContainer = \"container:ResourceApp.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      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"D55C6CB71B5D757300301B0D\"\n            BuildableName = \"ResourceApp.app\"\n            BlueprintName = \"ResourceApp\"\n            ReferencedContainer = \"container:ResourceApp.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <Testables>\n         <TestableReference\n            skipped = \"NO\"\n            testExecutionOrdering = \"random\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"D55C6CCE1B5D757300301B0D\"\n               BuildableName = \"ResourceAppTests.xctest\"\n               BlueprintName = \"ResourceAppTests\"\n               ReferencedContainer = \"container:ResourceApp.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 = \"D55C6CB71B5D757300301B0D\"\n            BuildableName = \"ResourceApp.app\"\n            BlueprintName = \"ResourceApp\"\n            ReferencedContainer = \"container:ResourceApp.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 = \"D55C6CB71B5D757300301B0D\"\n            BuildableName = \"ResourceApp.app\"\n            BlueprintName = \"ResourceApp\"\n            ReferencedContainer = \"container:ResourceApp.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": "Examples/ResourceApp/ResourceApp.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:ResourceApp.xcodeproj\">\n   </FileRef>\n   <FileRef\n      location = \"group:Pods/Pods.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceApp.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"1e761a55dd8d73b4e9cc227a297f438413953571\",\n        \"version\" : \"2.11.1\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/FilesTests.swift",
    "content": "//\n//  FilesTests.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 25-09-15.\n//  Copyright © 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\n@testable import ResourceApp\n\nclass FilesTests: XCTestCase {\n\n  func testNoNilResourceFiles() {\n    XCTAssertNotNil(R.file.someJson())\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/FontsTests.swift",
    "content": "//\n//  FontsTests.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 26-08-15.\n//  Copyright © 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\nimport RswiftResources\n@testable import ResourceApp\n\nclass FontsTests: XCTestCase {\n\n  func testNoNilFonts() {\n    XCTAssertNotNil(R.font.averiaLibreBold(size: 10))\n    XCTAssertNotNil(R.font.averiaLibreBoldItalic(size: 20))\n    XCTAssertNotNil(R.font.averiaLibreLight(size: 30))\n    XCTAssertNotNil(R.font.averiaLibreRegular(size: 40))\n    XCTAssertNotNil(R.font.goudyBookletter1911(size: 50))\n  }\n\n  func testNoValidationError() {\n    XCTAssertNoThrow(try R.font.validate())\n  }\n\n  func testAllFonts() {\n    XCTAssertEqual(Array(R.font.map(\\.name)), [\"AveriaLibre-Bold\", \"AveriaLibre-BoldItalic\", \"AveriaLibre-Light\", \"AveriaLibre-Regular\", \"GoudyBookletter1911\"])\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/IgnoreTests.swift",
    "content": "//\n//  IgnoreTests.swift\n//  ResourceAppTests\n//\n//  Created by Mathijs Kadijk on 15-06-18.\n//  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n//\n\nimport Foundation\nimport XCTest\nimport RswiftResources\n@testable import ResourceApp\n\nclass IgnoreTests: XCTestCase {\n  func testExplicitInclude() {\n    XCTAssertNotNil(R.image.keepDontIgnoreme())\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/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>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/InfoPlistTests.swift",
    "content": "//\n//  InfoPlistTests.swift\n//  ResourceAppTests\n//\n//  Created by Tom Lokhorst on 2019-09-20.\n//  Copyright © 2019 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\n@testable import ResourceApp\n\nclass InfoPlistTests: XCTestCase {\n\n  func testUserActivityTypes() {\n    XCTAssertNotNil(R.info.nsUserActivityTypes.planTripIntent)\n  }\n\n  func testVariable() {\n    XCTAssertEqual(R.info.nsExtension.nsExtensionPrincipalClass, \"ResourceApp.IntentHandler\")\n  }\n  \n  func testUIApplicationShortcutItems() {\n    XCTAssertEqual(R.info.uiApplicationShortcutItems.nlMathijskadijkShortcutsQrScanning.uiApplicationShortcutItemIconFile, \"ShortcutQrScanning\")\n    XCTAssertEqual(R.info.uiApplicationShortcutItems.nlMathijskadijkShortcutsQrScanning.uiApplicationShortcutItemTitle, \"Scan QR-code\")\n    XCTAssertEqual(R.info.uiApplicationShortcutItems.nlMathijskadijkShortcutsQrScanning.uiApplicationShortcutItemType, \"nl.mathijskadijk.shortcuts.qr-scanning\")\n    \n    XCTAssertEqual(R.info.uiApplicationShortcutItems.nlMathijskadijkShortcutsSendParcel.uiApplicationShortcutItemIconFile, \"ShortcutSendParcel\")\n    XCTAssertEqual(R.info.uiApplicationShortcutItems.nlMathijskadijkShortcutsSendParcel.uiApplicationShortcutItemTitle, \"Send a Parcel\")\n    XCTAssertEqual(R.info.uiApplicationShortcutItems.nlMathijskadijkShortcutsSendParcel.uiApplicationShortcutItemType, \"nl.mathijskadijk.shortcuts.send-parcel\")\n  }\n  \n  func testUIApplicationSceneManifest() {\n    XCTAssertFalse(R.info.uiApplicationSceneManifest.uiApplicationSupportsMultipleScenes)\n    \n    XCTAssertEqual(R.info.uiApplicationSceneManifest.uiSceneConfigurations.uiWindowSceneSessionRoleApplication.defaultConfiguration.uiSceneConfigurationName, \"Default Configuration\")\n    XCTAssertEqual(R.info.uiApplicationSceneManifest.uiSceneConfigurations.uiWindowSceneSessionRoleApplication.defaultConfiguration.uiSceneDelegateClassName, \"ResourceApp.SceneDelegate\")\n  }\n  \n  func testNSUserActivityTypes() {\n    XCTAssertEqual(R.info.nsUserActivityTypes.planTripIntent, \"PlanTripIntent\")\n    XCTAssertEqual(R.info.nsUserActivityTypes.showDeparturesIntent, \"ShowDeparturesIntent\")\n  }\n  \n  func testNSExtension() {\n    XCTAssertEqual(R.info.nsExtension.nsExtensionAttributes.intentsSupported.planTripIntent, \"PlanTripIntent\")\n    XCTAssertEqual(R.info.nsExtension.nsExtensionAttributes.intentsSupported.showDeparturesIntent, \"ShowDeparturesIntent\")\n    \n    XCTAssertEqual(R.info.nsExtension.nsExtensionPrincipalClass, \"ResourceApp.IntentHandler\")\n    XCTAssertEqual(R.info.nsExtension.nsExtensionPointIdentifier, \"com.apple.intents-service\")\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/NibTests.swift",
    "content": "//\n//  NibTests.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 27-08-15.\n//  Copyright © 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\n@testable import ResourceApp\n\nclass NibTests: XCTestCase {\n\n  func testNibName() {\n    XCTAssertEqual(R.nib.myView.name, \"My View\")\n  }\n\n  func testRelativeToProjectGroup() {\n    XCTAssertTrue(R.nib.relativeToProject(owner: nil) != nil)\n    XCTAssertTrue(R.nib.relativeToProject.firstView(owner: nil) != nil)\n  }\n\n  func testNibIsOfCorrectType() {\n    XCTAssertTrue(type(of: R.nib.supplementaryElement).Reusable.classForCoder() == UICollectionReusableView.classForCoder())\n  }\n\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/ResourceAppTests.swift",
    "content": "//\n//  ResourceAppTests.swift\n//  ResourceAppTests\n//\n//  Created by Mathijs Kadijk on 20-07-15.\n//  Copyright (c) 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\n@testable import ResourceApp\n\nclass ResourceAppTests: XCTestCase {\n\n  let expectedWarnings = \"\"\"\n    warning: [R.swift] Missing reference 'missing' in 'fault delta' 'Generic.stringsdict'\n    warning: [R.swift] Can't unify 'first' in 'fault beta' 'Generic.stringsdict'\n    warning: [R.swift] Can't unify 'first' in 'fault gamma' 'Generic.stringsdict'\n    warning: [R.swift] Missing reference 'missing' in 'fault alpha' 'Generic.stringsdict'\n    warning: [R.swift] Missing reference 'first_one' in 'fault epsilon' 'Generic.stringsdict'\n    warning: [R.swift] Missing reference 'first' in 'incorrect in dutch' 'Settings.stringsdict' (nl)\n    warning: [R.swift] Skipping 2 images because symbol 'second' would be generated for all of these images: Second, second\n    warning: [R.swift] Skipping 2 images because symbol 'theAppIcon' would be generated for all of these images: The App Icon, TheAppIcon\n    warning: [R.swift] Skipping asset namespace 'conflicting' because symbol 'conflicting' would conflict with image: conflicting\n    warning: [R.swift] Skipping 2 images namespace because symbol 'second' would be generated for all of these images: Second, Second\n    warning: [R.swift] Skipping 2 colors because symbol 'myRed' would be generated for all of these colors: My Red, My Red\n    warning: [R.swift] Destination view controller with id Zbd-89-K73 for segue toUnknown in FirstViewController not found in storyboard References. Is this storyboard corrupt?\n    warning: [R.swift] Skipping 2 segues for 'SecondViewController' because symbol 'toFirst' would be generated for all of these segues: ToFirst, toFirst\n    warning: [R.swift] Skipping 2 storyboards because symbol 'duplicate' would be generated for all of these files: Duplicate, duplicate\n    warning: [R.swift] Skipping 2 view controllers because symbol 'validationClash' would be generated for all of these view controller identifiers: Validation clash, ValidationClash\n    warning: [R.swift] Skipping 2 xibs because symbol 'duplicate' would be generated for all of these files: Duplicate, duplicate\n    warning: [R.swift] Skipping 2 reuseIdentifiers because symbol 'duplicateCellView' would be generated for all of these reuse identifiers: DuplicateCellView, duplicateCellView\n    warning: [R.swift] Skipping 1 reuseIdentifier because no swift identifier can be generated for reuse identifier: ' '\n    warning: [R.swift] Skipping 2 resource files because symbol 'duplicateJson' would be generated for all of these files: Duplicate.json, duplicateJson\n    warning: [R.swift] Skipping 2 strings files because symbol 'duplicate' would be generated for all of these files: Duplicate, Duplicate#\n    warning: [R.swift] Skipping 1 strings file because no swift identifier can be generated for file: '@@'\n    warning: [R.swift] Strings file 'Localizable' (es) is missing translations for keys: 'japanese only'\n    warning: [R.swift] Strings file 'Localizable' (en) is missing translations for keys: 'japanese only'\n    warning: [R.swift] Strings file 'Settings' (nl) is missing translations for keys: 'Not translated', 'incorrect in dutch'\n    warning: [R.swift] Skipping string FormatSpecifiers2 in 'Settings' (nl), not all format specifiers are consecutive\n    warning: [R.swift] Skipping string FormatSpecifiers6 in 'Settings' (Base), not all format specifiers are consecutive\n    warning: [R.swift] Skipping string FormatSpecifiers6 in 'Settings' (nl), not all format specifiers are consecutive\n    warning: [R.swift] Skipping string for key FormatSpecifiers5 (Settings), format specifiers don't match for all locales: Base, nl\n    warning: [R.swift] Skipping string for key mismatch (Settings), format specifiers don't match for all locales: Base, nl\n    warning: [R.swift] Skipping 1 string in 'Generic' because no swift identifier can be generated for key: '#'\n    warning: [R.swift] Strings file 'Settings' (nl) has extra translations (not in Base) for keys: 'Only Dutch'\n    warning: [R.swift] Strings file 'Generic' has extra translations (not in English) for keys: '#'\n    warning: [R.swift] Skipping 2 infos because symbol 'duplicatePlistKey' would be generated for all of these infos: DuplicatePlistKey#, DuplicatePlistKey*\n    warning: [R.swift] Skipping 2 infos because symbol 'duplicatePlistValue' would be generated for all of these infos: DuplicatePlistValue, DuplicatePlistValue\n    \"\"\"\n    .trimmingCharacters(in: .whitespacesAndNewlines)\n    .components(separatedBy: \"\\n\")\n\n  func testWarningsAreLogged() {\n    guard let logURL = Bundle(for: ResourceAppTests.self).url(forResource: \"rswift\", withExtension: \"log\") else {\n      XCTFail(\"File rswift.log not found\")\n      return\n    }\n\n    do {\n      let logContent = try String(contentsOf: logURL)\n      let logLines = logContent\n        .trimmingCharacters(in: .whitespacesAndNewlines)\n        .components(separatedBy: \"\\n\")\n\n      for warning in expectedWarnings {\n        XCTAssertTrue(logLines.contains(warning), \"Warning is not logged: '\\(warning)'\")\n      }\n\n      for logLine in logLines {\n        XCTAssertTrue(expectedWarnings.contains(logLine), \"Warning was not expected: '\\(logLine)'\")\n      }\n\n      XCTAssertEqual(logLines.count, expectedWarnings.count, \"There are more/less warnings then expected\")\n    } catch {\n      XCTFail(\"Failed to read rswift.log\")\n    }\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/SegueTests.swift",
    "content": "//\n//  SegueTests.swift\n//  ResourceApp\n//\n//  Created by Tom Lokhorst on 2016-08-08.\n//  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n//\n\nimport XCTest\n@testable import ResourceApp\n\nclass SegueTests: XCTestCase {\n\n  func testSegueNames() {\n    XCTAssertEqual(R.segue.firstViewController.toSomeStoryboard.identifier, \"toSomeStoryboard\")\n    XCTAssertEqual(R.segue.secondViewController.attachedSegue.identifier, \"attachedSegue\")\n    XCTAssertEqual(R.segue.secondViewController.recognizerSegue.identifier, \"recognizerSegue\")\n    XCTAssertEqual(R.segue.secondViewController.toThird.identifier, \"toThird\")\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/StoryboardTests.swift",
    "content": "//\n//  StoryboardTests.swift\n//  ResourceApp\n//\n//  Created by Mathijs Kadijk on 10-01-16.\n//  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n//\n\nimport XCTest\n@testable import ResourceApp\n\nclass StoryboardTests: XCTestCase {\n\n  func testStoryboardNames() {\n    XCTAssertEqual(R.storyboard.main.name, \"Main\")\n    XCTAssertEqual(R.storyboard.secondary.name, \"Secondary\")\n    XCTAssertEqual(R.storyboard.specials.name, \"Specials\")\n  }\n\n  func testStoryboardInitialViewControllers() {\n    XCTAssertNotNil(R.storyboard.main.instantiateInitialViewController(), \"Initial view controller is missing\")\n    XCTAssertNotNil(R.storyboard.secondary.instantiateInitialViewController(), \"Initial view controller is missing\")\n  }\n\n  func testStoryboardSpecificViewControllers() {\n    XCTAssertNotNil(R.storyboard.main.thirdViewController(), \"Specific view controller is missing\")\n    XCTAssertNotNil(R.storyboard.specials.glkVC(), \"Specific view controller is missing\")\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/StringsTests.swift",
    "content": "//\n//  StringsTests.swift\n//  ResourceApp\n//\n//  Created by Nolan Warner on 26-08-15.\n//  Copyright © 2015 Nolan Warner. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\n@testable import ResourceApp\n\nclass StringsTests: XCTestCase {\n\n  func testNoNilStrings() {\n    XCTAssertNotNil(R.string.generic.loremipsum())\n//    XCTAssertNotNil(R.string.localizable.japaneseOnly())\n    XCTAssertNotNil(R.string.localizable.one())\n    XCTAssertNotNil(R.string.localizable.quote(4))\n    XCTAssertNotNil(R.string.localizable.two())\n    XCTAssertNotNil(R.string.settings.copyProgress(2, 4, 50.0))\n    XCTAssertNotNil(R.string.settings.formatSpecifiers1(11, 22, \"str\"))\n    XCTAssertNotNil(R.string.settings.formatSpecifiers3(11, 22, \"str\"))\n    XCTAssertNotNil(R.string.settings.formatSpecifiers4(11, 22, \"str\"))\n    XCTAssertNotNil(R.string.settings.multilineKeyWeird())\n    XCTAssertNotNil(R.string.settings.notTranslated())\n    XCTAssertNotNil(R.string.settings.title())\n    XCTAssertNotNil(R.string.settings.scopeLuOutOfLuRuns(lu_completed_runs: 4, lu_total_runs: 2))\n  }\n\n  func testCorrectValues() {\n\n    // Force locales, for decimal point and decimal comma versions\n    let stringsEN = R.string(locale: Locale(identifier: \"en_US\"))\n    let stringsNL = R.string(locale: Locale(identifier: \"nl_NL\"))\n    let stringsFR = R.string(locale: Locale(identifier: \"fr_FR\"))\n\n    XCTAssertEqual(stringsEN.generic.precision1(12345.678), \"one   -    12,345.68\")\n    XCTAssertEqual(stringsEN.generic.precision2(12345.678), \"two   -    12,345.68\")\n    XCTAssertEqual(stringsEN.generic.precision3(12345.678), \"three -  12,345.6780\")\n    XCTAssertEqual(stringsEN.generic.precision4(12345.678), \"four  - 12,345.68\")\n\n    XCTAssertEqual(stringsNL.generic.precision1(12345.678), \"one   -    12.345,68\")\n    XCTAssertEqual(stringsNL.generic.precision2(12345.678), \"two   -    12.345,68\")\n    XCTAssertEqual(stringsNL.generic.precision3(12345.678), \"three -  12.345,6780\")\n    XCTAssertEqual(stringsNL.generic.precision4(12345.678), \"four  - 12.345,68\")\n\n    XCTAssertEqual(stringsFR.generic.precision1(12345.678), \"one   -    12\\u{202F}345,68\")\n    XCTAssertEqual(stringsFR.generic.precision2(12345.678), \"two   -    12\\u{202F}345,68\")\n    XCTAssertEqual(stringsFR.generic.precision3(12345.678), \"three -  12\\u{202F}345,6780\")\n    XCTAssertEqual(stringsFR.generic.precision4(12345.678), \"four  - 12\\u{202F}345,68\")\n\n    XCTAssertEqual(R.string.generic.discount10(), \"Today, 10% off!\")\n    XCTAssertEqual(R.string.generic.discountX(20), \"Today, 20% off!\")\n    XCTAssertEqual(R.string.localizable.discount10(), \"Today, 10% off!\")\n    XCTAssertEqual(R.string.localizable.discountX(20), \"Today, 20% off!\")\n    XCTAssertEqual(R.string.generic.url(), \"http%3A%2F%2Fwww.abc.xyz\")\n\n    XCTAssertEqual(\n      R.string.settings.multilineKeyWeird(),\n      NSLocalizedString(\"Multiline\\t\\\\key/\\n\\\"weird\\\"?!\", tableName: \"Settings\", comment: \"\"))\n\n    XCTAssertEqual(\n      R.string.generic.correctAlpha(first: 1),\n      \"Pre Alpha (| One Alpha |)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctBeta(first: 1, second: 2),\n      \"Pre Beta (| One Beta.first x Other Beta.second: 2 |)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctGamma(first: 1, second: 2),\n      \"Pre Gamma (| Other Gamma.second: 2 x One Gamma.first |)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctDelta(first: 1, second: 2),\n      \"Pre Delta (| One Delta.first (1). Second: Other Delta.second: 2 |)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctEpsilon(first: 1, second: 2),\n      \"Pre Epsilon (| Other Epsilon.first: 1. Second: Other Epsilon.second: 2 |)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctEta(\"ONE\", second: 2, 3),\n      \"Pre Eta (| ONE - Other Eta.second: 2. - 3|)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctTheta(first: 1, second: 2, third: 3),\n      \"Pre Theta (| One Theta.first |)\")\n\n    XCTAssertEqual(\n      R.string.generic.correctZeta(\"ONE\", second: 2),\n      \"Pre Zeta (| ONE Other Zeta.second: 2. |)\")\n  }\n}\n"
  },
  {
    "path": "Examples/ResourceApp/ResourceAppTests/ValidationTests.swift",
    "content": "//\n//  ValidationTests.swift\n//  ResourceAppTests\n//\n//  Created by Mathijs Kadijk on 20-07-15.\n//  Copyright (c) 2015 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\nimport RswiftResources\n@testable import ResourceApp\n\nclass ValidationTests: XCTestCase {\n  \n  func testRunGlobalValidateMethod() {\n    do {\n      try R.validate()\n      XCTFail(\"No error thrown\")\n    } catch let error as ValidationError {\n      XCTAssertEqual(error.description, \"[R.swift] Image named 'First' is used in storyboard 'Secondary', but couldn't be loaded.\")\n    } catch {\n      XCTFail(\"Wrong error thrown\")\n    }\n  }\n\n  func testRunSpecificValidateMethods() {\n    do {\n      try R.storyboard.main.validate()\n    } catch {\n      XCTFail(\"Wrong error thrown\")\n    }\n\n    do {\n      try R.storyboard.secondary.validate()\n      XCTFail(\"No error thrown\")\n    } catch let error as ValidationError {\n      XCTAssertEqual(error.description, \"[R.swift] Image named 'First' is used in storyboard 'Secondary', but couldn't be loaded.\")\n    } catch {\n      XCTFail(\"Wrong error thrown\")\n    }\n  }\n\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIApplicationSceneManifest</key>\n\t<dict>\n\t\t<key>UIApplicationSupportsMultipleScenes</key>\n\t\t<false/>\n\t\t<key>UISceneConfigurations</key>\n\t\t<dict>\n\t\t\t<key>UIWindowSceneSessionRoleApplication</key>\n\t\t\t<array>\n\t\t\t\t<dict>\n\t\t\t\t\t<key>UISceneConfigurationName</key>\n\t\t\t\t\t<string>Default Configuration</string>\n\t\t\t\t\t<key>UISceneDelegateClassName</key>\n\t\t\t\t\t<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>\n\t\t\t\t\t<key>UISceneStoryboardFile</key>\n\t\t\t\t\t<string>Main</string>\n\t\t\t\t</dict>\n\t\t\t</array>\n\t\t</dict>\n\t</dict>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Resources/Assets.xcassets/AccentColor.colorset/Contents.json",
    "content": "{\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"83.5x83.5\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"scale\" : \"1x\",\n      \"size\" : \"1024x1024\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Resources/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Resources/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"13122.16\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"13104.12\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" xcode11CocoaTouchSystemColor=\"systemBackgroundColor\" cocoaTouchSystemColor=\"whiteColor\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Resources/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"17506\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"17505\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"System colors in document resources\" minToolsVersion=\"11.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController storyboardIdentifier=\"MainViewController\" useStoryboardIdentifierAsRestorationIdentifier=\"YES\" id=\"BYZ-38-t0r\" customClass=\"ViewController\" customModule=\"App\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <stackView opaque=\"NO\" contentMode=\"scaleToFill\" axis=\"vertical\" distribution=\"fillEqually\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"FDX-OS-pXb\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"44\" width=\"414\" height=\"818\"/>\n                                <subviews>\n                                    <imageView clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"fUk-1U-oHs\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"409\"/>\n                                    </imageView>\n                                    <imageView clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"scaleAspectFit\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Dfw-L9-3mr\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"409\" width=\"414\" height=\"409\"/>\n                                    </imageView>\n                                </subviews>\n                            </stackView>\n                        </subviews>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                        <color key=\"backgroundColor\" systemColor=\"systemGreenColor\"/>\n                        <constraints>\n                            <constraint firstItem=\"FDX-OS-pXb\" firstAttribute=\"top\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"top\" id=\"JYL-eg-JQd\"/>\n                            <constraint firstItem=\"FDX-OS-pXb\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" id=\"edj-q9-fGT\"/>\n                            <constraint firstItem=\"6Tk-OE-BBY\" firstAttribute=\"bottom\" secondItem=\"FDX-OS-pXb\" secondAttribute=\"bottom\" id=\"oKF-0v-Ufu\"/>\n                            <constraint firstItem=\"6Tk-OE-BBY\" firstAttribute=\"trailing\" secondItem=\"FDX-OS-pXb\" secondAttribute=\"trailing\" id=\"vyg-uY-3xd\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"barImageView\" destination=\"Dfw-L9-3mr\" id=\"Qrk-dm-qsO\"/>\n                        <outlet property=\"fooImageView\" destination=\"fUk-1U-oHs\" id=\"VOA-4b-KSC\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-296\" y=\"105\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <systemColor name=\"systemGreenColor\">\n            <color red=\"0.20392156862745098\" green=\"0.7803921568627451\" blue=\"0.34901960784313724\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n        </systemColor>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Sources/AppDelegate.swift",
    "content": "import UIKit\nimport Foo\nimport Bar\n\n@main\nfinal class AppDelegate: UIResponder, UIApplicationDelegate {\n    \n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {\n        FooClass().foo()\n        BarClass().bar()\n        return true\n    }\n\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Sources/SceneDelegate.swift",
    "content": "//\n//  SceneDelegate.swift\n//  FooBar\n//\n//  Created by Maciej Piotrowski on 04/01/2021.\n//\n\nimport UIKit\n\nclass SceneDelegate: UIResponder, UIWindowSceneDelegate {\n\n    var window: UIWindow?\n\n\n    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {\n        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.\n        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.\n        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).\n        guard let _ = (scene as? UIWindowScene) else { return }\n    }\n\n    func sceneDidDisconnect(_ scene: UIScene) {\n        // Called as the scene is being released by the system.\n        // This occurs shortly after the scene enters the background, or when its session is discarded.\n        // Release any resources associated with this scene that can be re-created the next time the scene connects.\n        // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).\n    }\n\n    func sceneDidBecomeActive(_ scene: UIScene) {\n        // Called when the scene has moved from an inactive state to an active state.\n        // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.\n    }\n\n    func sceneWillResignActive(_ scene: UIScene) {\n        // Called when the scene will move from an active state to an inactive state.\n        // This may occur due to temporary interruptions (ex. an incoming phone call).\n    }\n\n    func sceneWillEnterForeground(_ scene: UIScene) {\n        // Called as the scene transitions from the background to the foreground.\n        // Use this method to undo the changes made on entering the background.\n    }\n\n    func sceneDidEnterBackground(_ scene: UIScene) {\n        // Called as the scene transitions from the foreground to the background.\n        // Use this method to save data, release shared resources, and store enough scene-specific state information\n        // to restore the scene back to its current state.\n    }\n\n\n}\n\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/App/Sources/ViewController.swift",
    "content": "import UIKit\nimport Foo\nimport Bar\n\nfinal class ViewController: UIViewController {\n\n    @IBOutlet weak var fooImageView: UIImageView!\n    @IBOutlet weak var barImageView: UIImageView!\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        fooImageView.image = FooClass().sampleImage()\n        barImageView.image = BarClass().sampleImage()\n    }\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/AppTests/AppTests.swift",
    "content": "//\n//  AppTests.swift\n//  AppTests\n//\n//  Created by Tom Lokhorst on 2022-11-10.\n//\n\nimport XCTest\n@testable import Foo\n@testable import Bar\n\nfinal class AppTests: XCTestCase {\n\n    func testNotNil() throws {\n        let fooBundle = Bundle.main.path(forResource: \"Foo\", ofType: \"bundle\").flatMap(Bundle.init(path:))!\n        let barBundle = Bundle.main.path(forResource: \"Bar\", ofType: \"bundle\").flatMap(Bundle.init(path:))!\n\n        let fooR = Foo._R(bundle: fooBundle)\n        let barR = Bar._R(bundle: barBundle)\n\n        XCTAssertNotNil(UIImage(resource: fooR.image.user))\n        XCTAssertNotNil(UIImage(resource: barR.image.colorsJpg))\n    }\n\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/Bar/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>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/Bar/Sources/Bar.swift",
    "content": "import UIKit\n\nlet bundle = Bundle.main.path(forResource: \"Bar\", ofType: \"bundle\").flatMap(Bundle.init(path:))!\n\npublic final class BarClass {\n    public init() {}\n    public func bar() {\n        print(\"bar\")\n    }\n    \n    public func sampleImage() -> UIImage {\n        R.image(bundle: bundle).colorsJpg()!\n    }\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/Foo/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>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>$(CURRENT_PROJECT_VERSION)</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/Foo/Sources/Foo.swift",
    "content": "import UIKit\n\nlet bundle = Bundle.main.path(forResource: \"Foo\", ofType: \"bundle\").flatMap(Bundle.init(path:))!\n\npublic final class FooClass {\n    public init() {}\n    public func foo() {\n        print(\"foo\")\n    }\n    \n    public func sampleImage() -> UIImage {\n        R.image(bundle: bundle).user()!\n    }\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.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\t23D0DE433EC1766BB2FE59C6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3844C19EF2D85F958F010218 /* Assets.xcassets */; };\n\t\t37A6C8B54F86BE2228F892B5 /* Foo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71F7B7842FB9EF2B65125CA8 /* Foo.framework */; };\n\t\t4680E921FB7046245B234C95 /* FooBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47FFEF3E3191F365876C33B1 /* FooBundle.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t50D25F3E8DE46F91123C0CC5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C0B0FCA09D48FF877E95970 /* ViewController.swift */; };\n\t\tA025843A2D354BB0B413A717 /* R.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003AB83A00F5D1B9A9F9B90 /* R.generated.swift */; };\n\t\tA14D88A4A3403DACF2DC2ECF /* R.generated.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7750863E11F70C8B71F811A /* R.generated.swift */; };\n\t\tA7940548A881305B7778FC55 /* Bar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F77580EFDC1015090A2B822 /* Bar.framework */; };\n\t\tA9A2E8F57CA32D93229A2462 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9D52D56702E90AADBC46B4EB /* LaunchScreen.storyboard */; };\n\t\tB237F040341B112E7909766C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6ED7964632BE36BB21735A9 /* AppDelegate.swift */; };\n\t\tB2AF344DDA24E5AE91D9D3B1 /* User.png in Resources */ = {isa = PBXBuildFile; fileRef = A51DA98728043B2D10ECA1B3 /* User.png */; };\n\t\tC035B4491A5A10E08C72F4D4 /* Foo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C541BB310FEB70B665E8E397 /* Foo.swift */; };\n\t\tC6170449030C8F20798DFC3F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DBD12E6769ED8625AC7210E6 /* Main.storyboard */; };\n\t\tD80E585DBD9FA2E07EB14DA2 /* BarBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F1DD55F25DE874A0AA75B238 /* BarBundle.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\tDD2203C09F7FD1ECB305B8C2 /* Colors@3x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 655641603F257DD75189A0F6 /* Colors@3x.jpg */; };\n\t\tDD544B6A13EA12A2EFF14EE3 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2241208CE1C221B1E493B1CA /* SceneDelegate.swift */; };\n\t\tE2CAA5CD291C40F300EAE67C /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E2CAA5CC291C40F300EAE67C /* RswiftLibrary */; };\n\t\tE2CAA5CF291C40F700EAE67C /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E2CAA5CE291C40F700EAE67C /* RswiftLibrary */; };\n\t\tE2E58367291D341F006E17D9 /* AppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E58366291D341F006E17D9 /* AppTests.swift */; };\n\t\tF8DB9C27FD3259718C746DBA /* Bar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA3FBEC5BB6C4FE0CF1A43A /* Bar.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t1DFDF5BED3E06260DD0983D2 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C88653A8855B27A3CA0F5055 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 8F2521905D0CF087FFD375B3;\n\t\t\tremoteInfo = BarBundle;\n\t\t};\n\t\t4148B3991FED2CFF64E2BFB4 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C88653A8855B27A3CA0F5055 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 0328DD4A87BE56889AA0F781;\n\t\t\tremoteInfo = Bar;\n\t\t};\n\t\t803498BC9B607C125AE5E616 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C88653A8855B27A3CA0F5055 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 59A219B1BF6C52119E76405D;\n\t\t\tremoteInfo = Foo;\n\t\t};\n\t\tC9A1FDF0190D9DA54DB7D4B0 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C88653A8855B27A3CA0F5055 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 8B28E1AAD3ADDC6347204D85;\n\t\t\tremoteInfo = FooBundle;\n\t\t};\n\t\tE2E58368291D341F006E17D9 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = C88653A8855B27A3CA0F5055 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = E6815CC966750C0B4B8C0903;\n\t\t\tremoteInfo = App;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t09EBE6C782F6AFDFAAAB82E4 /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t2241208CE1C221B1E493B1CA /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = \"<group>\"; };\n\t\t2DA3FBEC5BB6C4FE0CF1A43A /* Bar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bar.swift; sourceTree = \"<group>\"; };\n\t\t3844C19EF2D85F958F010218 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t47FFEF3E3191F365876C33B1 /* FooBundle.bundle */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = \"wrapper.plug-in\"; name = FooBundle.bundle; path = Foo.bundle; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t655641603F257DD75189A0F6 /* Colors@3x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = \"Colors@3x.jpg\"; sourceTree = \"<group>\"; };\n\t\t65B047577B44066BF0F03323 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t71F7B7842FB9EF2B65125CA8 /* Foo.framework */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.framework; path = Foo.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t7C0B0FCA09D48FF877E95970 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = \"<group>\"; };\n\t\t7F77580EFDC1015090A2B822 /* Bar.framework */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.framework; path = Bar.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tA51DA98728043B2D10ECA1B3 /* User.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = User.png; sourceTree = \"<group>\"; };\n\t\tB5D7765B6F9ED6E52E0C0E9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\tC541BB310FEB70B665E8E397 /* Foo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Foo.swift; sourceTree = \"<group>\"; };\n\t\tCCFC93145C8B40C96FC845E0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tD003AB83A00F5D1B9A9F9B90 /* R.generated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = R.generated.swift; sourceTree = \"<group>\"; };\n\t\tE2CAA5CA291C403400EAE67C /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n\t\tE2E58364291D341F006E17D9 /* AppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE2E58366291D341F006E17D9 /* AppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTests.swift; sourceTree = \"<group>\"; };\n\t\tE6ED7964632BE36BB21735A9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tE7750863E11F70C8B71F811A /* R.generated.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = R.generated.swift; sourceTree = \"<group>\"; };\n\t\tF1DD55F25DE874A0AA75B238 /* BarBundle.bundle */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = \"wrapper.plug-in\"; name = BarBundle.bundle; path = Bar.bundle; sourceTree = BUILT_PRODUCTS_DIR; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t0A731942ACBB4ECBC9AAB971 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2CAA5CD291C40F300EAE67C /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t2D2E9B6337E9A1F293CFEF1A /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2CAA5CF291C40F700EAE67C /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t4579F2BF429599A2B22EF7E9 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t37A6C8B54F86BE2228F892B5 /* Foo.framework in Frameworks */,\n\t\t\t\tA7940548A881305B7778FC55 /* Bar.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA9E1015776CFBF373AD544CC /* 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\tE2E58361291D341F006E17D9 /* 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\tEDBDCA658D347C739094B5A8 /* 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/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t09954D985BD90D3535BA5E29 /* Bar */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA2BED99BA03167AE6623D710 /* Resources */,\n\t\t\t\tF0B54132DA7DE455F60E7A34 /* Sources */,\n\t\t\t);\n\t\t\tpath = Bar;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t370D29654D2F7D3ED5FF8790 /* App */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCCFC93145C8B40C96FC845E0 /* Info.plist */,\n\t\t\t\t62CE76B9A9B4F9BD5021F441 /* Resources */,\n\t\t\t\t848C8ADB35C45933DBD38D2E /* Sources */,\n\t\t\t);\n\t\t\tpath = App;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t582737745B10EC73FF0579D7 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2CAA5C9291C403400EAE67C /* Packages */,\n\t\t\t\t370D29654D2F7D3ED5FF8790 /* App */,\n\t\t\t\t09954D985BD90D3535BA5E29 /* Bar */,\n\t\t\t\tC59E71F563315A14B3980DA2 /* Foo */,\n\t\t\t\tE2E58365291D341F006E17D9 /* AppTests */,\n\t\t\t\tF9DDB8B557D329344CC4A0CC /* Products */,\n\t\t\t\tE2CAA5BB291C38D900EAE67C /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t62CE76B9A9B4F9BD5021F441 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3844C19EF2D85F958F010218 /* Assets.xcassets */,\n\t\t\t\t9D52D56702E90AADBC46B4EB /* LaunchScreen.storyboard */,\n\t\t\t\tDBD12E6769ED8625AC7210E6 /* Main.storyboard */,\n\t\t\t);\n\t\t\tpath = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t82705CC060AFE6E95F5ADB07 /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC541BB310FEB70B665E8E397 /* Foo.swift */,\n\t\t\t\tD003AB83A00F5D1B9A9F9B90 /* R.generated.swift */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t848C8ADB35C45933DBD38D2E /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE6ED7964632BE36BB21735A9 /* AppDelegate.swift */,\n\t\t\t\t2241208CE1C221B1E493B1CA /* SceneDelegate.swift */,\n\t\t\t\t7C0B0FCA09D48FF877E95970 /* ViewController.swift */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tA2BED99BA03167AE6623D710 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t655641603F257DD75189A0F6 /* Colors@3x.jpg */,\n\t\t\t);\n\t\t\tpath = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tAEBCA0D51F6A1C59A1517331 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA51DA98728043B2D10ECA1B3 /* User.png */,\n\t\t\t);\n\t\t\tpath = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC59E71F563315A14B3980DA2 /* Foo */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tAEBCA0D51F6A1C59A1517331 /* Resources */,\n\t\t\t\t82705CC060AFE6E95F5ADB07 /* Sources */,\n\t\t\t);\n\t\t\tpath = Foo;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2CAA5BB291C38D900EAE67C /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2CAA5C9291C403400EAE67C /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2CAA5CA291C403400EAE67C /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2E58365291D341F006E17D9 /* AppTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2E58366291D341F006E17D9 /* AppTests.swift */,\n\t\t\t);\n\t\t\tpath = AppTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tF0B54132DA7DE455F60E7A34 /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2DA3FBEC5BB6C4FE0CF1A43A /* Bar.swift */,\n\t\t\t\tE7750863E11F70C8B71F811A /* R.generated.swift */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tF9DDB8B557D329344CC4A0CC /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t09EBE6C782F6AFDFAAAB82E4 /* App.app */,\n\t\t\t\t7F77580EFDC1015090A2B822 /* Bar.framework */,\n\t\t\t\tF1DD55F25DE874A0AA75B238 /* BarBundle.bundle */,\n\t\t\t\t71F7B7842FB9EF2B65125CA8 /* Foo.framework */,\n\t\t\t\t47FFEF3E3191F365876C33B1 /* FooBundle.bundle */,\n\t\t\t\tE2E58364291D341F006E17D9 /* AppTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t0328DD4A87BE56889AA0F781 /* Bar */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A0FB50A44CF6F3E23F1D04B0 /* Build configuration list for PBXNativeTarget \"Bar\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE2CAA5CB291C404A00EAE67C /* R.swift */,\n\t\t\t\t40C7251D6D0A826CD4FC20FF /* Sources */,\n\t\t\t\t2690BC128C6239F7341A0E1B /* Resources */,\n\t\t\t\t0A731942ACBB4ECBC9AAB971 /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tDF0A2FBC262B99BDB95C08AD /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = Bar;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE2CAA5CC291C40F300EAE67C /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = Bar;\n\t\t\tproductReference = 7F77580EFDC1015090A2B822 /* Bar.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework.static\";\n\t\t};\n\t\t59A219B1BF6C52119E76405D /* Foo */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = CB8E0D95C8221EB66322BB76 /* Build configuration list for PBXNativeTarget \"Foo\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE2CAA5D1291C414A00EAE67C /* R.swift */,\n\t\t\t\t5D824023BAD1D687E5B2AD5F /* Sources */,\n\t\t\t\t641BD0BED6B86B8355FD746E /* Resources */,\n\t\t\t\t2D2E9B6337E9A1F293CFEF1A /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t47421C68E32922D308DC7D74 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = Foo;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE2CAA5CE291C40F700EAE67C /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = Foo;\n\t\t\tproductReference = 71F7B7842FB9EF2B65125CA8 /* Foo.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework.static\";\n\t\t};\n\t\t8B28E1AAD3ADDC6347204D85 /* FooBundle */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = C87CE7344FD89D4A4F49943C /* Build configuration list for PBXNativeTarget \"FooBundle\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t93F7254F4D2B16BE33DB2BDF /* Resources */,\n\t\t\t\tEDBDCA658D347C739094B5A8 /* 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 = FooBundle;\n\t\t\tproductName = FooBundle;\n\t\t\tproductReference = 47FFEF3E3191F365876C33B1 /* FooBundle.bundle */;\n\t\t\tproductType = \"com.apple.product-type.bundle\";\n\t\t};\n\t\t8F2521905D0CF087FFD375B3 /* BarBundle */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = DE89F2BC7BD62BB58420F5EC /* Build configuration list for PBXNativeTarget \"BarBundle\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tF752C24D8952745834991833 /* Resources */,\n\t\t\t\tA9E1015776CFBF373AD544CC /* 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 = BarBundle;\n\t\t\tproductName = BarBundle;\n\t\t\tproductReference = F1DD55F25DE874A0AA75B238 /* BarBundle.bundle */;\n\t\t\tproductType = \"com.apple.product-type.bundle\";\n\t\t};\n\t\tE2E58363291D341F006E17D9 /* AppTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E2E5836C291D341F006E17D9 /* Build configuration list for PBXNativeTarget \"AppTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE2E58360291D341F006E17D9 /* Sources */,\n\t\t\t\tE2E58361291D341F006E17D9 /* Frameworks */,\n\t\t\t\tE2E58362291D341F006E17D9 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE2E58369291D341F006E17D9 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = AppTests;\n\t\t\tproductName = AppTests;\n\t\t\tproductReference = E2E58364291D341F006E17D9 /* AppTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\tE6815CC966750C0B4B8C0903 /* App */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = B6DEF19BFDFDD330B369BBE8 /* Build configuration list for PBXNativeTarget \"App\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tADE3A7C6DD9F273AC89B3ED5 /* Sources */,\n\t\t\t\tBC9CC850DB0B3548EBDC9E7D /* Resources */,\n\t\t\t\t4579F2BF429599A2B22EF7E9 /* Frameworks */,\n\t\t\t\t7F553EDAB894541615C8EB2C /* Copy Bundles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t04CE573ED9492DE29603C7A4 /* PBXTargetDependency */,\n\t\t\t\t63408DB2AC810020287B7FD0 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = App;\n\t\t\tpackageProductDependencies = (\n\t\t\t);\n\t\t\tproductName = App;\n\t\t\tproductReference = 09EBE6C782F6AFDFAAAB82E4 /* App.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tC88653A8855B27A3CA0F5055 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1410;\n\t\t\t\tLastUpgradeCheck = 1200;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tE2E58363291D341F006E17D9 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 14.1;\n\t\t\t\t\t\tTestTargetID = E6815CC966750C0B4B8C0903;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = B0168AC1C5483CCEB3271728 /* Build configuration list for PBXProject \"RswiftAppWithStaticFrameworks\" */;\n\t\t\tcompatibilityVersion = \"Xcode 10.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\tBase,\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = 582737745B10EC73FF0579D7;\n\t\t\tproductRefGroup = F9DDB8B557D329344CC4A0CC /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tE6815CC966750C0B4B8C0903 /* App */,\n\t\t\t\t0328DD4A87BE56889AA0F781 /* Bar */,\n\t\t\t\t8F2521905D0CF087FFD375B3 /* BarBundle */,\n\t\t\t\t59A219B1BF6C52119E76405D /* Foo */,\n\t\t\t\t8B28E1AAD3ADDC6347204D85 /* FooBundle */,\n\t\t\t\tE2E58363291D341F006E17D9 /* AppTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t2690BC128C6239F7341A0E1B /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD80E585DBD9FA2E07EB14DA2 /* BarBundle.bundle in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t641BD0BED6B86B8355FD746E /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t4680E921FB7046245B234C95 /* FooBundle.bundle in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t93F7254F4D2B16BE33DB2BDF /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB2AF344DDA24E5AE91D9D3B1 /* User.png in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tBC9CC850DB0B3548EBDC9E7D /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t23D0DE433EC1766BB2FE59C6 /* Assets.xcassets in Resources */,\n\t\t\t\tA9A2E8F57CA32D93229A2462 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\tC6170449030C8F20798DFC3F /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE2E58362291D341F006E17D9 /* 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\tF752C24D8952745834991833 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDD2203C09F7FD1ECB305B8C2 /* Colors@3x.jpg in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t7F553EDAB894541615C8EB2C /* Copy Bundles */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"Copy Bundles\";\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"./copy_bundles.sh\\n\";\n\t\t};\n\t\tE2CAA5CB291C404A00EAE67C /* R.swift */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = R.swift;\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t\t$SRCROOT/Bar/Sources/R.generated.swift,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"../../.build/release/rswift generate $SRCROOT/Bar/Sources/R.generated.swift --target ${PRODUCT_NAME}Bundle\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\tE2CAA5D1291C414A00EAE67C /* R.swift */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\talwaysOutOfDate = 1;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = R.swift;\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t\t$SRCROOT/Foo/Sources/R.generated.swift,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"../../.build/release/rswift generate $SRCROOT/Foo/Sources/R.generated.swift --target ${PRODUCT_NAME}Bundle\\n\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t40C7251D6D0A826CD4FC20FF /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tF8DB9C27FD3259718C746DBA /* Bar.swift in Sources */,\n\t\t\t\tA14D88A4A3403DACF2DC2ECF /* R.generated.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t5D824023BAD1D687E5B2AD5F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC035B4491A5A10E08C72F4D4 /* Foo.swift in Sources */,\n\t\t\t\tA025843A2D354BB0B413A717 /* R.generated.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tADE3A7C6DD9F273AC89B3ED5 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB237F040341B112E7909766C /* AppDelegate.swift in Sources */,\n\t\t\t\tDD544B6A13EA12A2EFF14EE3 /* SceneDelegate.swift in Sources */,\n\t\t\t\t50D25F3E8DE46F91123C0CC5 /* ViewController.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE2E58360291D341F006E17D9 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2E58367291D341F006E17D9 /* AppTests.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\t04CE573ED9492DE29603C7A4 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 59A219B1BF6C52119E76405D /* Foo */;\n\t\t\ttargetProxy = 803498BC9B607C125AE5E616 /* PBXContainerItemProxy */;\n\t\t};\n\t\t47421C68E32922D308DC7D74 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 8B28E1AAD3ADDC6347204D85 /* FooBundle */;\n\t\t\ttargetProxy = C9A1FDF0190D9DA54DB7D4B0 /* PBXContainerItemProxy */;\n\t\t};\n\t\t63408DB2AC810020287B7FD0 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 0328DD4A87BE56889AA0F781 /* Bar */;\n\t\t\ttargetProxy = 4148B3991FED2CFF64E2BFB4 /* PBXContainerItemProxy */;\n\t\t};\n\t\tDF0A2FBC262B99BDB95C08AD /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 8F2521905D0CF087FFD375B3 /* BarBundle */;\n\t\t\ttargetProxy = 1DFDF5BED3E06260DD0983D2 /* PBXContainerItemProxy */;\n\t\t};\n\t\tE2E58369291D341F006E17D9 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = E6815CC966750C0B4B8C0903 /* App */;\n\t\t\ttargetProxy = E2E58368291D341F006E17D9 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t9D52D56702E90AADBC46B4EB /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t65B047577B44066BF0F03323 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDBD12E6769ED8625AC7210E6 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tB5D7765B6F9ED6E52E0C0E9A /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t34AE2C662C40B3A8D071F0F2 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = Foo/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\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\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t42F07A51D83C6D0157DE516F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = Bar/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\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\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tPRODUCT_NAME = Bar;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t45F5BF9169D32C7AE87F0699 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = Foo/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);\n\t\t\t\tMACH_O_TYPE = mh_bundle;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tPRODUCT_NAME = Foo;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t66BAA81A15AA74DBDAA90FD6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = Bar/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\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\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tPRODUCT_NAME = Bar;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t887AA668D7785BA542E846E0 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = Bar/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);\n\t\t\t\tMACH_O_TYPE = mh_bundle;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tPRODUCT_NAME = Bar;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t8CD98AF60F03A3684AF41FF9 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tINFOPLIST_FILE = App/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t994E34063ABAC54789FA4C14 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t9F98089B10E355F2695FAD9A /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = Bar/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);\n\t\t\t\tMACH_O_TYPE = mh_bundle;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tPRODUCT_NAME = Bar;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tB00C96695DF77912869D2A02 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tINFOPLIST_FILE = Foo/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);\n\t\t\t\tMACH_O_TYPE = mh_bundle;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tPRODUCT_NAME = Foo;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tB78B2DA0006A2053E8E8D15E /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = Foo/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\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\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE2E5836A291D341F006E17D9 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++20\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\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\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.nonstrict.AppTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_EMIT_LOC_STRINGS = NO;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/App\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE2E5836B291D341F006E17D9 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++20\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tGENERATE_INFOPLIST_FILE = YES;\n\t\t\t\tMARKETING_VERSION = 1.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.nonstrict.AppTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_EMIT_LOC_STRINGS = NO;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/App\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE8315FC5728EA2DB95EEA61F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\"$(inherited)\",\n\t\t\t\t\t\"DEBUG=1\",\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\tIPHONEOS_DEPLOYMENT_TARGET = 13.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\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\tFD856F4445F4086EFDE59CF8 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tINFOPLIST_FILE = App/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"com.rswift.$(PRODUCT_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tA0FB50A44CF6F3E23F1D04B0 /* Build configuration list for PBXNativeTarget \"Bar\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t66BAA81A15AA74DBDAA90FD6 /* Debug */,\n\t\t\t\t42F07A51D83C6D0157DE516F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tB0168AC1C5483CCEB3271728 /* Build configuration list for PBXProject \"RswiftAppWithStaticFrameworks\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE8315FC5728EA2DB95EEA61F /* Debug */,\n\t\t\t\t994E34063ABAC54789FA4C14 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tB6DEF19BFDFDD330B369BBE8 /* Build configuration list for PBXNativeTarget \"App\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tFD856F4445F4086EFDE59CF8 /* Debug */,\n\t\t\t\t8CD98AF60F03A3684AF41FF9 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tC87CE7344FD89D4A4F49943C /* Build configuration list for PBXNativeTarget \"FooBundle\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tB00C96695DF77912869D2A02 /* Debug */,\n\t\t\t\t45F5BF9169D32C7AE87F0699 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tCB8E0D95C8221EB66322BB76 /* Build configuration list for PBXNativeTarget \"Foo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t34AE2C662C40B3A8D071F0F2 /* Debug */,\n\t\t\t\tB78B2DA0006A2053E8E8D15E /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tDE89F2BC7BD62BB58420F5EC /* Build configuration list for PBXNativeTarget \"BarBundle\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t887AA668D7785BA542E846E0 /* Debug */,\n\t\t\t\t9F98089B10E355F2695FAD9A /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Debug;\n\t\t};\n\t\tE2E5836C291D341F006E17D9 /* Build configuration list for PBXNativeTarget \"AppTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE2E5836A291D341F006E17D9 /* Debug */,\n\t\t\t\tE2E5836B291D341F006E17D9 /* 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 XCSwiftPackageProductDependency section */\n\t\tE2CAA5CC291C40F300EAE67C /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE2CAA5CE291C40F700EAE67C /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = C88653A8855B27A3CA0F5055 /* Project object */;\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.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": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"1e761a55dd8d73b4e9cc227a297f438413953571\",\n        \"version\" : \"2.11.1\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj/xcshareddata/xcschemes/App.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"E6815CC966750C0B4B8C0903\"\n               BuildableName = \"App.app\"\n               BlueprintName = \"App\"\n               ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.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      <Testables>\n         <TestableReference\n            skipped = \"NO\"\n            parallelizable = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"E2E58363291D341F006E17D9\"\n               BuildableName = \"AppTests.xctest\"\n               BlueprintName = \"AppTests\"\n               ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.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 = \"E6815CC966750C0B4B8C0903\"\n            BuildableName = \"App.app\"\n            BlueprintName = \"App\"\n            ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.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 = \"E6815CC966750C0B4B8C0903\"\n            BuildableName = \"App.app\"\n            BlueprintName = \"App\"\n            ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.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": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj/xcshareddata/xcschemes/Bar.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"0328DD4A87BE56889AA0F781\"\n               BuildableName = \"Bar.framework\"\n               BlueprintName = \"Bar\"\n               ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.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      <Testables>\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   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"0328DD4A87BE56889AA0F781\"\n            BuildableName = \"Bar.framework\"\n            BlueprintName = \"Bar\"\n            ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/RswiftAppWithStaticFrameworks.xcodeproj/xcshareddata/xcschemes/Foo.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"59A219B1BF6C52119E76405D\"\n               BuildableName = \"Foo.framework\"\n               BlueprintName = \"Foo\"\n               ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.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      <Testables>\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   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"59A219B1BF6C52119E76405D\"\n            BuildableName = \"Foo.framework\"\n            BlueprintName = \"Foo\"\n            ReferencedContainer = \"container:RswiftAppWithStaticFrameworks.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Examples/RswiftAppWithStaticFrameworks/copy_bundles.sh",
    "content": "#!/bin/sh\nfind \"${BUILT_PRODUCTS_DIR}\" -d 1 -name \"*.framework\" | while read framework     \n    do    \n        find -L \"${framework}\" -name \"*.bundle\" -d 1 | while read source\n        do\n            destination=\"${TARGET_BUILD_DIR}/${EXECUTABLE_FOLDER_PATH}\"\n            rsync -auv \"${source}\" \"${destination}\" || exit 1\n        done\n    done  \nexit 0\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"83.5x83.5\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"scale\" : \"1x\",\n      \"size\" : \"1024x1024\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/Assets.xcassets/hand.ignoreme.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"hand.ignoreme.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/ContentView.swift",
    "content": "//\n//  ContentView.swift\n//  RswiftUI\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n    var body: some View {\n        Text(\"Hello, SwiftUI App!\")\n            .padding()\n\n        Image(R.image.handIgnoreme)\n            .resizable()\n            .aspectRatio(1, contentMode: .fit)\n            .frame(width: 140)\n    }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n    static var previews: some View {\n        ContentView()\n    }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIApplicationSceneManifest</key>\n\t<dict>\n\t\t<key>UIApplicationSupportsMultipleScenes</key>\n\t\t<true/>\n\t</dict>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n\t<key>UILaunchScreen</key>\n\t<dict/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/Preview Content/Preview Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI/RswiftUIApp.swift",
    "content": "//\n//  RswiftUIApp.swift\n//  RswiftUI\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\n@main\nstruct RswiftUIApp: App {\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n        }\n    }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI.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\tE212C64E291BE24B000E4F65 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E212C64D291BE24B000E4F65 /* RswiftLibrary */; };\n\t\tE212C650291BE252000E4F65 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E212C64F291BE252000E4F65 /* RswiftLibrary */; };\n\t\tE243EF952510DF9100DC653F /* RswiftUIApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E243EF942510DF9100DC653F /* RswiftUIApp.swift */; };\n\t\tE243EF972510DF9100DC653F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E243EF962510DF9100DC653F /* ContentView.swift */; };\n\t\tE243EF992510DF9200DC653F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EF982510DF9200DC653F /* Assets.xcassets */; };\n\t\tE243EF9C2510DF9200DC653F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EF9B2510DF9200DC653F /* Preview Assets.xcassets */; };\n\t\tE243EFB02510E08D00DC653F /* RswiftUIAppClipApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E243EFAF2510E08D00DC653F /* RswiftUIAppClipApp.swift */; };\n\t\tE243EFB22510E08D00DC653F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E243EFB12510E08D00DC653F /* ContentView.swift */; };\n\t\tE243EFB42510E08E00DC653F /* ClipAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EFB32510E08E00DC653F /* ClipAssets.xcassets */; };\n\t\tE243EFB72510E08E00DC653F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EFB62510E08E00DC653F /* Preview Assets.xcassets */; };\n\t\tE243EFBC2510E08E00DC653F /* RswiftUIAppClip.app in Embed App Clips */ = {isa = PBXBuildFile; fileRef = E243EFAD2510E08D00DC653F /* RswiftUIAppClip.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };\n\t\tE2CD1B0C2510F900000ACEFB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E243EF982510DF9200DC653F /* Assets.xcassets */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tE243EFBA2510E08E00DC653F /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = E243EF892510DF9100DC653F /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = E243EFAC2510E08D00DC653F;\n\t\t\tremoteInfo = RswiftUIAppClip;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\tE243EFBD2510E08E00DC653F /* Embed App Clips */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"$(CONTENTS_FOLDER_PATH)/AppClips\";\n\t\t\tdstSubfolderSpec = 16;\n\t\t\tfiles = (\n\t\t\t\tE243EFBC2510E08E00DC653F /* RswiftUIAppClip.app in Embed App Clips */,\n\t\t\t);\n\t\t\tname = \"Embed App Clips\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\tE212C64C291BE1DB000E4F65 /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n\t\tE243EF912510DF9100DC653F /* RswiftUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RswiftUI.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE243EF942510DF9100DC653F /* RswiftUIApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RswiftUIApp.swift; sourceTree = \"<group>\"; };\n\t\tE243EF962510DF9100DC653F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = \"<group>\"; };\n\t\tE243EF982510DF9200DC653F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tE243EF9B2510DF9200DC653F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = \"Preview Assets.xcassets\"; sourceTree = \"<group>\"; };\n\t\tE243EF9D2510DF9200DC653F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE243EFAD2510E08D00DC653F /* RswiftUIAppClip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RswiftUIAppClip.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tE243EFAF2510E08D00DC653F /* RswiftUIAppClipApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RswiftUIAppClipApp.swift; sourceTree = \"<group>\"; };\n\t\tE243EFB12510E08D00DC653F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = \"<group>\"; };\n\t\tE243EFB32510E08E00DC653F /* ClipAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ClipAssets.xcassets; sourceTree = \"<group>\"; };\n\t\tE243EFB62510E08E00DC653F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = \"Preview Assets.xcassets\"; sourceTree = \"<group>\"; };\n\t\tE243EFB82510E08E00DC653F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE243EFB92510E08E00DC653F /* RswiftUIAppClip.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RswiftUIAppClip.entitlements; sourceTree = \"<group>\"; };\n\t\tE243EFC22510E0D900DC653F /* Rswift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Rswift.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tE243EF8E2510DF9100DC653F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE212C64E291BE24B000E4F65 /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE243EFAA2510E08D00DC653F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE212C650291BE252000E4F65 /* RswiftLibrary 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\tE212C64B291BE1DB000E4F65 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE212C64C291BE1DB000E4F65 /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EF882510DF9100DC653F = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE212C64B291BE1DB000E4F65 /* Packages */,\n\t\t\t\tE243EF932510DF9100DC653F /* RswiftUI */,\n\t\t\t\tE243EFAE2510E08D00DC653F /* RswiftUIAppClip */,\n\t\t\t\tE243EF922510DF9100DC653F /* Products */,\n\t\t\t\tE243EFC12510E0D900DC653F /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EF922510DF9100DC653F /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EF912510DF9100DC653F /* RswiftUI.app */,\n\t\t\t\tE243EFAD2510E08D00DC653F /* RswiftUIAppClip.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EF932510DF9100DC653F /* RswiftUI */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EF942510DF9100DC653F /* RswiftUIApp.swift */,\n\t\t\t\tE243EF962510DF9100DC653F /* ContentView.swift */,\n\t\t\t\tE243EF982510DF9200DC653F /* Assets.xcassets */,\n\t\t\t\tE243EF9D2510DF9200DC653F /* Info.plist */,\n\t\t\t\tE243EF9A2510DF9200DC653F /* Preview Content */,\n\t\t\t);\n\t\t\tpath = RswiftUI;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EF9A2510DF9200DC653F /* Preview Content */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EF9B2510DF9200DC653F /* Preview Assets.xcassets */,\n\t\t\t);\n\t\t\tpath = \"Preview Content\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFAE2510E08D00DC653F /* RswiftUIAppClip */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EFAF2510E08D00DC653F /* RswiftUIAppClipApp.swift */,\n\t\t\t\tE243EFB12510E08D00DC653F /* ContentView.swift */,\n\t\t\t\tE243EFB32510E08E00DC653F /* ClipAssets.xcassets */,\n\t\t\t\tE243EFB82510E08E00DC653F /* Info.plist */,\n\t\t\t\tE243EFB92510E08E00DC653F /* RswiftUIAppClip.entitlements */,\n\t\t\t\tE243EFB52510E08E00DC653F /* Preview Content */,\n\t\t\t);\n\t\t\tpath = RswiftUIAppClip;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFB52510E08E00DC653F /* Preview Content */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EFB62510E08E00DC653F /* Preview Assets.xcassets */,\n\t\t\t);\n\t\t\tpath = \"Preview Content\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE243EFC12510E0D900DC653F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE243EFC22510E0D900DC653F /* Rswift.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tE243EF902510DF9100DC653F /* RswiftUI */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E243EFA02510DF9200DC653F /* Build configuration list for PBXNativeTarget \"RswiftUI\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE243EF8D2510DF9100DC653F /* Sources */,\n\t\t\t\tE243EF8E2510DF9100DC653F /* Frameworks */,\n\t\t\t\tE243EF8F2510DF9100DC653F /* Resources */,\n\t\t\t\tE243EFBD2510E08E00DC653F /* Embed App Clips */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE212C655291BE2D9000E4F65 /* PBXTargetDependency */,\n\t\t\t\tE243EFBB2510E08E00DC653F /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = RswiftUI;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE212C64D291BE24B000E4F65 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = RswiftUI;\n\t\t\tproductReference = E243EF912510DF9100DC653F /* RswiftUI.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tE243EFAC2510E08D00DC653F /* RswiftUIAppClip */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = E243EFC02510E08E00DC653F /* Build configuration list for PBXNativeTarget \"RswiftUIAppClip\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tE243EFA92510E08D00DC653F /* Sources */,\n\t\t\t\tE243EFAA2510E08D00DC653F /* Frameworks */,\n\t\t\t\tE243EFAB2510E08D00DC653F /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE212C652291BE2C0000E4F65 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = RswiftUIAppClip;\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE212C64F291BE252000E4F65 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = RswiftUIAppClip;\n\t\t\tproductReference = E243EFAD2510E08D00DC653F /* RswiftUIAppClip.app */;\n\t\t\tproductType = \"com.apple.product-type.application.on-demand-install-capable\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tE243EF892510DF9100DC653F /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tBuildIndependentTargetsInParallel = YES;\n\t\t\t\tLastSwiftUpdateCheck = 1200;\n\t\t\t\tLastUpgradeCheck = 1500;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tE243EF902510DF9100DC653F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 12.0;\n\t\t\t\t\t};\n\t\t\t\t\tE243EFAC2510E08D00DC653F = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 12.0;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = E243EF8C2510DF9100DC653F /* Build configuration list for PBXProject \"RswiftUI\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = E243EF882510DF9100DC653F;\n\t\t\tproductRefGroup = E243EF922510DF9100DC653F /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tE243EF902510DF9100DC653F /* RswiftUI */,\n\t\t\t\tE243EFAC2510E08D00DC653F /* RswiftUIAppClip */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tE243EF8F2510DF9100DC653F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE243EF9C2510DF9200DC653F /* Preview Assets.xcassets in Resources */,\n\t\t\t\tE243EF992510DF9200DC653F /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE243EFAB2510E08D00DC653F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE243EFB72510E08E00DC653F /* Preview Assets.xcassets in Resources */,\n\t\t\t\tE2CD1B0C2510F900000ACEFB /* Assets.xcassets in Resources */,\n\t\t\t\tE243EFB42510E08E00DC653F /* ClipAssets.xcassets 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\tE243EF8D2510DF9100DC653F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE243EF972510DF9100DC653F /* ContentView.swift in Sources */,\n\t\t\t\tE243EF952510DF9100DC653F /* RswiftUIApp.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tE243EFA92510E08D00DC653F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE243EFB22510E08D00DC653F /* ContentView.swift in Sources */,\n\t\t\t\tE243EFB02510E08D00DC653F /* RswiftUIAppClipApp.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\tE212C652291BE2C0000E4F65 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E212C651291BE2C0000E4F65 /* RswiftGenerateInternalResources */;\n\t\t};\n\t\tE212C655291BE2D9000E4F65 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E212C654291BE2D9000E4F65 /* RswiftGenerateInternalResources */;\n\t\t};\n\t\tE243EFBB2510E08E00DC653F /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = E243EFAC2510E08D00DC653F /* RswiftUIAppClip */;\n\t\t\ttargetProxy = E243EFBA2510E08E00DC653F /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\tE243EF9E2510DF9200DC653F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE243EF9F2510DF9200DC653F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_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_ENABLE_OBJC_WEAK = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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 = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\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\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE243EFA12510DF9200DC653F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"RswiftUI/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = RswiftUI/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\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\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftUI;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE243EFA22510DF9200DC653F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"RswiftUI/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = RswiftUI/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\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\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftUI;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tE243EFBE2510E08E00DC653F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = RswiftUIAppClip/RswiftUIAppClip.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"RswiftUIAppClip/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = RswiftUIAppClip/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftUI.Clip;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tE243EFBF2510E08E00DC653F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_ENTITLEMENTS = RswiftUIAppClip/RswiftUIAppClip.entitlements;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"RswiftUIAppClip/Preview Content\\\"\";\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = RswiftUIAppClip/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.RswiftUI.Clip;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tE243EF8C2510DF9100DC653F /* Build configuration list for PBXProject \"RswiftUI\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE243EF9E2510DF9200DC653F /* Debug */,\n\t\t\t\tE243EF9F2510DF9200DC653F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE243EFA02510DF9200DC653F /* Build configuration list for PBXNativeTarget \"RswiftUI\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE243EFA12510DF9200DC653F /* Debug */,\n\t\t\t\tE243EFA22510DF9200DC653F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tE243EFC02510E08E00DC653F /* Build configuration list for PBXNativeTarget \"RswiftUIAppClip\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tE243EFBE2510E08E00DC653F /* Debug */,\n\t\t\t\tE243EFBF2510E08E00DC653F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\tE212C64D291BE24B000E4F65 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE212C64F291BE252000E4F65 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE212C651291BE2C0000E4F65 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n\t\tE212C654291BE2D9000E4F65 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = E243EF892510DF9100DC653F /* Project object */;\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI.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": "Examples/RswiftUI/RswiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUI.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"cd466d6e8c5ffd2f2b61165d37b0646f09068e1e\",\n        \"version\" : \"2.9.0\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/ClipAssets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/ClipAssets.xcassets/MyColor.colorset/Contents.json",
    "content": "{\n  \"colors\" : [\n    {\n      \"color\" : {\n        \"platform\" : \"ios\",\n        \"reference\" : \"systemTealColor\"\n      },\n      \"idiom\" : \"universal\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"color\" : {\n        \"platform\" : \"ios\",\n        \"reference\" : \"systemOrangeColor\"\n      },\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/ContentView.swift",
    "content": "//\n//  ContentView.swift\n//  RswiftUIAppClip\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n    var body: some View {\n        Text(\"Hello, App Clip!\")\n            .padding()\n\n        Image(R.image.handIgnoreme)\n            .resizable()\n            .aspectRatio(1, contentMode: .fit)\n            .frame(width: 140)\n            .border(Color(R.color.myColor))\n    }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n    static var previews: some View {\n        ContentView()\n    }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/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>CFBundleDisplayName</key>\n\t<string>RswiftUI</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>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIApplicationSceneManifest</key>\n\t<dict>\n\t\t<key>UIApplicationSupportsMultipleScenes</key>\n\t\t<true/>\n\t</dict>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n\t<key>UILaunchScreen</key>\n\t<dict/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/Preview Content/Preview Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/RswiftUIAppClip.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    <key>com.apple.developer.parent-application-identifiers</key>\n    <array>\n        <string>$(AppIdentifierPrefix)nl.mathijskadijk.RswiftUI</string>\n    </array>\n</dict>\n</plist>"
  },
  {
    "path": "Examples/RswiftUI/RswiftUIAppClip/RswiftUIAppClipApp.swift",
    "content": "//\n//  RswiftUIAppClipApp.swift\n//  RswiftUIAppClip\n//\n//  Created by Tom Lokhorst on 2020-09-15.\n//\n\nimport SwiftUI\n\n@main\nstruct RswiftUIAppClipApp: App {\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n        }\n    }\n}\n"
  },
  {
    "path": "Examples/RtvApp/.rswiftignore",
    "content": "# Filtering single file\nResourceApp/Images/Sky.tiff\n\n # Corrupt line\n\n# Ignore all files containing '.ignoreme.'\n**/*.ignoreme.*\n\n# Explicitly include single file\n!ResourceApp/ExplicitInclude.ignoreme.png\n\n# Explicitly include all files containing '.dont.ignoreme.'\n!**/*.dont.ignoreme.*\n"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  ResourceApp-tvOS\n//\n//  Created by Carl Hill-Popper on 3/24/16.\n//  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n}\n\n"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Contents.json",
    "content": "{\n  \"layers\" : [\n    {\n      \"filename\" : \"Front.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Middle.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Back.imagestacklayer\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Contents.json",
    "content": "{\n  \"layers\" : [\n    {\n      \"filename\" : \"Front.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Middle.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Back.imagestacklayer\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}\n"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/Contents.json",
    "content": "{\n  \"assets\" : [\n    {\n      \"size\" : \"1280x768\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"App Icon - Large.imagestack\",\n      \"role\" : \"primary-app-icon\"\n    },\n    {\n      \"size\" : \"400x240\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"App Icon - Small.imagestack\",\n      \"role\" : \"primary-app-icon\"\n    },\n    {\n      \"size\" : \"2320x720\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"Top Shelf Image Wide.imageset\",\n      \"role\" : \"top-shelf-image-wide\"\n    },\n    {\n      \"size\" : \"1920x720\",\n      \"idiom\" : \"tv\",\n      \"filename\" : \"Top Shelf Image.imageset\",\n      \"role\" : \"top-shelf-image\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/Top Shelf Image Wide.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Brand Assets.brandassets/Top Shelf Image.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/BrightWhite.colorset/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"color\" : {\n        \"color-space\" : \"srgb\",\n        \"components\" : {\n          \"red\" : \"1.000\",\n          \"alpha\" : \"1.000\",\n          \"blue\" : \"1.000\",\n          \"green\" : \"1.000\"\n        }\n      }\n    }\n  ]\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Back.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"allWhiteSmall.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Back.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Contents.json",
    "content": "{\n  \"layers\" : [\n    {\n      \"filename\" : \"Front.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Middle.imagestacklayer\"\n    },\n    {\n      \"filename\" : \"Back.imagestacklayer\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Front.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"first.pdf\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Front.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"tv\",\n      \"filename\" : \"second.pdf\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"tv\",\n      \"scale\" : \"2x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/ImageStackAsset.imagestack/Middle.imagestacklayer/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Assets.xcassets/LaunchImage.launchimage/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"tv\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"11.0\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"orientation\" : \"landscape\",\n      \"idiom\" : \"tv\",\n      \"extent\" : \"full-screen\",\n      \"minimum-system-version\" : \"9.0\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder.AppleTV.Storyboard\" version=\"3.0\" toolsVersion=\"21507\" targetRuntime=\"AppleTV\" propertyAccessControl=\"none\" useAutolayout=\"YES\" colorMatched=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <device id=\"appleTV\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"tvOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"21505\"/>\n        <capability name=\"System colors in document resources\" minToolsVersion=\"11.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"y3c-jy-aDJ\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"wfy-db-euE\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"1920\" height=\"1080\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"2Fg-tm-zcG\">\n                                <rect key=\"frame\" x=\"939\" y=\"519\" width=\"42\" height=\"42\"/>\n                                <color key=\"backgroundColor\" systemColor=\"systemYellowColor\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" constant=\"42\" id=\"1Rz-Hd-6JQ\"/>\n                                    <constraint firstAttribute=\"height\" constant=\"42\" id=\"iWV-bG-a6B\"/>\n                                </constraints>\n                            </view>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"0.0\" green=\"0.0\" blue=\"0.0\" alpha=\"0.0\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"2Fg-tm-zcG\" firstAttribute=\"centerY\" secondItem=\"8bC-Xf-vdC\" secondAttribute=\"centerY\" id=\"HPj-Jx-jJz\"/>\n                            <constraint firstItem=\"2Fg-tm-zcG\" firstAttribute=\"centerX\" secondItem=\"8bC-Xf-vdC\" secondAttribute=\"centerX\" id=\"v8J-BR-Ibj\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-32\" y=\"-74\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <systemColor name=\"systemYellowColor\">\n            <color red=\"1\" green=\"0.80000000000000004\" blue=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n        </systemColor>\n    </resources>\n</document>\n"
  },
  {
    "path": "Examples/RtvApp/ResourceApp-tvOS/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>CFBundleIcons</key>\n\t<dict/>\n\t<key>CFBundleIcons~ipad</key>\n\t<dict/>\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>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>arm64</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RtvApp/ResourceAppTests-tvOS/ImageTests.swift",
    "content": "//\n//  ImagesTests.swift\n//  ResourceAppTests-tvOS\n//\n//  Created by Mathijs Kadijk on 20-07-15.\n//  Copyright (c) 2015 Mathijs Kadijk. All rights reserved.\n//\nimport UIKit\nimport XCTest\n@testable import ResourceApp_tvOS\n\nclass ImagesTests: XCTestCase {\n\n  func testNonNilImages() throws {\n    XCTAssertNotNil(R.image.imageStackAsset())\n  }\n}\n"
  },
  {
    "path": "Examples/RtvApp/ResourceAppTests-tvOS/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>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RtvApp/ResourceAppTests-tvOS/ValidationTests.swift",
    "content": "//\n//  ValidationTests.swift\n//  ResourceAppTests-tvOS\n//\n//  Created by Mathijs Kadijk on 06/04/2019.\n//  Copyright © 2019 Mathijs Kadijk. All rights reserved.\n//\n\nimport UIKit\nimport XCTest\n@testable import ResourceApp_tvOS\n\nclass ValidationTests: XCTestCase {\n\n  func testValidation() throws {\n    try R.validate()\n  }\n}\n\n"
  },
  {
    "path": "Examples/RtvApp/RtvApp.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 52;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tD56470312258CA8A005F5E7A /* ValidationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D56470302258CA8A005F5E7A /* ValidationTests.swift */; };\n\t\tDEF5599A1CA4873D009B8C51 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEF559991CA4873D009B8C51 /* AppDelegate.swift */; };\n\t\tDEF5599F1CA4873D009B8C51 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEF5599D1CA4873D009B8C51 /* Main.storyboard */; };\n\t\tDEF559A11CA4873D009B8C51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DEF559A01CA4873D009B8C51 /* Assets.xcassets */; };\n\t\tE26B761B2451E7D100E1170F /* ImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E26B761A2451E7D100E1170F /* ImageTests.swift */; };\n\t\tE2C415D428F6E5E00028D537 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E2C415D328F6E5E00028D537 /* RswiftLibrary */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tDEF559B01CA48892009B8C51 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = D55C6CB01B5D757300301B0D /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = DEF559961CA4873D009B8C51;\n\t\t\tremoteInfo = \"ResourceApp-tvOS\";\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\tD56470302258CA8A005F5E7A /* ValidationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValidationTests.swift; sourceTree = \"<group>\"; };\n\t\tD5B799881C1B8F0C009EA901 /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = System/Library/Frameworks/AVKit.framework; sourceTree = SDKROOT; };\n\t\tDEF559971CA4873D009B8C51 /* ResourceApp-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"ResourceApp-tvOS.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tDEF559991CA4873D009B8C51 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\tDEF5599E1CA4873D009B8C51 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\tDEF559A01CA4873D009B8C51 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\tDEF559A21CA4873D009B8C51 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tDEF559AB1CA48892009B8C51 /* ResourceAppTests-tvOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = \"ResourceAppTests-tvOS.xctest\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tDEF559AF1CA48892009B8C51 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\tE26B761A2451E7D100E1170F /* ImageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageTests.swift; sourceTree = \"<group>\"; };\n\t\tE2C415D228F6E5C60028D537 /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tDEF559941CA4873D009B8C51 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2C415D428F6E5E00028D537 /* RswiftLibrary in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDEF559A81CA48892009B8C51 /* 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/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t065D32753EEB6C7AE2FA201F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5B799881C1B8F0C009EA901 /* AVKit.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CAF1B5D757300301B0D = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2C415D128F6E5C60028D537 /* Packages */,\n\t\t\t\tDEF559981CA4873D009B8C51 /* ResourceApp-tvOS */,\n\t\t\t\tDEF559AC1CA48892009B8C51 /* ResourceAppTests-tvOS */,\n\t\t\t\tD55C6CB91B5D757300301B0D /* Products */,\n\t\t\t\t065D32753EEB6C7AE2FA201F /* Frameworks */,\n\t\t\t);\n\t\t\tindentWidth = 2;\n\t\t\tsourceTree = \"<group>\";\n\t\t\ttabWidth = 2;\n\t\t\tusesTabs = 0;\n\t\t};\n\t\tD55C6CB91B5D757300301B0D /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDEF559971CA4873D009B8C51 /* ResourceApp-tvOS.app */,\n\t\t\t\tDEF559AB1CA48892009B8C51 /* ResourceAppTests-tvOS.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD5CE930B1CA966C6009D0E62 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDEF559AF1CA48892009B8C51 /* Info.plist */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDEF559981CA4873D009B8C51 /* ResourceApp-tvOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tDEF559991CA4873D009B8C51 /* AppDelegate.swift */,\n\t\t\t\tDEF5599D1CA4873D009B8C51 /* Main.storyboard */,\n\t\t\t\tDEF559A01CA4873D009B8C51 /* Assets.xcassets */,\n\t\t\t\tDEF559A21CA4873D009B8C51 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = \"ResourceApp-tvOS\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tDEF559AC1CA48892009B8C51 /* ResourceAppTests-tvOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5CE930B1CA966C6009D0E62 /* Supporting Files */,\n\t\t\t\tD56470302258CA8A005F5E7A /* ValidationTests.swift */,\n\t\t\t\tE26B761A2451E7D100E1170F /* ImageTests.swift */,\n\t\t\t);\n\t\t\tpath = \"ResourceAppTests-tvOS\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2C415D128F6E5C60028D537 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2C415D228F6E5C60028D537 /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tDEF559961CA4873D009B8C51 /* ResourceApp-tvOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = DEF559A31CA4873D009B8C51 /* Build configuration list for PBXNativeTarget \"ResourceApp-tvOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDEF559931CA4873D009B8C51 /* Sources */,\n\t\t\t\tDEF559941CA4873D009B8C51 /* Frameworks */,\n\t\t\t\tDEF559951CA4873D009B8C51 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE2E58383291D6428006E17D9 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"ResourceApp-tvOS\";\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE2C415D328F6E5E00028D537 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = \"ResourceApp-tvOS\";\n\t\t\tproductReference = DEF559971CA4873D009B8C51 /* ResourceApp-tvOS.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\tDEF559AA1CA48892009B8C51 /* ResourceAppTests-tvOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = DEF559B21CA48892009B8C51 /* Build configuration list for PBXNativeTarget \"ResourceAppTests-tvOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDEF559A71CA48892009B8C51 /* Sources */,\n\t\t\t\tDEF559A81CA48892009B8C51 /* Frameworks */,\n\t\t\t\tDEF559A91CA48892009B8C51 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tDEF559B11CA48892009B8C51 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"ResourceAppTests-tvOS\";\n\t\t\tproductName = \"ResourceAppTests-tvOS\";\n\t\t\tproductReference = DEF559AB1CA48892009B8C51 /* ResourceAppTests-tvOS.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tD55C6CB01B5D757300301B0D /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftMigration = 0700;\n\t\t\t\tLastSwiftUpdateCheck = 1000;\n\t\t\t\tLastUpgradeCheck = 1410;\n\t\t\t\tORGANIZATIONNAME = \"Mathijs Kadijk\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\tDEF559961CA4873D009B8C51 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3;\n\t\t\t\t\t\tLastSwiftMigration = 1140;\n\t\t\t\t\t};\n\t\t\t\t\tDEF559AA1CA48892009B8C51 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3;\n\t\t\t\t\t\tLastSwiftMigration = 1140;\n\t\t\t\t\t\tTestTargetID = DEF559961CA4873D009B8C51;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = D55C6CB31B5D757300301B0D /* Build configuration list for PBXProject \"RtvApp\" */;\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\tBase,\n\t\t\t\tes,\n\t\t\t\tja,\n\t\t\t\tnl,\n\t\t\t);\n\t\t\tmainGroup = D55C6CAF1B5D757300301B0D;\n\t\t\tproductRefGroup = D55C6CB91B5D757300301B0D /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tDEF559961CA4873D009B8C51 /* ResourceApp-tvOS */,\n\t\t\t\tDEF559AA1CA48892009B8C51 /* ResourceAppTests-tvOS */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tDEF559951CA4873D009B8C51 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDEF559A11CA4873D009B8C51 /* Assets.xcassets in Resources */,\n\t\t\t\tDEF5599F1CA4873D009B8C51 /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDEF559A91CA48892009B8C51 /* 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/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tDEF559931CA4873D009B8C51 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDEF5599A1CA4873D009B8C51 /* AppDelegate.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDEF559A71CA48892009B8C51 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD56470312258CA8A005F5E7A /* ValidationTests.swift in Sources */,\n\t\t\t\tE26B761B2451E7D100E1170F /* ImageTests.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\tDEF559B11CA48892009B8C51 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = DEF559961CA4873D009B8C51 /* ResourceApp-tvOS */;\n\t\t\ttargetProxy = DEF559B01CA48892009B8C51 /* PBXContainerItemProxy */;\n\t\t};\n\t\tE2E58383291D6428006E17D9 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E2E58382291D6428006E17D9 /* RswiftGenerateInternalResources */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\tDEF5599D1CA4873D009B8C51 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tDEF5599E1CA4873D009B8C51 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tD55C6CD71B5D757300301B0D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = 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_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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\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_SYMBOLS_PRIVATE_EXTERN = NO;\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\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSUPPORTED_PLATFORMS = \"appletvsimulator appletvos\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD55C6CD81B5D757300301B0D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = 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_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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\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\tIPHONEOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSUPPORTED_PLATFORMS = \"appletvsimulator appletvos\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tDEF559A41CA4873D009B8C51 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tDEVELOPMENT_TEAM = BQF78J8BF9;\n\t\t\t\tINFOPLIST_FILE = \"ResourceApp-tvOS/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.ResourceApp-tvOS\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tDEF559A51CA4873D009B8C51 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tDEVELOPMENT_TEAM = BQF78J8BF9;\n\t\t\t\tINFOPLIST_FILE = \"ResourceApp-tvOS/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);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.ResourceApp-tvOS\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 3;\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tDEF559B31CA48892009B8C51 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tINFOPLIST_FILE = \"ResourceAppTests-tvOS/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\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.ResourceAppTests-tvOS\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/ResourceApp-tvOS.app/ResourceApp-tvOS\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tDEF559B41CA48892009B8C51 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tINFOPLIST_FILE = \"ResourceAppTests-tvOS/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\tPRODUCT_BUNDLE_IDENTIFIER = \"nl.mathijskadijk.ResourceAppTests-tvOS\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = appletvos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/ResourceApp-tvOS.app/ResourceApp-tvOS\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 12.0;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tD55C6CB31B5D757300301B0D /* Build configuration list for PBXProject \"RtvApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD55C6CD71B5D757300301B0D /* Debug */,\n\t\t\t\tD55C6CD81B5D757300301B0D /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tDEF559A31CA4873D009B8C51 /* Build configuration list for PBXNativeTarget \"ResourceApp-tvOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tDEF559A41CA4873D009B8C51 /* Debug */,\n\t\t\t\tDEF559A51CA4873D009B8C51 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tDEF559B21CA48892009B8C51 /* Build configuration list for PBXNativeTarget \"ResourceAppTests-tvOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tDEF559B31CA48892009B8C51 /* Debug */,\n\t\t\t\tDEF559B41CA48892009B8C51 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\tE2C415D328F6E5E00028D537 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n\t\tE2E58382291D6428006E17D9 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = D55C6CB01B5D757300301B0D /* Project object */;\n}\n"
  },
  {
    "path": "Examples/RtvApp/RtvApp.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": "Examples/RtvApp/RtvApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RtvApp/RtvApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"cd466d6e8c5ffd2f2b61165d37b0646f09068e1e\",\n        \"version\" : \"2.9.0\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/RtvApp/RtvApp.xcodeproj/xcshareddata/xcschemes/ResourceApp-tvOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"DEF559961CA4873D009B8C51\"\n               BuildableName = \"ResourceApp-tvOS.app\"\n               BlueprintName = \"ResourceApp-tvOS\"\n               ReferencedContainer = \"container:RtvApp.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      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"DEF559AA1CA48892009B8C51\"\n               BuildableName = \"ResourceAppTests-tvOS.xctest\"\n               BlueprintName = \"ResourceAppTests-tvOS\"\n               ReferencedContainer = \"container:RtvApp.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 = \"DEF559961CA4873D009B8C51\"\n            BuildableName = \"ResourceApp-tvOS.app\"\n            BlueprintName = \"ResourceApp-tvOS\"\n            ReferencedContainer = \"container:RtvApp.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 = \"DEF559961CA4873D009B8C51\"\n            BuildableName = \"ResourceApp-tvOS.app\"\n            BlueprintName = \"ResourceApp-tvOS\"\n            ReferencedContainer = \"container:RtvApp.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": "Examples/RtvApp/RtvApp.xcodeproj/xcshareddata/xcschemes/ResourceAppTests-tvOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1410\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"DEF559AA1CA48892009B8C51\"\n               BuildableName = \"ResourceAppTests-tvOS.xctest\"\n               BlueprintName = \"ResourceAppTests-tvOS\"\n               ReferencedContainer = \"container:RtvApp.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   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Examples/RwatchApp/.rswiftignore",
    "content": "# Filtering single file\nResourceApp/Images/Sky.tiff\n\n # Corrupt line\n\n# Ignore all files containing '.ignoreme.'\n**/*.ignoreme.*\n\n# Explicitly include single file\n!ResourceApp/ExplicitInclude.ignoreme.png\n\n# Explicitly include all files containing '.dont.ignoreme.'\n!**/*.dont.ignoreme.*\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"notificationCenter\",\n      \"scale\" : \"2x\",\n      \"size\" : \"24x24\",\n      \"subtype\" : \"38mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"notificationCenter\",\n      \"scale\" : \"2x\",\n      \"size\" : \"27.5x27.5\",\n      \"subtype\" : \"42mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"companionSettings\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"companionSettings\",\n      \"scale\" : \"3x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"appLauncher\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\",\n      \"subtype\" : \"38mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"appLauncher\",\n      \"scale\" : \"2x\",\n      \"size\" : \"44x44\",\n      \"subtype\" : \"40mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"appLauncher\",\n      \"scale\" : \"2x\",\n      \"size\" : \"50x50\",\n      \"subtype\" : \"44mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"quickLook\",\n      \"scale\" : \"2x\",\n      \"size\" : \"86x86\",\n      \"subtype\" : \"38mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"quickLook\",\n      \"scale\" : \"2x\",\n      \"size\" : \"98x98\",\n      \"subtype\" : \"42mm\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"role\" : \"quickLook\",\n      \"scale\" : \"2x\",\n      \"size\" : \"108x108\",\n      \"subtype\" : \"44mm\"\n    },\n    {\n      \"idiom\" : \"watch-marketing\",\n      \"scale\" : \"1x\",\n      \"size\" : \"1024x1024\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS/Base.lproj/Interface.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder.WatchKit.Storyboard\" version=\"3.0\" toolsVersion=\"14313.13.2\" targetRuntime=\"watchKit\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"AgC-eL-Hgc\">\n    <device id=\"watch38\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14283.9\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBWatchKitPlugin\" version=\"14238.4.1\"/>\n    </dependencies>\n    <scenes>\n        <!--Interface Controller-->\n        <scene sceneID=\"aou-V4-d1y\">\n            <objects>\n                <controller id=\"AgC-eL-Hgc\" customClass=\"InterfaceController\" customModule=\"ResourceApp_watchOS\" customModuleProvider=\"target\">\n                    <items>\n                        <label alignment=\"left\" text=\"Label\" id=\"aJY-ZP-k4H\"/>\n                    </items>\n                    <connections>\n                        <outlet property=\"label\" destination=\"aJY-ZP-k4H\" id=\"WUA-gH-gWV\"/>\n                    </connections>\n                </controller>\n            </objects>\n            <point key=\"canvasLocation\" x=\"220\" y=\"345\"/>\n        </scene>\n        <!--Static Notification Interface Controller-->\n        <scene sceneID=\"AEw-b0-oYE\">\n            <objects>\n                <notificationController id=\"YCC-NB-fut\">\n                    <items>\n                        <label alignment=\"left\" text=\"Alert Label\" numberOfLines=\"0\" id=\"IdU-wH-bcW\"/>\n                    </items>\n                    <notificationCategory key=\"notificationCategory\" identifier=\"myCategory\" id=\"JfB-70-Muf\"/>\n                    <connections>\n                        <outlet property=\"notificationAlertLabel\" destination=\"IdU-wH-bcW\" id=\"JKC-fr-R95\"/>\n                        <segue destination=\"4sK-HA-Art\" kind=\"relationship\" relationship=\"dynamicNotificationInterface\" id=\"kXh-Jw-8B1\"/>\n                        <segue destination=\"eXb-UN-Cd0\" kind=\"relationship\" relationship=\"dynamicInteractiveNotificationInterface\" id=\"mpB-YA-K8N\"/>\n                    </connections>\n                </notificationController>\n            </objects>\n            <point key=\"canvasLocation\" x=\"220\" y=\"643\"/>\n        </scene>\n        <!--Notification Controller-->\n        <scene sceneID=\"ZPc-GJ-vnh\">\n            <objects>\n                <controller id=\"4sK-HA-Art\" customClass=\"NotificationController\" customModule=\"ResourceApp_watchOS\" customModuleProvider=\"target\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"468\" y=\"643\"/>\n        </scene>\n        <!--Notification Controller-->\n        <scene sceneID=\"Niz-AI-uX2\">\n            <objects>\n                <controller id=\"eXb-UN-Cd0\" customClass=\"NotificationController\" customModule=\"ResourceApp_watchOS\" customModuleProvider=\"target\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"468\" y=\"345\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS/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>CFBundleDisplayName</key>\n\t<string>ResourceApp</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>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t</array>\n\t<key>WKCompanionAppBundleIdentifier</key>\n\t<string>nl.mathijskadijk.ResourceApp</string>\n\t<key>WKWatchKitApp</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \"<=145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Contents.json",
    "content": "{\n  \"assets\" : [\n    {\n      \"filename\" : \"Circular.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"circular\"\n    },\n    {\n      \"filename\" : \"Extra Large.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"extra-large\"\n    },\n    {\n      \"filename\" : \"Graphic Bezel.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"graphic-bezel\"\n    },\n    {\n      \"filename\" : \"Graphic Circular.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"graphic-circular\"\n    },\n    {\n      \"filename\" : \"Graphic Corner.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"graphic-corner\"\n    },\n    {\n      \"filename\" : \"Graphic Extra Large.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"graphic-extra-large\"\n    },\n    {\n      \"filename\" : \"Graphic Large Rectangular.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"graphic-large-rectangular\"\n    },\n    {\n      \"filename\" : \"Modular.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"modular\"\n    },\n    {\n      \"filename\" : \"Utilitarian.imageset\",\n      \"idiom\" : \"watch\",\n      \"role\" : \"utilitarian\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \"<=145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \"<=145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \"<=145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \"<=145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">161\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">145\"\n    },\n    {\n      \"idiom\" : \"watch\",\n      \"scale\" : \"2x\",\n      \"screen-width\" : \">183\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/MyColor.colorset/Contents.json",
    "content": "{\n  \"colors\" : [\n    {\n      \"color\" : {\n        \"color-space\" : \"extended-srgb\",\n        \"components\" : {\n          \"alpha\" : \"1.000\",\n          \"blue\" : \"0.188\",\n          \"green\" : \"0.187\",\n          \"red\" : \"1.000\"\n        }\n      },\n      \"idiom\" : \"universal\"\n    },\n    {\n      \"appearances\" : [\n        {\n          \"appearance\" : \"luminosity\",\n          \"value\" : \"dark\"\n        }\n      ],\n      \"color\" : {\n        \"color-space\" : \"extended-srgb\",\n        \"components\" : {\n          \"alpha\" : \"1.000\",\n          \"blue\" : \"1.000\",\n          \"green\" : \"0.838\",\n          \"red\" : \"0.392\"\n        }\n      },\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Assets.xcassets/hand.ignoreme.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"filename\" : \"hand.ignoreme.png\",\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/ExtensionDelegate.swift",
    "content": "//\n//  ExtensionDelegate.swift\n//  ResourceApp-watchOS Extension\n//\n//  Created by Lammert Westerhoff on 28/08/2018.\n//  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n//\n\nimport WatchKit\n\nclass ExtensionDelegate: NSObject, WKExtensionDelegate {\n\n    func applicationDidFinishLaunching() {\n        // Perform any final initialization of your application.\n    }\n\n    func applicationDidBecomeActive() {\n        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n    }\n\n    func applicationWillResignActive() {\n        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n        // Use this method to pause ongoing tasks, disable timers, etc.\n    }\n\n    func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {\n        // Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one.\n        for task in backgroundTasks {\n            // Use a switch statement to check the task type\n            switch task {\n            case let backgroundTask as WKApplicationRefreshBackgroundTask:\n                // Be sure to complete the background task once you’re done.\n                backgroundTask.setTaskCompletedWithSnapshot(false)\n            case let snapshotTask as WKSnapshotRefreshBackgroundTask:\n                // Snapshot tasks have a unique completion call, make sure to set your expiration date\n                snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil)\n            case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask:\n                // Be sure to complete the connectivity task once you’re done.\n                connectivityTask.setTaskCompletedWithSnapshot(false)\n            case let urlSessionTask as WKURLSessionRefreshBackgroundTask:\n                // Be sure to complete the URL session task once you’re done.\n                urlSessionTask.setTaskCompletedWithSnapshot(false)\n            case let relevantShortcutTask as WKRelevantShortcutRefreshBackgroundTask:\n                // Be sure to complete the relevant-shortcut task once you're done.\n                relevantShortcutTask.setTaskCompletedWithSnapshot(false)\n            case let intentDidRunTask as WKIntentDidRunRefreshBackgroundTask:\n                // Be sure to complete the intent-did-run task once you're done.\n                intentDidRunTask.setTaskCompletedWithSnapshot(false)\n            default:\n                // make sure to complete unhandled task types\n                task.setTaskCompletedWithSnapshot(false)\n            }\n        }\n    }\n\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/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>CFBundleDisplayName</key>\n\t<string>ResourceApp-watchOS Extension</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>XPC!</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>NSExtension</key>\n\t<dict>\n\t\t<key>NSExtensionAttributes</key>\n\t\t<dict>\n\t\t\t<key>WKAppBundleIdentifier</key>\n\t\t\t<string>nl.mathijskadijk.ResourceApp.watchkitapp</string>\n\t\t</dict>\n\t\t<key>NSExtensionPointIdentifier</key>\n\t\t<string>com.apple.watchkit</string>\n\t</dict>\n\t<key>WKExtensionDelegateClassName</key>\n\t<string>$(PRODUCT_MODULE_NAME).ExtensionDelegate</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/InterfaceController.swift",
    "content": "//\n//  InterfaceController.swift\n//  ResourceApp-watchOS Extension\n//\n//  Created by Lammert Westerhoff on 28/08/2018.\n//  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n//\n\nimport WatchKit\nimport Foundation\n\nimport RswiftResources\n\n\n\nclass InterfaceController: WKInterfaceController {\n\n    @IBOutlet weak var label: WKInterfaceLabel!\n\n    override func awake(withContext context: Any?) {\n        super.awake(withContext: context)\n\n        label.setText(R.string.localizable.quote(11))\n        label.setTextColor(UIColor(named: R.color.myColor.name))\n    }\n    \n    override func willActivate() {\n        // This method is called when watch view controller is about to be visible to user\n        super.willActivate()\n    }\n    \n    override func didDeactivate() {\n        // This method is called when watch view controller is no longer visible\n        super.didDeactivate()\n    }\n\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/NotificationController.swift",
    "content": "//\n//  NotificationController.swift\n//  ResourceApp-watchOS Extension\n//\n//  Created by Lammert Westerhoff on 28/08/2018.\n//  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n//\n\nimport WatchKit\nimport Foundation\nimport UserNotifications\n\n\nclass NotificationController: WKUserNotificationInterfaceController {\n\n    override init() {\n        // Initialize variables here.\n        super.init()\n        \n        // Configure interface objects here.\n    }\n\n    override func willActivate() {\n        // This method is called when watch view controller is about to be visible to user\n        super.willActivate()\n    }\n\n    override func didDeactivate() {\n        // This method is called when watch view controller is no longer visible\n        super.didDeactivate()\n    }\n\n    override func didReceive(_ notification: UNNotification) {\n        // This method is called when a notification needs to be presented.\n        // Implement it if you use a dynamic notification interface.\n        // Populate your dynamic notification interface as quickly as possible.\n    }\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/PushNotificationPayload.apns",
    "content": "{\n    \"aps\": {\n        \"alert\": {\n            \"body\": \"Test message\",\n            \"title\": \"Optional title\",\n            \"subtitle\": \"Optional subtitle\"\n        },\n        \"category\": \"myCategory\",\n        \"thread-id\":\"5280\"\n    },\n    \n    \"WatchKit Simulator Actions\": [\n        {\n            \"title\": \"First Button\",\n            \"identifier\": \"firstButtonAction\"\n        }\n    ],\n    \n    \"customKey\": \"Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App.\"\n}\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Strings/en.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  ResourceApp\n\n  Created by Lammert Westerhoff on 28/08/2018.\n  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n*/\n\none = Zero; // Duplicate keys are ignored, a warning from R.swift would be nice\none = One;\ntwo = 2;\n\n\"quote\" = \"There are %d lights!\";\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Strings/es.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  ResourceApp\n\n  Created by Lammert Westerhoff on 28/08/2018.\n  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n*/\n\n\none = Uno;\ntwo = 2;\n\n\"quote\" = \"Hay %d luces!\";\n\n"
  },
  {
    "path": "Examples/RwatchApp/ResourceApp-watchOS-Extension/Strings/ja.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  ResourceApp\n\n  Created by Lammert Westerhoff on 28/08/2018.\n  Copyright © 2018 Mathijs Kadijk. All rights reserved.\n*/\n\n\none = \"一つ\";\ntwo = 2;\n\n\"quote\" = \"%dつの光があります！\";\n\"japanese only\" = \"Not translated in other languages, and there is no Base\";\n"
  },
  {
    "path": "Examples/RwatchApp/RwatchApp.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 52;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t2F5FBC192135561200A83A69 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2F5FBC172135561200A83A69 /* Interface.storyboard */; };\n\t\t2F5FBC1B2135561300A83A69 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2F5FBC1A2135561300A83A69 /* Assets.xcassets */; };\n\t\t2F5FBC222135561300A83A69 /* ResourceApp-watchOS-Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 2F5FBC212135561300A83A69 /* ResourceApp-watchOS-Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };\n\t\t2F5FBC272135561300A83A69 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F5FBC262135561300A83A69 /* InterfaceController.swift */; };\n\t\t2F5FBC292135561300A83A69 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F5FBC282135561300A83A69 /* ExtensionDelegate.swift */; };\n\t\t2F5FBC2B2135561300A83A69 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F5FBC2A2135561300A83A69 /* NotificationController.swift */; };\n\t\t2F5FBC2D2135561400A83A69 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2F5FBC2C2135561400A83A69 /* Assets.xcassets */; };\n\t\t2F5FBC622135665000A83A69 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2F5FBC642135665000A83A69 /* Localizable.strings */; };\n\t\tE2C415D828F6F9A90028D537 /* RswiftLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = E2C415D728F6F9A90028D537 /* RswiftLibrary */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t2F5FBC232135561300A83A69 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = D55C6CB01B5D757300301B0D /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 2F5FBC202135561300A83A69;\n\t\t\tremoteInfo = \"ResourceApp-watchOS Extension\";\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t2F5FBC362135561400A83A69 /* Embed App Extensions */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 13;\n\t\t\tfiles = (\n\t\t\t\t2F5FBC222135561300A83A69 /* ResourceApp-watchOS-Extension.appex in Embed App Extensions */,\n\t\t\t);\n\t\t\tname = \"Embed App Extensions\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t2F5FBC152135561200A83A69 /* ResourceApp-watchOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = \"ResourceApp-watchOS.app\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t2F5FBC182135561200A83A69 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = \"<group>\"; };\n\t\t2F5FBC1A2135561300A83A69 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t2F5FBC1C2135561300A83A69 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t2F5FBC212135561300A83A69 /* ResourceApp-watchOS-Extension.appex */ = {isa = PBXFileReference; explicitFileType = \"wrapper.app-extension\"; includeInIndex = 0; path = \"ResourceApp-watchOS-Extension.appex\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t2F5FBC262135561300A83A69 /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = \"<group>\"; };\n\t\t2F5FBC282135561300A83A69 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = \"<group>\"; };\n\t\t2F5FBC2A2135561300A83A69 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = \"<group>\"; };\n\t\t2F5FBC2C2135561400A83A69 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t2F5FBC2E2135561400A83A69 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t2F5FBC2F2135561400A83A69 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = \"<group>\"; };\n\t\t2F5FBC632135665000A83A69 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t2F5FBC652135665400A83A69 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t2F5FBC662135665600A83A69 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\tD5B799881C1B8F0C009EA901 /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = System/Library/Frameworks/AVKit.framework; sourceTree = SDKROOT; };\n\t\tE2C415D628F6F99A0028D537 /* R.swift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = R.swift; path = ../..; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t0082C73FC737DBCB914FD29C /* 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\t2F5FBC1E2135561300A83A69 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE2C415D828F6F9A90028D537 /* RswiftLibrary 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\t065D32753EEB6C7AE2FA201F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD5B799881C1B8F0C009EA901 /* AVKit.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2F5FBC162135561200A83A69 /* ResourceApp-watchOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2F5FBC172135561200A83A69 /* Interface.storyboard */,\n\t\t\t\t2F5FBC1A2135561300A83A69 /* Assets.xcassets */,\n\t\t\t\t2F5FBC1C2135561300A83A69 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = \"ResourceApp-watchOS\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2F5FBC252135561300A83A69 /* ResourceApp-watchOS-Extension */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2F5FBC262135561300A83A69 /* InterfaceController.swift */,\n\t\t\t\t2F5FBC282135561300A83A69 /* ExtensionDelegate.swift */,\n\t\t\t\t2F5FBC2A2135561300A83A69 /* NotificationController.swift */,\n\t\t\t\t2F5FBC2C2135561400A83A69 /* Assets.xcassets */,\n\t\t\t\t2F5FBC2E2135561400A83A69 /* Info.plist */,\n\t\t\t\t2F5FBC2F2135561400A83A69 /* PushNotificationPayload.apns */,\n\t\t\t\t2F5FBC5F2135660300A83A69 /* Strings */,\n\t\t\t);\n\t\t\tpath = \"ResourceApp-watchOS-Extension\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2F5FBC5F2135660300A83A69 /* Strings */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2F5FBC642135665000A83A69 /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = Strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD55C6CAF1B5D757300301B0D = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2C415D528F6F99A0028D537 /* Packages */,\n\t\t\t\t2F5FBC162135561200A83A69 /* ResourceApp-watchOS */,\n\t\t\t\t2F5FBC252135561300A83A69 /* ResourceApp-watchOS-Extension */,\n\t\t\t\tD55C6CB91B5D757300301B0D /* Products */,\n\t\t\t\t065D32753EEB6C7AE2FA201F /* Frameworks */,\n\t\t\t);\n\t\t\tindentWidth = 2;\n\t\t\tsourceTree = \"<group>\";\n\t\t\ttabWidth = 2;\n\t\t\tusesTabs = 0;\n\t\t};\n\t\tD55C6CB91B5D757300301B0D /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2F5FBC152135561200A83A69 /* ResourceApp-watchOS.app */,\n\t\t\t\t2F5FBC212135561300A83A69 /* ResourceApp-watchOS-Extension.appex */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE2C415D528F6F99A0028D537 /* Packages */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE2C415D628F6F99A0028D537 /* R.swift */,\n\t\t\t);\n\t\t\tname = Packages;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t2F5FBC142135561200A83A69 /* ResourceApp-watchOS */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 2F5FBC372135561400A83A69 /* Build configuration list for PBXNativeTarget \"ResourceApp-watchOS\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t2F5FBC132135561200A83A69 /* Resources */,\n\t\t\t\t2F5FBC362135561400A83A69 /* Embed App Extensions */,\n\t\t\t\t0082C73FC737DBCB914FD29C /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t2F5FBC242135561300A83A69 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"ResourceApp-watchOS\";\n\t\t\tproductName = \"ResourceApp-watchOS\";\n\t\t\tproductReference = 2F5FBC152135561200A83A69 /* ResourceApp-watchOS.app */;\n\t\t\tproductType = \"com.apple.product-type.application.watchapp2\";\n\t\t};\n\t\t2F5FBC202135561300A83A69 /* ResourceApp-watchOS-Extension */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 2F5FBC332135561400A83A69 /* Build configuration list for PBXNativeTarget \"ResourceApp-watchOS-Extension\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t2F5FBC1D2135561300A83A69 /* Sources */,\n\t\t\t\t2F5FBC1E2135561300A83A69 /* Frameworks */,\n\t\t\t\t2F5FBC1F2135561300A83A69 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\tE212C641291BD9DF000E4F65 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"ResourceApp-watchOS-Extension\";\n\t\t\tpackageProductDependencies = (\n\t\t\t\tE2C415D728F6F9A90028D537 /* RswiftLibrary */,\n\t\t\t);\n\t\t\tproductName = \"ResourceApp-watchOS Extension\";\n\t\t\tproductReference = 2F5FBC212135561300A83A69 /* ResourceApp-watchOS-Extension.appex */;\n\t\t\tproductType = \"com.apple.product-type.watchkit2-extension\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tD55C6CB01B5D757300301B0D /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftMigration = 0700;\n\t\t\t\tLastSwiftUpdateCheck = 1000;\n\t\t\t\tLastUpgradeCheck = 0930;\n\t\t\t\tORGANIZATIONNAME = \"Mathijs Kadijk\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t2F5FBC142135561200A83A69 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.0;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t\t2F5FBC202135561300A83A69 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.0;\n\t\t\t\t\t\tLastSwiftMigration = 1140;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = D55C6CB31B5D757300301B0D /* Build configuration list for PBXProject \"RwatchApp\" */;\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\tBase,\n\t\t\t\tes,\n\t\t\t\tja,\n\t\t\t\tnl,\n\t\t\t);\n\t\t\tmainGroup = D55C6CAF1B5D757300301B0D;\n\t\t\tproductRefGroup = D55C6CB91B5D757300301B0D /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t2F5FBC142135561200A83A69 /* ResourceApp-watchOS */,\n\t\t\t\t2F5FBC202135561300A83A69 /* ResourceApp-watchOS-Extension */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t2F5FBC132135561200A83A69 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t2F5FBC1B2135561300A83A69 /* Assets.xcassets in Resources */,\n\t\t\t\t2F5FBC192135561200A83A69 /* Interface.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t2F5FBC1F2135561300A83A69 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t2F5FBC2D2135561400A83A69 /* Assets.xcassets in Resources */,\n\t\t\t\t2F5FBC622135665000A83A69 /* Localizable.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\t2F5FBC1D2135561300A83A69 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t2F5FBC2B2135561300A83A69 /* NotificationController.swift in Sources */,\n\t\t\t\t2F5FBC292135561300A83A69 /* ExtensionDelegate.swift in Sources */,\n\t\t\t\t2F5FBC272135561300A83A69 /* InterfaceController.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\t2F5FBC242135561300A83A69 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 2F5FBC202135561300A83A69 /* ResourceApp-watchOS-Extension */;\n\t\t\ttargetProxy = 2F5FBC232135561300A83A69 /* PBXContainerItemProxy */;\n\t\t};\n\t\tE212C641291BD9DF000E4F65 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tproductRef = E212C640291BD9DF000E4F65 /* RswiftGenerateInternalResources */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t2F5FBC172135561200A83A69 /* Interface.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t2F5FBC182135561200A83A69 /* Base */,\n\t\t\t);\n\t\t\tname = Interface.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2F5FBC642135665000A83A69 /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t2F5FBC632135665000A83A69 /* en */,\n\t\t\t\t2F5FBC652135665400A83A69 /* es */,\n\t\t\t\t2F5FBC662135665600A83A69 /* ja */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t2F5FBC342135561400A83A69 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tINFOPLIST_FILE = \"ResourceApp-watchOS-Extension/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\"@executable_path/../../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.ResourceApp.watchkitapp.watchkitextension;\n\t\t\t\tPRODUCT_NAME = \"${TARGET_NAME}\";\n\t\t\t\tSDKROOT = watchos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 4;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t2F5FBC352135561400A83A69 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tINFOPLIST_FILE = \"ResourceApp-watchOS-Extension/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\"@executable_path/../../Frameworks\",\n\t\t\t\t);\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.ResourceApp.watchkitapp.watchkitextension;\n\t\t\t\tPRODUCT_NAME = \"${TARGET_NAME}\";\n\t\t\t\tSDKROOT = watchos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 4;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t2F5FBC382135561400A83A69 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tIBSC_MODULE = ResourceApp_watchOS_Extension;\n\t\t\t\tINFOPLIST_FILE = \"ResourceApp-watchOS/Info.plist\";\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.ResourceApp.watchkitapp;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = watchos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 4;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t2F5FBC392135561400A83A69 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\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_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tIBSC_MODULE = ResourceApp_watchOS_Extension;\n\t\t\t\tINFOPLIST_FILE = \"ResourceApp-watchOS/Info.plist\";\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = nl.mathijskadijk.ResourceApp.watchkitapp;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = watchos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 4;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tD55C6CD71B5D757300301B0D /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = 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_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_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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\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_SYMBOLS_PRIVATE_EXTERN = NO;\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\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTED_PLATFORMS = \"watchsimulator watchos\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tWATCHOS_DEPLOYMENT_TARGET = 5.0;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD55C6CD81B5D757300301B0D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = 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_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_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\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\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\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\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSUPPORTED_PLATFORMS = \"watchsimulator watchos\";\n\t\t\t\tSWIFT_VERSION = 4.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTVOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t\tWATCHOS_DEPLOYMENT_TARGET = 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\t2F5FBC332135561400A83A69 /* Build configuration list for PBXNativeTarget \"ResourceApp-watchOS-Extension\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t2F5FBC342135561400A83A69 /* Debug */,\n\t\t\t\t2F5FBC352135561400A83A69 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t2F5FBC372135561400A83A69 /* Build configuration list for PBXNativeTarget \"ResourceApp-watchOS\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t2F5FBC382135561400A83A69 /* Debug */,\n\t\t\t\t2F5FBC392135561400A83A69 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD55C6CB31B5D757300301B0D /* Build configuration list for PBXProject \"RwatchApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD55C6CD71B5D757300301B0D /* Debug */,\n\t\t\t\tD55C6CD81B5D757300301B0D /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\n/* Begin XCSwiftPackageProductDependency section */\n\t\tE212C640291BD9DF000E4F65 /* RswiftGenerateInternalResources */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = \"plugin:RswiftGenerateInternalResources\";\n\t\t};\n\t\tE2C415D728F6F9A90028D537 /* RswiftLibrary */ = {\n\t\t\tisa = XCSwiftPackageProductDependency;\n\t\t\tproductName = RswiftLibrary;\n\t\t};\n/* End XCSwiftPackageProductDependency section */\n\t};\n\trootObject = D55C6CB01B5D757300301B0D /* Project object */;\n}\n"
  },
  {
    "path": "Examples/RwatchApp/RwatchApp.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": "Examples/RwatchApp/RwatchApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.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>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Examples/RwatchApp/RwatchApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"fddd1c00396eed152c45a46bea9f47b98e59301d\",\n        \"version\" : \"1.2.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"cd466d6e8c5ffd2f2b61165d37b0646f09068e1e\",\n        \"version\" : \"2.9.0\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Examples/RwatchApp/RwatchApp.xcodeproj/xcshareddata/xcschemes/ResourceApp-watchOS (Notification).xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1210\"\n   version = \"2.0\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"2F5FBC142135561200A83A69\"\n               BuildableName = \"ResourceApp-watchOS.app\"\n               BlueprintName = \"ResourceApp-watchOS\"\n               ReferencedContainer = \"container:RwatchApp.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      <Testables>\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      launchAutomaticallySubstyle = \"8\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"2F5FBC142135561200A83A69\"\n            BuildableName = \"ResourceApp-watchOS.app\"\n            BlueprintName = \"ResourceApp-watchOS\"\n            ReferencedContainer = \"container:RwatchApp.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      launchAutomaticallySubstyle = \"8\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"2F5FBC142135561200A83A69\"\n            BuildableName = \"ResourceApp-watchOS.app\"\n            BlueprintName = \"ResourceApp-watchOS\"\n            ReferencedContainer = \"container:RwatchApp.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": "Examples/RwatchApp/RwatchApp.xcodeproj/xcshareddata/xcschemes/ResourceApp-watchOS.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1210\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\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 = \"2F5FBC142135561200A83A69\"\n               BuildableName = \"ResourceApp-watchOS.app\"\n               BlueprintName = \"ResourceApp-watchOS\"\n               ReferencedContainer = \"container:RwatchApp.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      <Testables>\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      notificationPayloadFile = \"PushNotificationPayload.apns\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"2F5FBC142135561200A83A69\"\n            BuildableName = \"ResourceApp-watchOS.app\"\n            BlueprintName = \"ResourceApp-watchOS\"\n            ReferencedContainer = \"container:RwatchApp.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 = \"2F5FBC142135561200A83A69\"\n            BuildableName = \"ResourceApp-watchOS.app\"\n            BlueprintName = \"ResourceApp-watchOS\"\n            ReferencedContainer = \"container:RwatchApp.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": "License",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014-2023 Mathijs Kadijk\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": "Package.resolved",
    "content": "{\n  \"pins\" : [\n    {\n      \"identity\" : \"swift-argument-parser\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/apple/swift-argument-parser\",\n      \"state\" : {\n        \"revision\" : \"41982a3656a71c768319979febd796c6fd111d5c\",\n        \"version\" : \"1.5.0\"\n      }\n    },\n    {\n      \"identity\" : \"xcodeedit\",\n      \"kind\" : \"remoteSourceControl\",\n      \"location\" : \"https://github.com/tomlokhorst/XcodeEdit\",\n      \"state\" : {\n        \"revision\" : \"0e550cdee72844b35431afc3a1e176042be6d0f0\",\n        \"version\" : \"2.13.0\"\n      }\n    }\n  ],\n  \"version\" : 2\n}\n"
  },
  {
    "path": "Package.swift",
    "content": "// swift-tools-version:5.6\nimport PackageDescription\n\nlet package = Package(\n    name: \"Rswift\",\n    platforms: [\n        .macOS(.v10_15),\n        .iOS(.v11),\n        .tvOS(.v11),\n        .watchOS(.v4),\n    ],\n    products: [\n        .executable(name: \"rswift\", targets: [\"rswift\"]),\n        .library(name: \"RswiftLibrary\", targets: [\"RswiftResources\"]),\n        .plugin(name: \"RswiftGenerateInternalResources\", targets: [\"RswiftGenerateInternalResources\"]),\n        .plugin(name: \"RswiftGeneratePublicResources\", targets: [\"RswiftGeneratePublicResources\"]),\n        .plugin(name: \"RswiftGenerateResourcesCommand\", targets: [\"RswiftGenerateResourcesCommand\"]),\n        .plugin(name: \"RswiftModifyXcodePackages\", targets: [\"RswiftModifyXcodePackages\"]),\n    ],\n    dependencies: [\n        .package(url: \"https://github.com/tomlokhorst/XcodeEdit\", from: \"2.13.0\"),\n        .package(url: \"https://github.com/apple/swift-argument-parser\", from: \"1.5.0\"),\n    ],\n    targets: [\n        .target(name: \"RswiftResources\"),\n        .target(name: \"RswiftGenerators\", dependencies: [\"RswiftResources\"]),\n        .target(name: \"RswiftParsers\", dependencies: [\"RswiftResources\", \"XcodeEdit\"]),\n\n        .testTarget(name: \"RswiftGeneratorsTests\", dependencies: [\"RswiftGenerators\"]),\n        .testTarget(name: \"RswiftParsersTests\", dependencies: [\"RswiftParsers\"]),\n\n        // Executable that brings all previous parts together\n        .executableTarget(name: \"rswift\", dependencies: [\n            .target(name: \"RswiftParsers\"),\n            .target(name: \"RswiftGenerators\"),\n            .product(name: \"ArgumentParser\", package: \"swift-argument-parser\"),\n        ]),\n\n        .plugin(name: \"RswiftGenerateInternalResources\", capability: .buildTool(), dependencies: [\"rswift\"]),\n        .plugin(name: \"RswiftGeneratePublicResources\", capability: .buildTool(), dependencies: [\"rswift\"]),\n        .plugin(\n            name: \"RswiftGenerateResourcesCommand\",\n            capability: .command(\n                intent: .custom(\n                    verb: \"rswift-generate-resources\",\n                    description: \"Rswift generate resources\"\n                ),\n                permissions: [\n                    .writeToPackageDirectory(reason: \"Rswift generates a file with statically typed, autocompleted resources\")\n                ]\n            ),\n            dependencies: [\"rswift\"]\n        ),\n        .plugin(\n            name: \"RswiftModifyXcodePackages\",\n            capability: .command(\n                intent: .custom(\n                    verb: \"rswift-modify-xcode-packages\",\n                    description: \"Rswift modify Xcode packages\"\n                ),\n                permissions: [\n                    .writeToPackageDirectory(reason: \"Modifies Xcode project to fix package reference for plugins\")\n                ]\n            ),\n            dependencies: [\"rswift\"]\n        ),\n    ]\n)\n"
  },
  {
    "path": "Plugins/RswiftGenerateInternalResources/RswiftGenerateInternalResources.swift",
    "content": "//\n//  RswiftGenerateInternalResources.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-10-19.\n//\n\nimport Foundation\nimport PackagePlugin\n\n@main\nstruct RswiftGenerateInternalResources: BuildToolPlugin {\n    func createBuildCommands(context: PluginContext, target: Target) async throws -> [Command] {\n        guard let target = target as? SourceModuleTarget else { return [] }\n\n        let outputDirectoryPath = context.pluginWorkDirectory\n            .appending(subpath: target.name)\n\n        try FileManager.default.createDirectory(atPath: outputDirectoryPath.string, withIntermediateDirectories: true)\n\n        let rswiftPath = outputDirectoryPath.appending(subpath: \"R.generated.swift\")\n\n        let sourceFiles = target.sourceFiles\n            .filter { $0.type == .resource || $0.type == .unknown }\n            .map(\\.path.string)\n\n        let inputFilesArguments = sourceFiles\n            .flatMap { [\"--input-files\", $0 ] }\n\n        let bundleSource = target.kind == .generic ? \"module\" : \"finder\"\n        let description = \"\\(target.kind) module \\(target.name)\"\n\n        return [\n            .buildCommand(\n                displayName: \"R.swift generate resources for \\(description)\",\n                executable: try context.tool(named: \"rswift\").path,\n                arguments: [\n                    \"generate\", rswiftPath.string,\n                    \"--input-type\", \"input-files\",\n                    \"--bundle-source\", bundleSource,\n                ] + inputFilesArguments,\n                outputFiles: [rswiftPath]\n            ),\n        ]\n    }\n}\n\n#if canImport(XcodeProjectPlugin)\nimport XcodeProjectPlugin\n\nextension RswiftGenerateInternalResources: XcodeBuildToolPlugin {\n    func createBuildCommands(context: XcodePluginContext, target: XcodeTarget) throws -> [Command] {\n\n        let resourcesDirectoryPath = context.pluginWorkDirectory\n            .appending(subpath: target.displayName)\n            .appending(subpath: \"Resources\")\n\n        try FileManager.default.createDirectory(atPath: resourcesDirectoryPath.string, withIntermediateDirectories: true)\n\n        let rswiftPath = resourcesDirectoryPath.appending(subpath: \"R.generated.swift\")\n\n        let description: String\n        if let product = target.product {\n            description = \"\\(product.kind) \\(target.displayName)\"\n        } else {\n            description = target.displayName\n        }\n\n        return [\n            .buildCommand(\n                displayName: \"R.swift generate resources for \\(description)\",\n                executable: try context.tool(named: \"rswift\").path,\n                arguments: [\n                    \"generate\", rswiftPath.string,\n                    \"--target\", target.displayName,\n                    \"--input-type\", \"xcodeproj\",\n                    \"--bundle-source\", \"finder\",\n                ],\n                outputFiles: [rswiftPath]\n            ),\n        ]\n    }\n}\n\n#endif\n"
  },
  {
    "path": "Plugins/RswiftGeneratePublicResources/RswiftGeneratePublicResources.swift",
    "content": "//\n//  RswiftGeneratePublicResources.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-10-19.\n//\n\nimport Foundation\nimport PackagePlugin\n\n@main\nstruct RswiftGeneratePublicResources: BuildToolPlugin {\n    func createBuildCommands(context: PluginContext, target: Target) async throws -> [Command] {\n        guard let target = target as? SourceModuleTarget else { return [] }\n\n        let outputDirectoryPath = context.pluginWorkDirectory\n            .appending(subpath: target.name)\n\n        try FileManager.default.createDirectory(atPath: outputDirectoryPath.string, withIntermediateDirectories: true)\n\n        let rswiftPath = outputDirectoryPath.appending(subpath: \"R.generated.swift\")\n\n        let sourceFiles = target.sourceFiles\n            .filter { $0.type == .resource || $0.type == .unknown }\n            .map(\\.path.string)\n\n        let inputFilesArguments = sourceFiles\n            .flatMap { [\"--input-files\", $0 ] }\n\n        let bundleSource = target.kind == .generic ? \"module\" : \"finder\"\n        let description = \"\\(target.kind) module \\(target.name)\"\n\n        return [\n            .buildCommand(\n                displayName: \"R.swift generate resources for \\(description)\",\n                executable: try context.tool(named: \"rswift\").path,\n                arguments: [\n                    \"generate\", rswiftPath.string,\n                    \"--input-type\", \"input-files\",\n                    \"--bundle-source\", bundleSource,\n                    \"--access-level\", \"public\",\n                ] + inputFilesArguments,\n                outputFiles: [rswiftPath]\n            ),\n        ]\n    }\n}\n\n#if canImport(XcodeProjectPlugin)\nimport XcodeProjectPlugin\n\nextension RswiftGeneratePublicResources: XcodeBuildToolPlugin {\n    func createBuildCommands(context: XcodePluginContext, target: XcodeTarget) throws -> [Command] {\n\n        let resourcesDirectoryPath = context.pluginWorkDirectory\n            .appending(subpath: target.displayName)\n            .appending(subpath: \"Resources\")\n\n        try FileManager.default.createDirectory(atPath: resourcesDirectoryPath.string, withIntermediateDirectories: true)\n\n        let rswiftPath = resourcesDirectoryPath.appending(subpath: \"R.generated.swift\")\n\n        let description: String\n        if let product = target.product {\n            description = \"\\(product.kind) \\(target.displayName)\"\n        } else {\n            description = target.displayName\n        }\n\n        return [\n            .buildCommand(\n                displayName: \"R.swift generate resources for \\(description)\",\n                executable: try context.tool(named: \"rswift\").path,\n                arguments: [\n                    \"generate\", rswiftPath.string,\n                    \"--target\", target.displayName,\n                    \"--input-type\", \"xcodeproj\",\n                    \"--bundle-source\", \"finder\",\n                    \"--access-level\", \"public\",\n                ],\n                outputFiles: [rswiftPath]\n            ),\n        ]\n    }\n}\n\n#endif\n"
  },
  {
    "path": "Plugins/RswiftGenerateResourcesCommand/RswiftGenerateResourcesCommand.swift",
    "content": "//\n//  RswiftGenerateResourcesCommand.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2022-10-19.\n//\n\nimport Foundation\nimport PackagePlugin\n\n@main\nstruct RswiftGenerateResourcesCommand: CommandPlugin {\n    func performCommand(context: PluginContext, arguments externalArgs: [String]) async throws {\n\n        let rswift = try context.tool(named: \"rswift\")\n        let parsedArguments = ParsedArguments.parse(arguments: externalArgs)\n        let outputSubpath = parsedArguments.outputFile ?? \"R.generated.swift\"\n\n        for target in context.package.targets {\n            guard let target = target as? SourceModuleTarget else { continue }\n            guard parsedArguments.targets.contains(target.name) || parsedArguments.targets.isEmpty else { continue }\n\n            let outputPath = target.directory.appending(subpath: outputSubpath)\n\n            let sourceFiles = target.sourceFiles\n                .filter { $0.type == .resource || $0.type == .unknown }\n                .map(\\.path.string)\n\n            let inputFilesArguments = sourceFiles\n                .flatMap { [\"--input-files\", $0 ] }\n\n            let bundleSource = target.kind == .generic ? \"module\" : \"finder\"\n\n            let arguments: [String] = [\n                \"generate\", outputPath.string,\n                \"--input-type\", \"input-files\",\n                \"--bundle-source\", bundleSource,\n            ] + inputFilesArguments + parsedArguments.remaining\n\n            do {\n                try rswift.run(arguments: arguments, environment: nil)\n            } catch let error as RunError {\n                Diagnostics.error(error.description)\n            }\n        }\n\n    }\n}\n\n#if canImport(XcodeProjectPlugin)\nimport XcodeProjectPlugin\n\nextension RswiftGenerateResourcesCommand: XcodeCommandPlugin {\n    func performCommand(context: XcodePluginContext, arguments externalArgs: [String]) throws {\n\n        let rswift = try context.tool(named: \"rswift\")\n        let parsedArguments = ParsedArguments.parse(arguments: externalArgs)\n        let outputSubpath = parsedArguments.outputFile ?? \"R.generated.swift\"\n\n        for target in context.xcodeProject.targets {\n            guard parsedArguments.targets.contains(target.displayName) || parsedArguments.targets.isEmpty else { continue }\n\n            let outputPath = context.xcodeProject.directory.appending(subpath: outputSubpath)\n\n            let sourceFiles = target.inputFiles\n                .filter { $0.type == .resource || $0.type == .unknown }\n                .map(\\.path.string)\n\n            let inputFilesArguments = sourceFiles\n                .flatMap { [\"--input-files\", $0 ] }\n\n            let arguments: [String] = [\n                \"generate\", outputPath.string,\n                \"--input-type\", \"input-files\",\n                \"--bundle-source\", \"finder\",\n            ] + inputFilesArguments + parsedArguments.remaining\n\n            var environment: [String: String] = [\n                \"SOURCE_ROOT\": context.xcodeProject.directory.string,\n            ]\n            if let product = target.product {\n                environment[\"PRODUCT_MODULE_NAME\"] = product.name\n            }\n\n            do {\n                try rswift.run(arguments: arguments, environment: environment)\n            } catch let error as RunError {\n                Diagnostics.error(error.description)\n            }\n        }\n\n    }\n}\n\n#endif\n\nstruct ParsedArguments {\n    var targets: [String] = []\n    var remaining: [String] = []\n    var outputFile: String?\n\n    static func parse(arguments: [String]) -> ParsedArguments {\n        var result = ParsedArguments()\n\n        for (key, value) in zip(arguments, arguments.dropFirst()) {\n            if result.outputFile == nil && key.hasSuffix(\".swift\") {\n                result.outputFile = key\n                continue\n            }\n            if result.outputFile == nil && value.hasSuffix(\".swift\") {\n                result.outputFile = value\n                continue\n            }\n\n            if key == \"--target\" {\n                result.targets.append(value)\n            } else if value != \"--target\" {\n                result.remaining.append(value)\n            }\n        }\n\n        return result\n    }\n}\n\nstruct RunError: Error {\n    let description: String\n}\n\nprivate extension PluginContext.Tool {\n    func run(arguments: [String], environment: [String: String]?) throws {\n        let pipe = Pipe()\n        let process = Process()\n        process.executableURL = URL(fileURLWithPath: path.string)\n        process.arguments = arguments\n        process.environment = environment\n        process.standardError = pipe\n\n        try process.run()\n        process.waitUntilExit()\n\n        if process.terminationReason == .exit && process.terminationStatus == 0 {\n            return\n        }\n\n        let data = try pipe.fileHandleForReading.readToEnd()\n        let stderr = data.flatMap { String(data: $0, encoding: .utf8) }\n\n        if let stderr {\n            throw RunError(description: stderr)\n        } else {\n            let problem = \"\\(process.terminationReason.rawValue):\\(process.terminationStatus)\"\n            throw RunError(description: \"\\(name) invocation failed: \\(problem)\")\n        }\n    }\n}\n"
  },
  {
    "path": "Plugins/RswiftModifyXcodePackages/RswiftModifyXcodePackages.swift",
    "content": "//\n//  RswiftModifyXcodePackages.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2022-11-07.\n//\n\nimport Foundation\nimport PackagePlugin\n\n@main\nstruct RswiftModifyXcodePackages: CommandPlugin {\n    func performCommand(context: PluginContext, arguments externalArgs: [String]) async throws {\n        Diagnostics.warning(\"Command only supported as Xcode command plugin\")\n    }\n}\n\n#if canImport(XcodeProjectPlugin)\nimport XcodeProjectPlugin\n\nextension RswiftModifyXcodePackages: XcodeCommandPlugin {\n    func performCommand(context: XcodePluginContext, arguments externalArgs: [String]) throws {\n        let rswift = try context.tool(named: \"rswift\")\n\n        let projectArgument = externalArgs.first { $0.hasSuffix(\".xcodeproj\") }\n        if let projectArgument {\n            let arguments = [\"modify-xcode-packages\", \"--xcodeproj\", projectArgument]\n                + externalArgs.filter { $0 != projectArgument }\n            try rswift.run(arguments: arguments, environment: nil)\n            return\n        }\n\n        let xcodeProjects = try FileManager.default.contentsOfDirectory(atPath: context.xcodeProject.directory.string)\n            .filter { $0.hasSuffix(\".xcodeproj\") }\n\n        guard let xcodeproj = xcodeProjects.first else {\n            Diagnostics.error(\"Can't find .xcodeproj in \\(context.xcodeProject.directory.string). Manually specify .xcodeproj file to this command.\")\n            return\n        }\n\n        if xcodeProjects.count > 1 {\n            Diagnostics.error(\"Found multiple .xcodeproj files in \\(context.xcodeProject.directory.string). Manually specify .xcodeproj file to this command.\")\n            return\n        }\n\n        let arguments = [\"modify-xcode-packages\", \"--xcodeproj\", xcodeproj] + externalArgs\n        try rswift.run(arguments: arguments, environment: nil)\n    }\n}\n\n#endif\n\nprivate extension PluginContext.Tool {\n    func run(arguments: [String], environment: [String: String]?) throws {\n        let pipe = Pipe()\n        let process = Process()\n        process.executableURL = URL(fileURLWithPath: path.string)\n        process.arguments = arguments\n        process.environment = environment\n        process.standardError = pipe\n\n        try process.run()\n        process.waitUntilExit()\n\n        if process.terminationReason == .exit && process.terminationStatus == 0 {\n            return\n        }\n\n        let data = try pipe.fileHandleForReading.readToEnd()\n        let stderr = data.flatMap { String(data: $0, encoding: .utf8) }\n\n        if let stderr {\n            Diagnostics.error(stderr)\n        } else {\n            let problem = \"\\(process.terminationReason.rawValue):\\(process.terminationStatus)\"\n            Diagnostics.error(problem)\n        }\n    }\n}\n"
  },
  {
    "path": "R.swift.podspec",
    "content": "Pod::Spec.new do |spec|\n\n  spec.name         = \"R.swift\"\n  spec.version      = ENV['POD_VERSION']\n  spec.license      = \"MIT\"\n\n  spec.summary      = \"Get strong typed, autocompleted resources like images, fonts and segues in Swift projects\"\n  spec.description  = <<-DESC\n                   R.swift is a tool to get strong typed, autocompleted resources like images, fonts and segues in Swift projects.\n\n                   * Never type string identifiers again\n                   * Supports images, fonts, storyboards, nibs, segues, reuse identifiers and more\n                   * Compile time checks and errors instead of runtime crashes\n                   DESC\n  spec.homepage     = \"https://github.com/mac-cain13/R.swift\"\n  spec.documentation_url = \"https://github.com/mac-cain13/R.swift/tree/master/Documentation\"\n  spec.screenshots  = [ \"https://raw.githubusercontent.com/mac-cain13/R.swift/master/Documentation/Images/DemoUseImage.gif\",\n                        \"https://raw.githubusercontent.com/mac-cain13/R.swift/master/Documentation/Images/DemoRenameImage.gif\" ]\n\n  spec.author             = { \"Mathijs Kadijk\" => \"mkadijk@gmail.com\" }\n  spec.social_media_url   = \"https://twitter.com/mac_cain13\"\n\n  spec.requires_arc       = true\n  spec.source             = { :http => \"https://github.com/mac-cain13/R.swift/releases/download/#{spec.version}/rswift-#{spec.version}.zip\" }\n  spec.swift_version      = \"5.7\"\n\n  spec.osx.deployment_target     = '10.15'\n  spec.ios.deployment_target     = '12'\n  spec.tvos.deployment_target    = '12'\n  spec.watchos.deployment_target = '4'\n\n  spec.preserve_paths = \"rswift\"\n  spec.source_files   = \"Sources/RswiftResources/**/*.swift\"\n  spec.module_name    = \"RswiftResources\"\n\nend\n"
  },
  {
    "path": "README.md",
    "content": "# R.swift [![Version](https://img.shields.io/cocoapods/v/R.swift.svg?style=flat)](https://cocoapods.org/pods/R.swift) [![License](https://img.shields.io/cocoapods/l/R.swift.svg?style=flat)](License) ![Platform](https://img.shields.io/cocoapods/p/R.swift.svg?style=flat)\n\n_Get strong typed, autocompleted resources like images, fonts and segues in Swift projects_\n\n## Why use this?\n\nIt makes your code that uses resources:\n- **Fully typed**, less casting and guessing what a method will return\n- **Compile time checked**, no more incorrect strings that make your app crash at runtime\n- **Autocompleted**, never have to guess that image name again\n\nCurrently you type:\n```swift\nlet icon = UIImage(named: \"settings-icon\")\nlet font = UIFont(name: \"San Francisco\", size: 42)\nlet color = UIColor(named: \"indicator highlight\")\nlet viewController = CustomViewController(nibName: \"CustomView\", bundle: nil)\nlet string = String(format: NSLocalizedString(\"welcome.withName\", comment: \"\"), locale: NSLocale.current, \"Arthur Dent\")\n```\n\nWith R.swift it becomes:\n```swift\nlet icon = R.image.settingsIcon()\nlet font = R.font.sanFrancisco(size: 42)\nlet color = R.color.indicatorHighlight()\nlet viewController = CustomViewController(nib: R.nib.customView)\nlet string = R.string.localizable.welcomeWithName(\"Arthur Dent\")\n```\n\nCheck out [more examples](Documentation/Examples.md) or hear about [how Fabric.app uses R.swift](https://academy.realm.io/posts/slug-javi-soto-building-fabric-in-swift/#rswift-2956)!\n\n## Demo\n\n**Autocompleted images:**\n\n![Autocompleted images](Documentation/Images/DemoUseImage.gif)\n\n**Compiletime checked images:**\n\n![Compiletime checked images](Documentation/Images/DemoRenameImage.gif)\n\nThis is only the beginning, check out [more examples](Documentation/Examples.md)!\n\n## CocoaHeadsNL presentation\n\nMathijs Kadijk presented R.swift at the September 2016 CocoaHeadsNL meetup.\nTalking about the ideas behind R.swift and demonstrating how to move from plain stringly-typed iOS code to statically typed code.\n\n<a href=\"https://www.youtube.com/embed/C8kRUTV9TOA\"><img src=\"https://i.ytimg.com/vi/C8kRUTV9TOA/maxresdefault.jpg\" width=\"560\" alt=\"R.swift presentation at CocoaHeadsNL\"></a>\n\n## Features\n\nAfter installing R.swift into your project you can use the `R`-struct to access resources. If the struct is outdated just build and R.swift will correct any missing/changed/added resources.\n\nR.swift currently supports these types of resources:\n- [Images](Documentation/Examples.md#images)\n- [Fonts](Documentation/Examples.md#custom-fonts)\n- [Resource files](Documentation/Examples.md#resource-files)\n- [Colors](Documentation/Examples.md#colors)\n- [Localized strings](Documentation/Examples.md#localized-strings)\n- [Storyboards](Documentation/Examples.md#storyboards)\n- [Segues](Documentation/Examples.md#segues)\n- [Nibs](Documentation/Examples.md#nibs)\n- [Reusable cells](Documentation/Examples.md#reusable-table-view-cells)\n- [Project](Documentation/Examples.md#project)\n- [Entitlements](Documentation/Examples.md#entitlements)\n- [Info.plist](Documentation/Examples.md#info-plist)\n\nRuntime validation with [`R.validate()`](Documentation/Examples.md#runtime-validation):\n- If all images used in storyboards and nibs are available\n- If all named colors used in storyboards and nibs are available\n- If all view controllers with storyboard identifiers can be loaded\n- If all custom fonts can be loaded\n\n## Q&A\n\n- [Why was R.swift created?](Documentation/QandA.md#why-was-rswift-created)\n- [Why should I choose R.swift over alternative X or Y?](Documentation/QandA.md#why-should-i-choose-rswift-over-alternative-x-or-y)\n- [What are the requirements to run R.swift?](Documentation/QandA.md#what-are-the-requirements-to-run-rswift)\n- [How to fix missing imports in the generated file?](Documentation/QandA.md#how-to-fix-missing-imports-in-the-generated-file)\n- [How to use classes with the same name as their module?](Documentation/QandA.md#how-to-use-classes-with-the-same-name-as-their-module)\n- [Can I ignore resources?](Documentation/Ignoring.md)\n- [Can I use R.swift in a library?](Documentation/QandA.md#can-i-use-rswift-in-a-library)\n- [How does R.swift work?](Documentation/QandA.md#how-does-rswift-work)\n- [How to upgrade to a new major version?](Documentation/Migration.md)\n- [How can I only run specific generators?](Documentation/Ignoring.md#only-run-specific-generators-exclude-rsomething)\n\n## Installation\n\nAs of Rswift 7, Swift Package Manager is the recommended method of installation.\n\n[Demo video: Updating from R.swift 6 to Rswift 7](https://youtu.be/icihJ_hin3I?t=66) (Starting at 1:06, this describes the installation of Rswift 7).\n\n### Xcode project using SPM (Recommended)\n\n[Demo Video: Install R.swift in Xcode with SPM](Documentation/RswiftSPMInstallation.mp4)\n\n1. In Project Settings, on the tab \"Package Dependencies\", click \"+\", search for `https://github.com/mac-cain13/R.swift` and click \"Add Package\".\n2. Select the target that will use R.swift next to \"RswiftLibrary\" and click \"Add Package\".\n4. Now click on your target, on the tab \"Build Phases\", in the section \"Run Build Tool Plug-ins\", click \"+\" and add `RswiftGenerateInternalResources`. ([Screenshot](Documentation/Images/RunBuildToolPluginsRswift.png))\n5. Now the `R` struct should be available in your code, use auto-complete to explore all static references.\n\nNote: The first build you might need to approve the new plugin by clicking the build error warning you about the new plugin.\n\n#### R.swift on Xcode Cloud or any other CI\n\nOn your CI server you can't explicitly allow the build plugin to run, so you need to disable plugin validation to be able to build without user interaction:\n\n5. Run a script on your CI that runs: `defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidatation -bool YES` before Xcode starts building.\n\nOn Xcode Cloud you can add a [custom build script](https://developer.apple.com/documentation/xcode/writing-custom-build-scripts) in `ci_scripts/ci_post_clone.sh` with this line that Xcode will run.\n\n### Package.swift based SPM project\n\n1. Add a dependency in Package.swift:\n    ```swift\n    dependencies: [\n        .package(url: \"https://github.com/mac-cain13/R.swift.git\", from: \"7.0.0\")\n    ]\n    ```\n2. For each relevant target, add a dependency and a plugin\n    ```swift\n    .target(\n        name: \"Example\",\n        dependencies: [.product(name: \"RswiftLibrary\", package: \"R.swift\")],\n        plugins: [.plugin(name: \"RswiftGeneratePublicResources\", package: \"R.swift\")]\n    )\n    ```\n3. Build your project, now the `R` struct should be available in your code, use auto-complete to explore all static references\n\n<details>\n<summary><h3>CocoaPods</h3></summary>\n\n1. Add `pod 'R.swift'` to your [Podfile](http://cocoapods.org/#get_started) and run `pod install`\n2. In Xcode: Click on your project in the file list, choose your target under `TARGETS`, click the `Build Phases` tab and add a `New Run Script Phase` by clicking the little plus icon in the top left\n3. Drag the new `Run Script` phase **above** the `Compile Sources` phase and **below** `Check Pods Manifest.lock`, expand it and paste the following script:\n   ```bash\n   \"$PODS_ROOT/R.swift/rswift\" generate \"$SRCROOT/R.generated.swift\"\n   ```\n4. Add `$SRCROOT/R.generated.swift` to the \"Output Files\" of the Build Phase\n5. Uncheck \"Based on dependency analysis\" so that R.swift is run on each build\n6. Build your project, in Finder you will now see a `R.generated.swift` in the `$SRCROOT`-folder, drag the `R.generated.swift` files into your project and **uncheck** `Copy items if needed`\n\n_Screenshot of the Build Phase can be found [here](Documentation/Images/BuildPhaseExample.png)_\n\n_Tip:_ Add the `*.generated.swift` pattern to your `.gitignore` file to prevent unnecessary conflicts.\n</details>\n\n<details>\n<summary><h3>Manually</h3></summary>\n\n0. Add the [R.swift](https://github.com/mac-cain13/R.swift) library to your project\n1. [Download](https://github.com/mac-cain13/R.swift/releases) a R.swift release, unzip it and put it into your source root directory\n2. In Xcode: Click on your project in the file list, choose your target under `TARGETS`, click the `Build Phases` tab and add a `New Run Script Phase` by clicking the little plus icon in the top left\n3. Drag the new `Run Script` phase **above** the `Compile Sources` phase, expand it and paste the following script:  \n   ```bash\n   \"$SRCROOT/rswift\" generate \"$SRCROOT/R.generated.swift\"\n   ```\n4. Add `$SRCROOT/R.generated.swift` to the \"Output Files\" of the Build Phase\n5. Uncheck \"Based on dependency analysis\" so that R.swift is run on each build\n6. Build your project, in Finder you will now see a `R.generated.swift` in the `$SRCROOT`-folder, drag the `R.generated.swift` files into your project and **uncheck** `Copy items if needed`\n\n_Screenshot of the Build Phase can be found [here](Documentation/Images/ManualBuildPhaseExample.png)_\n\n_Tip:_ Add the `*.generated.swift` pattern to your `.gitignore` file to prevent unnecessary conflicts.\n</details>\n\n## Contribute\n\nWe'll love contributions, read the [contribute docs](Documentation/Contribute.md) for info on how to report issues, submit ideas and submit pull requests!\n\n## License\n\n[R.swift](https://github.com/mac-cain13/R.swift) is created by [Mathijs Kadijk](https://github.com/mac-cain13) and [Tom Lokhorst](https://github.com/tomlokhorst) released under a [MIT License](License).\n"
  },
  {
    "path": "Sources/RswiftGenerators/AccessibilityIdentifier+Generator.swift",
    "content": "//\n//  AccessibilityIdentifier+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-23.\n//\n\nimport Foundation\nimport RswiftResources\n\nprivate protocol AccessibilityIdentifierContainer {\n    var name: String { get }\n    var usedAccessibilityIdentifiers: [String] { get }\n}\n\nextension NibResource: AccessibilityIdentifierContainer {}\nextension StoryboardResource: AccessibilityIdentifierContainer {}\n\npublic struct AccessibilityIdentifier {\n    public static func generateStruct(nibs: [NibResource], storyboards: [StoryboardResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"id\")\n        let qualifiedName = prefix + structName\n\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let containers: [AccessibilityIdentifierContainer] = nibs + storyboards\n        let mergedContainers = Dictionary(grouping: containers, by: \\.name)\n            .mapValues { $0.flatMap(\\.usedAccessibilityIdentifiers) }\n            .filter { $0.value.count > 0 }\n\n        let structs = mergedContainers\n            .map { (name, ids) in\n                generateStruct(\n                    viewControllerName: name,\n                    usedAccessibilityIdentifiers: ids,\n                    prefix: qualifiedName,\n                    warning: warning\n                )\n            }\n            .sorted { $0.name < $1.name }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(structs.count) accessibility identifiers.\"]\n\n        return Struct(comments: comments, name: structName) {\n            for s in structs {\n                s.generateLetBinding()\n                s\n            }\n        }\n    }\n\n    static func generateStruct(viewControllerName: String, usedAccessibilityIdentifiers: [String], prefix: SwiftIdentifier, warning: (String) -> Void) -> Struct {\n        let structName = SwiftIdentifier(name: viewControllerName)\n        let qualifiedName = prefix + structName\n\n        // Deduplicate identifiers, report warnings for empties\n        let groupedIdentifiers = Array(Set(usedAccessibilityIdentifiers))\n            .grouped(bySwiftIdentifier: { $0 })\n        groupedIdentifiers.reportWarningsForDuplicatesAndEmpties(source: \"accessibility identifier\", container: \"in \\(viewControllerName)\", result: \"accessibility identifier\", warning: warning)\n\n        let letbindings = groupedIdentifiers.uniques\n            .map { id in\n                LetBinding(\n                    comments: [\"Accessibility identifier `\\(id)`.\"],\n                    name: SwiftIdentifier(name: id),\n                    valueCodeString: \"\\\"\\(id)\\\"\"\n                )\n            }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(letbindings.count) accessibility identifiers.\"]\n\n        return Struct(comments: comments, name: structName) {\n            letbindings\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/AssetCatalog+Generator.swift",
    "content": "//\n//  AssetCatalog+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-23.\n//\n\nimport Foundation\nimport RswiftResources\n\npublic protocol AssetCatalogContent {\n    var name: String { get }\n    func generateVarGetter() -> VarGetter\n}\n\nextension ColorResource {\n    public static func generateStruct(catalogs: [AssetCatalog], prefix: SwiftIdentifier) -> Struct {\n        let merged: AssetCatalog.Namespace = catalogs.map(\\.root).reduce(.init(), { $0.merging($1) })\n\n        return merged.generateStruct(name: \"color\", resourcesSelector: { $0.colors }, prefix: prefix)\n    }\n}\n\nextension DataResource {\n    public static func generateStruct(catalogs: [AssetCatalog], prefix: SwiftIdentifier) -> Struct {\n        let merged: AssetCatalog.Namespace = catalogs.map(\\.root).reduce(.init(), { $0.merging($1) })\n\n        return merged.generateStruct(name: \"data\", resourcesSelector: { $0.dataAssets }, prefix: prefix)\n    }\n}\n\nextension ImageResource {\n    public static func generateStruct(catalogs: [AssetCatalog], toplevel resources: [ImageResource], prefix: SwiftIdentifier) -> Struct {\n        // Multiple resources can share same name,\n        // for example: Colors.jpg and Colors@2x.jpg are both named \"Colors.jpg\"\n        // Deduplicate these\n        let namedResources = Dictionary(grouping: resources, by: \\.name).values.map(\\.first!)\n\n        var merged: AssetCatalog.Namespace = catalogs.map(\\.root).reduce(.init(), { $0.merging($1) })\n        merged.images += namedResources\n\n        return merged.generateStruct(name: \"image\", resourcesSelector: { $0.images }, prefix: prefix)\n    }\n}\n\nextension AssetCatalog.Namespace {\n    public func generateStruct(name: String, resourcesSelector: (Self) -> [AssetCatalogContent], prefix: SwiftIdentifier) -> Struct {\n        generateStruct(resourceName: name, source: name, path: [], resourcesSelector: resourcesSelector, prefix: prefix)\n    }\n\n    private func generateStruct(resourceName: String, source: String, path: [String], resourcesSelector: (Self) -> [AssetCatalogContent], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: resourceName)\n        let qualifiedName = prefix + structName\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let container = path.isEmpty ? nil : path.joined(separator: \"/\")\n        let allResources = resourcesSelector(self)\n        let groupedResources = allResources.grouped(bySwiftIdentifier: { $0.name })\n        groupedResources.reportWarningsForDuplicatesAndEmpties(source: source, container: container, result: source, warning: warning)\n\n        let vargetters = groupedResources.uniques.map { $0.generateVarGetter() }\n        let otherIdentifiers = groupedResources.uniques.map { SwiftIdentifier(name: $0.name) }\n\n        let mergedNamespaces = AssetCatalogMergedNamespaces(all: subnamespaces, otherIdentifiers: otherIdentifiers)\n        mergedNamespaces.printWarningsForDuplicates(result: resourceName, warning: warning)\n\n        let structs = mergedNamespaces.namespaces\n            .sorted { $0.key < $1.key }\n            .map { (name, namespace) in\n                namespace.generateStruct(\n                    resourceName: name.value,\n                    source: source,\n                    path: path + [name.value],\n                    resourcesSelector: resourcesSelector,\n                    prefix: qualifiedName\n                )\n            }\n            .filter { !$0.isEmpty }\n\n        let comment = [\n            \"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(vargetters.count) \\(resourceName)s\",\n            structs.isEmpty ? \"\" : \", and \\(structs.count) namespaces\",\n            \".\"\n        ].joined()\n\n        let comments = [comment]\n        return Struct(comments: comments, name: structName) {\n            Init.bundle\n            vargetters\n            structs\n\n            for s in structs {\n                s.generateBundleVarGetter(name: s.name.value)\n                s.generateBundleFunction(name: s.name.value)\n            }\n        }\n    }\n}\n\nextension ColorResource: AssetCatalogContent {\n    public func generateVarGetter() -> VarGetter {\n        let fullname = (path + [name]).joined(separator: \"/\")\n        let code = \".init(name: \\\"\\(fullname.escapedStringLiteral)\\\", path: \\(path), bundle: bundle)\"\n        return VarGetter(\n            comments: [\"Color `\\(fullname)`.\"],\n            name: SwiftIdentifier(name: name),\n            typeReference: TypeReference(module: .rswiftResources, rawName: \"ColorResource\"),\n            valueCodeString: code\n        )\n    }\n}\n\nextension DataResource: AssetCatalogContent {\n    public func generateVarGetter() -> VarGetter {\n        let fullname = (path + [name]).joined(separator: \"/\")\n        let odrt = onDemandResourceTags?.debugDescription ?? \"nil\"\n        let code = \".init(name: \\\"\\(fullname.escapedStringLiteral)\\\", path: \\(path), bundle: bundle, onDemandResourceTags: \\(odrt))\"\n        return VarGetter(\n            comments: [\"Data asset `\\(fullname)`.\"],\n            name: SwiftIdentifier(name: name),\n            typeReference: TypeReference(module: .rswiftResources, rawName: \"DataResource\"),\n            valueCodeString: code\n        )\n    }\n}\n\nextension ImageResource: AssetCatalogContent {\n    public func generateVarGetter() -> VarGetter {\n        let locs = locale.map { $0.codeString() } ?? \"nil\"\n        let odrt = onDemandResourceTags?.debugDescription ?? \"nil\"\n        let fullname = (path + [name]).joined(separator: \"/\")\n        let code = \".init(name: \\\"\\(fullname.escapedStringLiteral)\\\", path: \\(path), bundle: bundle, locale: \\(locs), onDemandResourceTags: \\(odrt))\"\n        return VarGetter(\n            comments: [\"Image `\\(fullname)`.\"],\n            name: SwiftIdentifier(name: name),\n            typeReference: TypeReference(module: .rswiftResources, rawName: \"ImageResource\"),\n            valueCodeString: code\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Extensions/Array+Extensions.swift",
    "content": "//\n//  Array+Extensions.swift\n//  RswiftGenerators\n//\n//  Created by Tom Lokhorst on 2022-10-11.\n//\n\nimport Foundation\n\nextension Array where Element: Comparable, Element: Hashable {\n    func uniqueAndSorted() -> [Element] {\n        Set(self).sorted()\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Extensions/String+Extensions.swift",
    "content": "//\n//  String+Extensions.swift\n//  RswiftGenerators\n//\n//  Created by Tom Lokhorst on 2021-04-18.\n//\n\nimport Foundation\n\nextension String {\n    var lowercaseFirstCharacter: String {\n        if self.count <= 1 { return self.lowercased() }\n        let index = self.index(startIndex, offsetBy: 1)\n        return self[..<index].lowercased() + self[index...]\n    }\n\n    var uppercaseFirstCharacter: String {\n        if self.count <= 1 { return self.uppercased() }\n        let index = self.index(startIndex, offsetBy: 1)\n        return self[..<index].uppercased() + self[index...]\n    }\n\n    func indent(with indentation: String) -> String {\n        return self\n            .components(separatedBy: \"\\n\")\n            .map { line in line .isEmpty ? \"\" : \"\\(indentation)\\(line)\" }\n            .joined(separator: \"\\n\")\n    }\n\n    var fullRange: NSRange {\n        return NSRange(location: 0, length: self.count)\n    }\n\n    var escapedStringLiteral: String {\n        return self\n            .replacingOccurrences(of: \"\\\\\", with: \"\\\\\\\\\")\n            .replacingOccurrences(of: \"\\\"\", with: \"\\\\\\\"\")\n            .replacingOccurrences(of: \"\\t\", with: \"\\\\t\")\n            .replacingOccurrences(of: \"\\r\", with: \"\\\\r\")\n            .replacingOccurrences(of: \"\\n\", with: \"\\\\n\")\n    }\n\n    var commentString: String {\n        return self\n            .replacingOccurrences(of: \"\\r\\n\", with: \" \")\n            .replacingOccurrences(of: \"\\r\", with: \" \")\n            .replacingOccurrences(of: \"\\n\", with: \" \")\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/FileResource+Generator.swift",
    "content": "//\n//  FileResource+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-06-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension FileResource {\n    public static func generateStruct(resources: [FileResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"file\")\n        let qualifiedName = prefix + structName\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        // For resource files, the contents of the different locales don't matter, so we just use the first one\n        let firstLocales = Dictionary(grouping: resources, by: \\.filename)\n            .values.map(\\.first!)\n\n        let groupedFiles = firstLocales.grouped(bySwiftIdentifier: \\.filename)\n        groupedFiles.reportWarningsForDuplicatesAndEmpties(source: \"resource file\", result: \"file\", warning: warning)\n\n        let vargetters = groupedFiles.uniques.map { $0.generateVarGetter() }\n//            .sorted { $0.name < $1.name }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(vargetters.count) resource files.\"]\n\n        return Struct(comments: comments, name: structName) {\n            Init.bundle\n            vargetters\n        }\n    }\n}\n\nextension FileResource {\n    func generateVarGetter() -> VarGetter {\n        VarGetter(\n            comments: [\"Resource file `\\(filename)`.\"],\n            name: SwiftIdentifier(name: filename),\n            typeReference: TypeReference(module: .rswiftResources, rawName: \"FileResource\"),\n            valueCodeString: \".init(name: \\\"\\(name.escapedStringLiteral)\\\", pathExtension: \\\"\\(pathExtension.escapedStringLiteral)\\\", bundle: bundle, locale: \\(locale?.codeString() ?? \"nil\"))\"\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/FontResource+Generator.swift",
    "content": "//\n//  FontResource+Generator.swift\n//  rswift\n//\n//  Created by Tom Lokhorst on 2021-04-18.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension FontResource {\n    public static func generateStruct(resources: [FontResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"font\")\n        let qualifiedName = prefix + structName\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let groupedResources = resources.grouped(bySwiftIdentifier: { $0.name })\n        groupedResources.reportWarningsForDuplicatesAndEmpties(source: \"font resource\", result: \"font\", warning: warning)\n\n        let vargetters = groupedResources.uniques.map { $0.generateVarGetter() }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(vargetters.count) fonts.\"]\n\n        return Struct(comments: comments, name: structName, protocols: [.sequence]) {\n            Init.bundle\n            if vargetters.count > 0 {\n                generateMakeIterator(names: vargetters.map(\\.name))\n                generateValidate()\n            }\n            vargetters\n        }\n    }\n\n    private static func generateMakeIterator(names: [SwiftIdentifier]) -> Function {\n        Function(\n            comments: [],\n            name: .init(name: \"makeIterator\"),\n            params: [],\n            returnType: .indexingIterator(.fontResource),\n            valueCodeString: \"[\\(names.map(\\.value).joined(separator: \", \"))].makeIterator()\"\n        )\n    }\n\n    private static func generateValidate() -> Function {\n        Function(\n            comments: [],\n            name: .init(name: \"validate\"),\n            params: [],\n            returnThrows: true,\n            returnType: .void,\n            valueCodeString: #\"\"\"\n            for font in self {\n              if !font.canBeLoaded() { throw RswiftResources.ValidationError(\"[R.swift] Font '\\(font.name)' could not be loaded, is '\\(font.filename)' added to the UIAppFonts array in this targets Info.plist?\") }\n            }\n            \"\"\"#\n        )\n    }\n}\n\nextension FontResource {\n    func generateVarGetter() -> VarGetter {\n        VarGetter(\n            comments: [\"Font `\\(name)`.\"],\n            name: SwiftIdentifier(name: name),\n            typeReference: TypeReference(module: .rswiftResources, rawName: \"FontResource\"),\n            valueCodeString: \".init(name: \\\"\\(name)\\\", bundle: bundle, filename: \\\"\\(filename)\\\")\"\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Nib+Generator.swift",
    "content": "//\n//  NibResource+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-06-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension NibResource {\n    public static func generateStruct(nibs: [NibResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"nib\")\n        let qualifiedName = prefix + structName\n\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        // Unify different localizations of nibs\n        let unifiedNibs = unifyLocalizations(nibs: nibs, warning: warning)\n\n        let groupedNibs = unifiedNibs.grouped(bySwiftIdentifier: \\.name)\n        groupedNibs.reportWarningsForDuplicatesAndEmpties(source: \"xib\", result: \"file\", warning: warning)\n\n        let vargetters = groupedNibs.uniques\n            .map { $0.generateVarGetter() }\n            .sorted { $0.name < $1.name }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(vargetters.count) nibs.\"]\n\n        // additional module references, for use in validate function\n        let additionalModuleReferences = Set(nibs.map { $0.isAppKit ? ModuleReference.appKit : ModuleReference.uiKit })\n\n        return Struct(comments: comments, name: structName, additionalModuleReferences: additionalModuleReferences) {\n            Init.bundle\n\n            vargetters\n\n            if groupedNibs.uniques.count > 0 {\n                generateValidate(nibs: groupedNibs.uniques)\n            }\n        }\n    }\n\n    private static func generateValidate(nibs: [NibResource]) -> Function {\n        Function(\n            comments: [],\n            name: .init(name: \"validate\"),\n            params: [],\n            returnThrows: true,\n            returnType: .void,\n            valueCodeString: nibs.flatMap { $0.generateValidateLines() }.joined(separator: \"\\n\")\n        )\n    }\n\n    private static func unifyLocalizations(nibs: [NibResource], warning: (String) -> Void) -> [NibResource] {\n        var result: [NibResource] = []\n\n        for localizations in Dictionary(grouping: nibs, by: \\.name).values {\n            guard let nib = localizations.first else { continue }\n            let ur = nib.unify(localizations: localizations)\n\n            let diffs: [String] = [\n                ur.differentNames ? \"names\" : nil,\n                ur.differentRootViews ? \"root views\" : nil,\n                ur.differentInitialReusables ? \"initial reusables\" : nil,\n                ur.differentDeploymentTargets ? \"deployment targets\" : nil,\n            ].compactMap { $0 }\n\n            if diffs.count > 0 {\n                warning(\"Skipping generation of nib '\\(nib.name)', because \\(diffs.joined(separator: \", \")) don't match in all localizations\")\n                continue\n            }\n            result.append(ur.resource)\n        }\n\n        return result\n    }\n}\n\nextension NibResource {\n    var genericTypeReference: TypeReference {\n        TypeReference(\n            module: .rswiftResources,\n            name: \"NibReference\",\n            genericArgs: [rootViews.first ?? TypeReference.uiView]\n        )\n    }\n\n    func generateVarGetter() -> VarGetter {\n        if let reusable = reusables.first {\n            let typeReference = TypeReference(\n                module: .rswiftResources,\n                name: \"NibReferenceReuseIdentifier\",\n                genericArgs: [rootViews.first ?? TypeReference.uiView, reusable.type]\n            )\n            return VarGetter(\n                comments: [\"Nib `\\(name)`.\"],\n                deploymentTarget: deploymentTarget,\n                name: SwiftIdentifier(name: name),\n                typeReference: typeReference,\n                valueCodeString: \".init(name: \\\"\\(name.escapedStringLiteral)\\\", bundle: bundle, identifier: \\\"\\(reusable.identifier.escapedStringLiteral)\\\")\"\n            )\n        } else {\n            let typeReference = TypeReference(\n                module: .rswiftResources,\n                name: \"NibReference\",\n                genericArgs: [rootViews.first ?? TypeReference.uiView]\n            )\n            return VarGetter(\n                comments: [\"Nib `\\(name)`.\"],\n                deploymentTarget: deploymentTarget,\n                name: SwiftIdentifier(name: name),\n                typeReference: typeReference,\n                valueCodeString: \".init(name: \\\"\\(name.escapedStringLiteral)\\\", bundle: bundle)\"\n            )\n        }\n    }\n\n    func generateValidateLines() -> [String] {\n        let validateImagesLines = self.usedImageIdentifiers.uniqueAndSorted()\n            .map { nameCatalog -> String in\n                if isAppKit {\n                    if nameCatalog.isSystemCatalog {\n                        return \"if #available(macOS 11.0, *) { if AppKit.NSImage(systemSymbolName: \\\"\\(nameCatalog.name)\\\", accessibilityDescription: nil) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] System image named '\\(nameCatalog.name)' is used in nib '\\(self.name)', but couldn't be loaded.\\\") } }\"\n                    } else {\n                        return \"if bundle.image(forResource: \\\"\\(nameCatalog.name)\\\") == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Image named '\\(nameCatalog.name)' is used in nib '\\(self.name)', but couldn't be loaded.\\\") }\"\n                    }\n                } else {\n                    if nameCatalog.isSystemCatalog {\n                        return \"if #available(iOS 13.0, *) { if UIKit.UIImage(systemName: \\\"\\(nameCatalog.name)\\\") == nil { throw RswiftResources.ValidationError(\\\"[R.swift] System image named '\\(nameCatalog.name)' is used in nib '\\(self.name)', but couldn't be loaded.\\\") } }\"\n                    } else {\n                        return \"if UIKit.UIImage(named: \\\"\\(nameCatalog.name)\\\", in: bundle, compatibleWith: nil) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Image named '\\(nameCatalog.name)' is used in nib '\\(self.name)', but couldn't be loaded.\\\") }\"\n                    }\n                }\n            }\n\n        let validateColorLines = self.usedColorResources.uniqueAndSorted()\n            .filter { !$0.isSystemCatalog }\n            .map { nameCatalog in\n                isAppKit\n                ? \"if AppKit.NSColor(named: \\\"\\(nameCatalog.name)\\\", bundle: bundle) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Color named '\\(nameCatalog.name)' is used in nib '\\(self.name)', but couldn't be loaded.\\\") }\"\n                : \"if UIKit.UIColor(named: \\\"\\(nameCatalog.name)\\\", in: bundle, compatibleWith: nil) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Color named '\\(nameCatalog.name)' is used in nib '\\(self.name)', but couldn't be loaded.\\\") }\"\n            }\n\n\n        return (validateImagesLines + validateColorLines)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/PropertyListResource+Generator.swift",
    "content": "//\n//  PropertyListResource+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-23.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension PropertyListResource {\n    public static func generateInfoStruct(resourceName: String, plists: [PropertyListResource], prefix: SwiftIdentifier) -> Struct {\n        generateStruct(\n            resourceName: resourceName,\n            plists: plists,\n            toplevelKeysWhitelist: [\"UIApplicationShortcutItems\", \"UIApplicationSceneManifest\", \"NSUserActivityTypes\", \"NSExtension\"],\n            isInfoPlist: true,\n            prefix: prefix\n        )\n    }\n\n    public static func generateStruct(resourceName: String, plists: [PropertyListResource], toplevelKeysWhitelist: [String]? = nil, isInfoPlist: Bool = false, prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: resourceName)\n        let qualifiedName = prefix + structName\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        guard let plist = plists.first else { return .empty }\n\n        guard plists.allSatisfy({ $0.url == plist.url }) else {\n            let configs = plists.map { $0.buildConfigurationName }\n            warning(\"Build configurations \\(configs) use different \\(resourceName) files, this is not yet supported\")\n            return .empty\n        }\n\n        let contents: PropertyListResource.Contents\n        if let whitelist = toplevelKeysWhitelist {\n            contents = plist.contents.filter { (key, _) in whitelist.contains(key) }\n        } else {\n            contents = plist.contents\n        }\n\n        let members = contents.generateMembers(resourceName: resourceName, path: [], isInfoPlist: isInfoPlist, warning: warning)\n            .sorted()\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(members.structs.count) properties.\"]\n\n        return Struct(comments: comments, name: structName) {\n            if isInfoPlist {\n                Init.bundle\n            }\n            members\n        }\n    }\n}\n\nprotocol PlistPathComponent {\n    typealias Key = String\n    typealias Index = Int\n}\n\nextension PlistPathComponent.Key: PlistPathComponent {}\nextension PlistPathComponent.Index: PlistPathComponent {}\n\nextension PropertyListResource.Contents {\n    @StructMembersBuilder func generateMembers(resourceName: String, path: [PlistPathComponent], includeKey: Bool = true, isInfoPlist: Bool, warning: (String) -> Void) -> StructMembers {\n        let groupedContents = self.grouped(bySwiftIdentifier: { $0.key })\n        groupedContents.reportWarningsForDuplicatesAndEmpties(source: resourceName, result: resourceName, warning: warning)\n\n        for (key, value) in groupedContents.uniques {\n            let newPath = path + [key]\n\n            switch value {\n            case let value as Bool:\n                LetBinding(\n                    name: SwiftIdentifier(name: key),\n                    typeReference: .bool,\n                    valueCodeString: \"\\(value)\"\n                )\n\n              case let value as String:\n                if isInfoPlist {\n                    VarGetter(\n                        name: SwiftIdentifier(name: key),\n                        typeReference: .string,\n                        valueCodeString: valueCodedString(path: path, includeKey: includeKey, key: key, value: value)\n                    )\n                } else {\n                    LetBinding(\n                        name: SwiftIdentifier(name: key),\n                        typeReference: .string,\n                        valueCodeString: \"\\\"\\(value.escapedStringLiteral)\\\"\"\n                    )\n                }\n\n            case let duplicateArray as [String]:\n                let groupedArray = duplicateArray.grouped(bySwiftIdentifier: { $0 })\n                groupedArray.reportWarningsForDuplicatesAndEmpties(source: resourceName, result: resourceName, warning: warning)\n\n                bundleStruct(name: key, usesBundle: isInfoPlist) {\n                    for (index, value) in groupedArray.uniques.enumerated() {\n                        [value: value]\n                            .generateMembers(resourceName: resourceName, path: newPath + [index], includeKey: false, isInfoPlist: isInfoPlist, warning: warning)\n                            .sorted()\n                    }\n                }\n\n\n            case var dict as [String: Any]:\n                dict[\"_key\"] = key\n\n                bundleStruct(name: key, usesBundle: isInfoPlist) {\n                    dict.generateMembers(resourceName: resourceName, path: newPath, isInfoPlist: isInfoPlist, warning: warning)\n                        .sorted()\n                }\n\n            case let dicts as [[String: Any]] where arrayOfDictionariesPrimaryKeys.keys.contains(key):\n                bundleStruct(name: key, usesBundle: isInfoPlist) {\n                    for (index, dict) in dicts.enumerated() {\n                        if let primaryKey = arrayOfDictionariesPrimaryKeys[key],\n                           let primary = dict[primaryKey] as? String {\n                            bundleStruct(name: primary, usesBundle: isInfoPlist) {\n                                dict.generateMembers(resourceName: resourceName, path: newPath + [index], isInfoPlist: isInfoPlist, warning: warning)\n                                    .sorted()\n                            }\n                        }\n                    }\n                }\n\n            default:\n                do {}\n            }\n        }\n    }\n    \n    private func valueCodedString(path: [PlistPathComponent], includeKey: Bool, key: String, value: String) -> String {\n        var string = \"bundle.infoDictionaryString(path: \\(path)\"\n\n        if includeKey {\n            string += \", key: \\\"\\(key.escapedStringLiteral)\\\"\"\n        }\n\n        return string + \") ?? \\\"\\(value.escapedStringLiteral)\\\"\"\n    }\n}\n\n@StructMembersBuilder func bundleStruct(name: String, usesBundle: Bool, @StructMembersBuilder builder: () -> StructMembers) -> StructMembers {\n    let str = Struct(name: SwiftIdentifier(name: name)) {\n        if usesBundle {\n            Init.bundle\n        }\n        builder()\n    }\n\n    if usesBundle {\n        str.generateBundleVarGetter(name: name)\n        str.generateBundleFunction(name: name)\n    } else {\n        str.generateLetBinding()\n    }\n    str\n}\n\n// For arrays of dictionaries we need a primary key.\n// This key will be used as a name for the struct in the generated code.\nprivate let arrayOfDictionariesPrimaryKeys: [String: String] = [\n  \"UIWindowSceneSessionRoleExternalDisplay\": \"UISceneConfigurationName\",\n  \"UIWindowSceneSessionRoleApplication\": \"UISceneConfigurationName\",\n  \"UIApplicationShortcutItems\": \"UIApplicationShortcutItemType\",\n  \"CFBundleDocumentTypes\": \"CFBundleTypeName\",\n  \"CFBundleURLTypes\": \"CFBundleURLName\"\n]\n"
  },
  {
    "path": "Sources/RswiftGenerators/ReuseIdentifier+Generator.swift",
    "content": "//\n//  ReuseIdentifier+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension Reusable {\n    public static func generateStruct(nibs: [NibResource], storyboards: [StoryboardResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"reuseIdentifier\")\n        let qualifiedName = prefix + structName\n\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let unifiedNibs = unifyLocalizations(nibs: nibs, warning: warning)\n        let unifiedStoryboards = unifyLocalizations(storyboards: storyboards, warning: warning)\n\n        let reusables = unifiedNibs.flatMap(\\.reusables) + unifiedStoryboards.flatMap(\\.reusables)\n        let deduplicatedReusables = Dictionary(grouping: reusables, by: \\.hashValue)\n            .values.compactMap(\\.first)\n\n        let groupedReusables = deduplicatedReusables.grouped(bySwiftIdentifier: \\.identifier)\n        groupedReusables.reportWarningsForDuplicatesAndEmpties(source: \"reuseIdentifier\", result: \"reuse identifier\", warning: warning)\n\n        let letbindings = groupedReusables.uniques\n            .map { $0.generateVarGetter() }\n            .sorted { $0.name < $1.name }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(letbindings.count) reuse identifiers.\"]\n\n        return Struct(comments: comments, name: structName) {\n            letbindings\n        }\n    }\n\n    private static func unifyLocalizations(nibs: [NibResource], warning: (String) -> Void) -> [NibResource] {\n        var result: [NibResource] = []\n\n        for localizations in Dictionary(grouping: nibs, by: \\.name).values {\n            guard let nib = localizations.first else { continue }\n            let ur = nib.unify(localizations: localizations)\n\n            let rs = ur.differentReusables.map { \"'\\($0.identifier)'\" }.uniqueAndSorted()\n            if rs.count > 0 {\n                warning(\"Skipping generation of \\(rs.count) reuseIdentifiers in nib '\\(nib.name)', because \\(rs.joined(separator: \", \")) don't match in all localizations\")\n                continue\n            }\n            result.append(ur.resource)\n        }\n\n        return result\n    }\n\n    private static func unifyLocalizations(storyboards: [StoryboardResource], warning: (String) -> Void) -> [StoryboardResource] {\n        var result: [StoryboardResource] = []\n\n        for localizations in Dictionary(grouping: storyboards, by: \\.name).values {\n            guard let storyboard = localizations.first else { continue }\n            let ur = storyboard.unify(localizations: localizations)\n\n            let rs = ur.differentReusables.map { \"'\\($0.identifier)'\" }.uniqueAndSorted()\n            if rs.count > 0 {\n                warning(\"Skipping generation of \\(rs.count) reuseIdentifiers in storyboard '\\(storyboard.name)', because \\(rs.joined(separator: \", \")) don't match in all localizations\")\n                continue\n            }\n            result.append(ur.storyboard)\n        }\n\n        return result\n    }\n}\n\nextension Reusable {\n    var genericTypeReference: TypeReference {\n        TypeReference(\n            module: .rswiftResources,\n            name: \"ReuseIdentifier\",\n            genericArgs: [type]\n        )\n    }\n\n    func generateVarGetter() -> VarGetter {\n        VarGetter(\n            comments: [\"Reuse identifier `\\(identifier)`.\"],\n            name: SwiftIdentifier(name: identifier),\n            typeReference: genericTypeReference,\n            valueCodeString: \".init(identifier: \\\"\\(identifier)\\\")\"\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Segue+Generator.swift",
    "content": "//\n//  Segue+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-22.\n//\n\nimport Foundation\nimport RswiftResources\n\npublic struct Segue {\n    public static func generateStruct(storyboards: [StoryboardResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"segue\")\n        let qualifiedName = prefix + structName\n\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        // Unify different localizations of storyboards\n        let unifiedStoryboards = unifyLocalizations(storyboards: storyboards, warning: warning)\n\n        let allSegues = allSegueInfos(storyboards: unifiedStoryboards, warning: warning)\n        let viewControllers = viewControllers(segues: allSegues, warning: warning)\n        let structs = viewControllers\n            .map { generateStruct(sourceType: $0.key, segues: $0.value) }\n            .sorted { $0.name < $1.name }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(structs.count) view controllers.\"]\n\n        return Struct(comments: comments, name: structName) {\n            for s in structs {\n                s.generateLetBinding()\n            }\n\n            structs\n        }\n    }\n\n    private static func viewControllers(segues: [SegueWithInfo], warning: (String) -> Void) -> [TypeReference: [SegueWithInfo]] {\n        var result: [TypeReference: [SegueWithInfo]] = [:]\n\n        let grouped = Dictionary(grouping: segues, by: \\.sourceType)\n        for (sourceType, seguesBySourceType) in grouped {\n            let segues = seguesBySourceType.grouped(bySwiftIdentifier: { $0.segue.identifier })\n            segues.reportWarningsForDuplicatesAndEmpties(source: \"segue\", container: \"for '\\(sourceType.name)'\", result: \"segue\", warning: warning)\n\n            result[sourceType] = segues.uniques\n        }\n\n        return result\n    }\n\n    private static func generateStruct(sourceType: TypeReference, segues: [SegueWithInfo]) -> Struct {\n        let comments = [\"This struct is generated for `\\(sourceType.name)`, and contains static references to \\(segues.count) segues.\"]\n        return Struct(comments: comments, name: SwiftIdentifier(name: sourceType.name)) {\n            segues.map { $0.generateVarGetter() }\n        }\n    }\n\n    private static func allSegueInfos(storyboards: [StoryboardResource], warning: (String) -> Void) -> [SegueWithInfo] {\n        let allSegues = storyboards.flatMap { storyboard in\n            storyboard.viewControllers.flatMap { viewController in\n                viewController.segues.compactMap { segue -> SegueWithInfo? in\n                    guard let destinationType = resolveDestinationType(\n                        for: segue,\n                        inViewController: viewController,\n                        inStoryboard: storyboard,\n                        allStoryboards: storyboards)\n                    else\n                    {\n                        warning(\"Destination view controller with id \\(segue.destination) for segue \\(segue.identifier) in \\(viewController.type.codeString()) not found in storyboard \\(storyboard.name). Is this storyboard corrupt?\")\n                        return nil\n                    }\n\n                    guard !segue.identifier.isEmpty else {\n                      return nil\n                    }\n\n                    return SegueWithInfo(\n                        deploymentTarget: storyboard.deploymentTarget,\n                        segue: segue,\n                        sourceType: viewController.type,\n                        destinationType: destinationType\n                    )\n                }\n            }\n        }\n\n        // Deduplicate segues that are identical\n        let deduplicatedSeguesWithInfo = Dictionary(grouping: allSegues, by: \\.groupKey)\n          .values\n          .compactMap { $0.first }\n\n        return deduplicatedSeguesWithInfo\n    }\n\n    private static func resolveDestinationType(for segue: StoryboardResource.Segue, inViewController: StoryboardResource.ViewController, inStoryboard storyboard: StoryboardResource, allStoryboards storyboards: [StoryboardResource]) -> TypeReference? {\n        let uiViewController: TypeReference = storyboard.isAppKit ? .nsViewController : .uiViewController\n\n        if segue.kind == \"unwind\" {\n            return uiViewController\n        }\n\n        let destinationViewControllerType = storyboard.viewControllers\n            .filter { $0.id == segue.destination }\n            .first?\n            .type\n\n        let destinationViewControllerPlaceholderType = storyboard.viewControllerPlaceholders\n            .filter { $0.id == segue.destination }\n            .first\n            .flatMap { storyboard -> TypeReference? in\n                switch storyboard.resolveWithStoryboards(storyboards) {\n                case .customBundle:\n                    return uiViewController // Not supported, fallback to UIViewController\n                case let .resolved(vc):\n                    return vc?.type\n                }\n            }\n\n        return destinationViewControllerType ?? destinationViewControllerPlaceholderType\n    }\n\n    private static func unifyLocalizations(storyboards: [StoryboardResource], warning: (String) -> Void) -> [StoryboardResource] {\n        var result: [StoryboardResource] = []\n\n        for localizations in Dictionary(grouping: storyboards, by: \\.name).values {\n            guard let storyboard = localizations.first else { continue }\n            let ur = storyboard.unify(localizations: localizations)\n\n            for vur in ur.viewControllerResults.values {\n                if vur.differentSegueIDs.isEmpty { continue }\n\n                let segues = vur.differentSegueIDs.sorted()\n                let ns = segues.map { \"'\\($0)'\" }.joined(separator: \", \")\n                warning(\"Skipping generation of \\(segues.count) segues in view controller '\\(vur.viewcontroller.storyboardIdentifier ?? vur.viewcontroller.id)' in storyboard '\\(storyboard.name)', because segues \\(ns) aren't identical in all localizations\")\n            }\n\n            result.append(ur.storyboard)\n        }\n\n        return result\n    }\n}\n\n\nprivate extension StoryboardResource.ViewControllerPlaceholder {\n    enum ResolvedResult {\n        case customBundle\n        case resolved(StoryboardResource.ViewController?)\n    }\n\n    func resolveWithStoryboards(_ storyboards: [StoryboardResource]) -> ResolvedResult {\n        if nil != bundleIdentifier {\n            // Can't resolve storyboard in other bundles\n            return .customBundle\n        }\n\n        guard let storyboardName = storyboardName else {\n            // Storyboard reference without a storyboard defined?!\n            return .resolved(nil)\n        }\n\n        let storyboard = storyboards\n            .filter { $0.name == storyboardName }\n\n        guard let referencedIdentifier = referencedIdentifier else {\n            return .resolved(storyboard.first?.initialViewController)\n        }\n\n        return .resolved(storyboard\n            .flatMap {\n                $0.viewControllers.filter { $0.storyboardIdentifier == referencedIdentifier }\n            }\n            .first\n        )\n    }\n}\n\nstruct SegueWithInfo {\n    let deploymentTarget: DeploymentTarget?\n    let segue: StoryboardResource.Segue\n    let sourceType: TypeReference\n    let destinationType: TypeReference\n\n    var groupKey: String {\n        \"\\(String(describing: deploymentTarget))|\\(segue.identifier)|\\(segue.type)|\\(sourceType)|\\(destinationType)\"\n    }\n\n    var genericTypeReference: TypeReference {\n        TypeReference(\n            module: .rswiftResources,\n            name: \"SegueIdentifier\",\n            genericArgs: [segue.type, sourceType, destinationType]\n        )\n    }\n\n    func generateVarGetter() -> VarGetter {\n        VarGetter(\n            comments: [\"Segue identifier `\\(segue.identifier)`.\"],\n            deploymentTarget: deploymentTarget,\n            name: SwiftIdentifier(name: segue.identifier),\n            typeReference: genericTypeReference,\n            valueCodeString: \".init(identifier: \\\"\\(segue.identifier)\\\")\"\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Shared/AssetCatalogMergedNamespaces.swift",
    "content": "//\n//  AssetCatalogMergedNamespaces.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2017-06-06.\n//\n\nimport Foundation\nimport RswiftResources\n\nstruct AssetCatalogMergedNamespaces {\n    var namespaces: [SwiftIdentifier: AssetCatalog.Namespace] = [:]\n    var duplicates: [(SwiftIdentifier, String)] = []\n\n    init(all: [String: AssetCatalog.Namespace], otherIdentifiers: [SwiftIdentifier]) {\n        for (name, namespace) in all {\n            let id = SwiftIdentifier(name: name)\n            if otherIdentifiers.contains(id) {\n                duplicates.append((id, name))\n            } else {\n                namespaces[id, default: .init()].merge(namespace)\n            }\n        }\n    }\n\n    func printWarningsForDuplicates(result: String, warning: (String) -> Void) {\n        for (identifier, name) in duplicates {\n            warning(\"Skipping asset namespace '\\(name)' because symbol '\\(identifier.value)' would conflict with \\(result): \\(identifier.value)\")\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Shared/LocaleReference+Generator.swift",
    "content": "//\n//  File.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-22.\n//\n\nimport RswiftResources\n\nextension LocaleReference {\n    func codeString() -> String {\n        switch self {\n        case .none:\n            return \"LocaleReference.none\" // Plain `.none` is ambiguous whith Optional<LocaleReference>\n        case .base:\n            return \".base\"\n        case .language(let string):\n            return #\".language(\"\\#(string)\")\"#\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Shared/SwiftIdentifier.swift",
    "content": "//\n//  SwiftIdentifier.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 11-12-15.\n//\n\nimport Foundation\n\nprivate let numberPrefixRegex = try! NSRegularExpression(pattern: \"^[0-9]+\")\nprivate let upperCasedPrefixRegex = try! NSRegularExpression(pattern: \"^([A-Z]+)(?=[^a-z]{1})\")\n\n/*\n Disallowed characters: whitespace, mathematical symbols, arrows, private-use and invalid Unicode points, line- and boxdrawing characters\n Special rules: Can't begin with a number\n */\npublic struct SwiftIdentifier: Hashable, Comparable, Sendable {\n    public let value: String\n\n    public init(name: String, lowercaseStartingCharacters: Bool = true) {\n        // Remove all disallowed characters from the name and uppercase the character after a disallowed character\n        var nameComponents = name.components(separatedBy: disallowedCharacters)\n        let firstComponent = nameComponents.remove(at: 0)\n        let cleanedSwiftName = nameComponents.reduce(firstComponent) { $0 + $1.uppercaseFirstCharacter }\n\n        // Remove numbers at the start of the name\n        let sanitizedSwiftName = numberPrefixRegex.stringByReplacingMatches(in: cleanedSwiftName, options: [], range: cleanedSwiftName.fullRange, withTemplate: \"\")\n\n        // Lowercase the start of the name\n        let capitalizedSwiftName = lowercaseStartingCharacters ? SwiftIdentifier.lowercasePrefix(sanitizedSwiftName) : sanitizedSwiftName\n\n        // Escape the name if it is a keyword\n        if SwiftKeywords.contains(capitalizedSwiftName) {\n            value = \"`\\(capitalizedSwiftName)`\"\n        } else {\n            value = capitalizedSwiftName\n        }\n    }\n\n    public init(rawValue: String) {\n        value = rawValue\n    }\n\n    private static func lowercasePrefix(_ name: String) -> String {\n        let prefixRange = upperCasedPrefixRegex.rangeOfFirstMatch(in: name, options: [], range: name.fullRange)\n\n        if prefixRange.location == NSNotFound {\n            return name.lowercaseFirstCharacter\n        } else {\n            let lowercasedPrefix = (name as NSString).substring(with: prefixRange).lowercased()\n            return (name as NSString).replacingCharacters(in: prefixRange, with: lowercasedPrefix)\n        }\n    }\n\n    static func +(lhs: SwiftIdentifier, rhs: SwiftIdentifier) -> SwiftIdentifier {\n        return SwiftIdentifier(rawValue: \"\\(lhs.value).\\(rhs.value)\")\n    }\n\n    public static func < (lhs: SwiftIdentifier, rhs: SwiftIdentifier) -> Bool {\n        lhs.value < rhs.value\n    }\n}\n\n\nstruct SwiftNameGroups<T> {\n    let uniques: [T]\n    let duplicates: [(SwiftIdentifier, [String])] // Identifiers that result in duplicate Swift names\n    let empties: [String] // Identifiers (wrapped in quotes) that result in empty swift names\n\n    // Example:\n    // source: \"xib\", container: nil, result: \"file\"\n    // \"Skipping 1 xib, because ... for all these files\"\n    //\n    // source: \"segue\", container: \"for MyViewController\", result: \"segue\"\n    // \"Skipping 2 segues for MyViewController, because ... for all these segues\"\n    func reportWarningsForDuplicatesAndEmpties(source: String, container: String? = nil, result: String, warning: (String) -> Void) {\n        let sourceSingular = [source, container].compactMap { $0 }.joined(separator: \" \")\n        let sourcePlural = [\"\\(source)s\", container].compactMap { $0 }.joined(separator: \" \")\n\n        let resultSingular = result\n        let resultPlural = \"\\(result)s\"\n\n        for (sanitizedName, dups) in duplicates {\n            let source = dups.count == 1 ? sourceSingular : sourcePlural\n            warning(\"Skipping \\(dups.count) \\(source) because symbol '\\(sanitizedName.value)' would be generated for all of these \\(resultPlural): \\(dups.joined(separator: \", \"))\")\n        }\n\n        if let empty = empties.first , empties.count == 1 {\n            warning(\"Skipping 1 \\(sourceSingular) because no swift identifier can be generated for \\(resultSingular): \\(empty)\")\n        }\n        else if empties.count > 1 {\n            warning(\"Skipping \\(empties.count) \\(sourcePlural) because no swift identifier can be generated for all of these \\(resultPlural): \\(empties.joined(separator: \", \"))\")\n        }\n    }\n\n    func reportWarningsForReservedNames(source: String, container: String? = nil, result: String, warning: (String) -> Void) {\n        let sourceSingular = [source, container].compactMap { $0 }.joined(separator: \" \")\n        let sourcePlural = [\"\\(source)s\", container].compactMap { $0 }.joined(separator: \" \")\n\n        for (sanitizedName, dups) in duplicates {\n            let count = dups.count - 1\n            let source = count == 1 ? sourceSingular : sourcePlural\n            warning(\"Skipping \\(count) \\(source) because symbol '\\(sanitizedName.value)' would conflict with reserved name\")\n        }\n    }\n}\n\nextension Sequence {\n    func grouped(bySwiftIdentifier identifierSelector: @escaping (Iterator.Element) -> String) -> SwiftNameGroups<Iterator.Element> {\n        var groupedBy = Dictionary(grouping: self, by: { SwiftIdentifier(name: identifierSelector($0)) })\n        let empty = SwiftIdentifier(name: \"\")\n        let empties = groupedBy[empty]?.map { \"'\\(identifierSelector($0))'\" }.sorted()\n        groupedBy[empty] = nil\n\n        let uniques = Array(groupedBy.values.filter { $0.count == 1 }.joined())\n            .sorted { identifierSelector($0) < identifierSelector($1) }\n        let duplicates = groupedBy\n            .filter { $0.1.count > 1 }\n            .map { ($0.0, $0.1.map(identifierSelector).sorted()) }\n            .sorted { $0.0.value < $1.0.value }\n\n        return SwiftNameGroups(uniques: uniques, duplicates: duplicates, empties: empties ?? [])\n    }\n}\n\nprivate let disallowedCharacters: CharacterSet = {\n    var disallowed = CharacterSet(charactersIn: \"\")\n    disallowed.formUnion(CharacterSet.whitespacesAndNewlines)\n    disallowed.formUnion(CharacterSet.punctuationCharacters)\n    disallowed.formUnion(CharacterSet.symbols)\n    disallowed.formUnion(CharacterSet.illegalCharacters)\n    disallowed.formUnion(CharacterSet.controlCharacters)\n    disallowed.remove(charactersIn: \"_\")\n\n    // Emoji ranges, roughly based on http://www.unicode.org/Public/emoji/1.0//emoji-data.txt\n    [\n        0x2600...0x27BF,\n        0x1F300...0x1F6FF,\n        0x1F900...0x1F9FF,\n        0x1F1E6...0x1F1FF,\n    ].forEach { range in range.compactMap(UnicodeScalar.init).forEach { scalar in disallowed.remove(scalar) } }\n\n    return disallowed\n}()\n\n// Based on https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\nprivate let SwiftKeywords = [\n    // Keywords used in declarations\n    \"associatedtype\", \"class\", \"deinit\", \"enum\", \"extension\", \"fileprivate\", \"func\", \"import\", \"init\", \"inout\", \"internal\", \"let\", \"open\", \"operator\", \"private\", \"protocol\", \"public\", \"static\", \"struct\", \"subscript\", \"typealias\", \"var\",\n\n    // Keywords used in statements\n    \"break\", \"case\", \"continue\", \"default\", \"defer\", \"do\", \"else\", \"fallthrough\", \"for\", \"guard\", \"if\", \"in\", \"repeat\", \"return\", \"switch\", \"where\", \"while\",\n\n    // Keywords used in expressions and types\n    \"as\", \"Any\", \"catch\", \"false\", \"is\", \"nil\", \"rethrows\", \"super\", \"self\", \"Self\", \"throw\", \"throws\", \"true\", \"try\",\n\n    // Keywords that begin with a number sign (#)\n    \"#available\", \"#colorLiteral\", \"#column\", \"#else\", \"#elseif\", \"#endif\", \"#error\", \"#file\", \"#fileLiteral\", \"#function\", \"#if\", \"#imageLiteral\", \"#line\", \"#selector\", \"#sourceLocation\", \"#warning\",\n\n    // Keywords from Swift 2 that are still reserved\n    \"__COLUMN__\", \"__FILE__\", \"__FUNCTION__\", \"__LINE__\",\n]\n"
  },
  {
    "path": "Sources/RswiftGenerators/Shared/TypeReference+Generator.swift",
    "content": "//\n//  File.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension TypeReference {\n    func codeString() -> String {\n        let args = genericArgs.map { $0.codeString() }.joined(separator: \", \")\n        let rawName = args.isEmpty ? name : \"\\(name)<\\(args)>\"\n\n        if case .custom(let module) = module {\n            return \"\\(module).\\(rawName)\"\n        } else {\n            return rawName\n        }\n    }\n\n//    static func someIteratorProtocol(_ element: TypeReference) -> TypeReference {\n//        var result = TypeReference(module: .stdLib, rawName: \"some IteratorProtocol\")\n//        result.genericArgs = [element]\n//        return result\n//    }\n\n    static func indexingIterator(_ element: TypeReference) -> TypeReference {\n        var result = TypeReference(module: .stdLib, rawName: \"IndexingIterator\")\n        result.genericArgs = [TypeReference(module: .stdLib, rawName: \"[\\(element.codeString())]\")]\n        return result\n    }\n\n    static let bundle: TypeReference = .init(module: .foundation, rawName: \"Bundle\")\n    static let locale: TypeReference = .init(module: .foundation, rawName: \"Locale\")\n    static let void: TypeReference = .init(module: .stdLib, rawName: \"Void\")\n    static let bool: TypeReference = .init(module: .stdLib, rawName: \"Bool\")\n    static let string: TypeReference = .init(module: .stdLib, rawName: \"String\")\n    static let sequence: TypeReference = .init(module: .stdLib, rawName: \"Sequence\")\n    static let someIteratorProtocol: TypeReference = .init(module: .stdLib, rawName: \"some IteratorProtocol\")\n    static let uiView: TypeReference = .init(module: .uiKit, rawName: \"UIView\")\n    static let uiViewController: TypeReference = .init(module: .uiKit, rawName: \"UIViewController\")\n    static let nsViewController: TypeReference = .init(module: .appKit, rawName: \"NSViewController\")\n\n\n    static let fontResource: TypeReference = .init(module: .rswiftResources, rawName: \"FontResource\")\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/Storyboard+Generator.swift",
    "content": "//\n//  StoryboardResource+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-06-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension StoryboardResource {\n    public static func generateStruct(storyboards: [StoryboardResource], prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"storyboard\")\n        let qualifiedName = prefix + structName\n\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        // Unify different localizations of storyboards\n        let unifiedStoryboards = unifyLocalizations(storyboards: storyboards, warning: warning)\n\n        let groupedStoryboards = unifiedStoryboards.grouped(bySwiftIdentifier: { $0.name })\n        groupedStoryboards.reportWarningsForDuplicatesAndEmpties(source: \"storyboard\", result: \"file\", warning: warning)\n\n        let structs = groupedStoryboards.uniques\n            .map { $0.generateStruct(prefix: qualifiedName, warning: warning) }\n            .sorted { $0.name < $1.name }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(structs.count) storyboards.\"]\n\n        return Struct(comments: comments, name: structName) {\n            Init.bundle\n\n            for s in structs {\n                s.generateBundleVarGetter(name: s.name.value)\n                s.generateBundleFunction(name: s.name.value)\n            }\n\n            structs\n\n            if structs.count > 0 {\n                generateValidate(structs: structs)\n            }\n        }\n    }\n\n    private static func generateValidate(structs: [Struct]) -> Function {\n        let lines = structs\n            .map { s -> String in\n                let code = \"try self.\\(s.name.value).validate()\"\n                return s.deploymentTarget?.codeIf(around: code) ?? code\n            }\n        return Function(\n            comments: [],\n            name: .init(name: \"validate\"),\n            params: [],\n            returnThrows: true,\n            returnType: .void,\n            valueCodeString: lines.joined(separator: \"\\n\")\n        )\n    }\n\n    private static func unifyLocalizations(storyboards: [StoryboardResource], warning: (String) -> Void) -> [StoryboardResource] {\n        var result: [StoryboardResource] = []\n\n        for localizations in Dictionary(grouping: storyboards, by: \\.name).values {\n            guard let storyboard = localizations.first else { continue }\n            let ur = storyboard.unify(localizations: localizations)\n\n\n            let diffs: [String] = [\n                ur.differentInitialViewController ? \"initial view controllers\" : nil,\n                ur.differentDeploymentTargets ? \"deployment targets\" : nil,\n            ].compactMap { $0 }\n\n            if diffs.count > 0 {\n                warning(\"Skipping generation of storyboard '\\(storyboard.name)', because \\(diffs.joined(separator: \", \")) don't match in all localizations\")\n                continue\n            }\n\n            let vcs = ur.differentViewControllerIDs.sorted()\n            if vcs.count > 0 {\n                let ns = vcs.map { \"'\\($0)'\" }.joined(separator: \", \")\n                warning(\"Skipping generation of \\(vcs.count) view controllers in storyboard '\\(storyboard.name)', because view controllers \\(ns) don't exist (with same class) in all localizations\")\n            }\n\n\n            result.append(ur.storyboard)\n        }\n\n        return result\n    }\n}\n\nprivate extension StoryboardResource {\n    func generateStruct(prefix: SwiftIdentifier, warning: (String) -> Void) -> Struct {\n        let nameIdentifier = SwiftIdentifier(rawValue: \"name\")\n        let bundleIdentifier = SwiftIdentifier(name: \"bundle\")\n        let reservedIdentifiers: Set<SwiftIdentifier> = [nameIdentifier, bundleIdentifier]\n\n        // View controllers with identifiers\n        let grouped = viewControllers\n          .compactMap { (vc) -> (identifier: String, vc: StoryboardResource.ViewController)? in\n            guard let storyboardIdentifier = vc.storyboardIdentifier else { return nil }\n            return (storyboardIdentifier, vc)\n          }\n          .grouped(bySwiftIdentifier: { $0.identifier })\n\n        grouped.reportWarningsForDuplicatesAndEmpties(source: \"view controller\", result: \"view controller identifier\", warning: warning)\n\n        // Warning about conflicts with reserved identifiers\n        (grouped.uniques.map(\\.identifier) + reservedIdentifiers.map(\\.value))\n            .grouped(bySwiftIdentifier: { $0 })\n            .reportWarningsForReservedNames(source: \"view controller\", container: \"in storyboard '\\(name)'\", result: \"view controller\", warning: warning)\n\n        let vargetters = grouped.uniques\n            .filter { !reservedIdentifiers.contains(SwiftIdentifier(rawValue: $0.identifier)) }\n            .map { (id, vc) in vc.generateVarGetter(identifier: id) }\n            .sorted { $0.name < $1.name }\n\n        let letName = LetBinding(\n            name: nameIdentifier,\n            valueCodeString: \"\\\"\\(name)\\\"\")\n\n        let identifier = SwiftIdentifier(name: name)\n        let storyboardReference = TypeReference(module: .rswiftResources, rawName: \"StoryboardReference\")\n        let initialContainer = initialViewController == nil ? nil : TypeReference(module: .rswiftResources, rawName: \"InitialControllerContainer\")\n\n        // additional module reference, for use in validate function\n        let additionalModuleReference = isAppKit ? ModuleReference.appKit : ModuleReference.uiKit\n\n        return Struct(\n            comments: [\"Storyboard `\\(name)`.\"],\n            deploymentTarget: deploymentTarget,\n            name: identifier,\n            protocols: [storyboardReference, initialContainer].compactMap { $0 },\n            additionalModuleReferences: [additionalModuleReference]\n        ) {\n            if let initialViewController = initialViewController {\n                TypeAlias(name: \"InitialController\", value: initialViewController.type)\n            }\n            Init.bundle\n\n            letName\n\n            vargetters\n\n            generateValidate(viewControllers: grouped.uniques.map(\\.vc))\n        }\n    }\n\n    func generateValidate(viewControllers: [StoryboardResource.ViewController]) -> Function {\n        let validateImagesLines = self.usedImageIdentifiers.uniqueAndSorted()\n            .map { nameCatalog -> String in\n                if isAppKit {\n                    if nameCatalog.isSystemCatalog {\n                        return \"if #available(macOS 11.0, *) { if AppKit.NSImage(systemSymbolName: \\\"\\(nameCatalog.name)\\\", accessibilityDescription: nil) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] System image named '\\(nameCatalog.name)' is used in storyboard '\\(self.name)', but couldn't be loaded.\\\") } }\"\n                    } else {\n//                        AppKit.NSImage(named:)\n                        return \"if bundle.image(forResource: \\\"\\(nameCatalog.name)\\\") == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Image named '\\(nameCatalog.name)' is used in storyboard '\\(self.name)', but couldn't be loaded.\\\") }\"\n                    }\n                } else {\n                    if nameCatalog.isSystemCatalog {\n                        return \"if #available(iOS 13.0, *) { if UIKit.UIImage(systemName: \\\"\\(nameCatalog.name)\\\") == nil { throw RswiftResources.ValidationError(\\\"[R.swift] System image named '\\(nameCatalog.name)' is used in storyboard '\\(self.name)', but couldn't be loaded.\\\") } }\"\n                    } else {\n                        return \"if UIKit.UIImage(named: \\\"\\(nameCatalog.name)\\\", in: bundle, compatibleWith: nil) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Image named '\\(nameCatalog.name)' is used in storyboard '\\(self.name)', but couldn't be loaded.\\\") }\"\n                    }\n                }\n            }\n        let validateColorLines = self.usedColorResources.uniqueAndSorted()\n            .filter { !$0.isSystemCatalog }\n            .map { nameCatalog in\n                isAppKit\n                ? \"if AppKit.NSColor(named: \\\"\\(nameCatalog.name)\\\", bundle: bundle) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Color named '\\(nameCatalog.name)' is used in storyboard '\\(self.name)', but couldn't be loaded.\\\") }\"\n                : \"if UIKit.UIColor(named: \\\"\\(nameCatalog.name)\\\", in: bundle, compatibleWith: nil) == nil { throw RswiftResources.ValidationError(\\\"[R.swift] Color named '\\(nameCatalog.name)' is used in storyboard '\\(self.name)', but couldn't be loaded.\\\") }\"\n            }\n        let validateViewControllersLines = viewControllers\n            .compactMap { vc -> String? in\n                guard let storyboardName = vc.storyboardIdentifier else { return nil }\n                let storyboardIdentifier = SwiftIdentifier(name: storyboardName)\n                return \"if \\(storyboardIdentifier.value)() == nil { throw RswiftResources.ValidationError(\\\"[R.swift] ViewController with identifier '\\(storyboardIdentifier.value)' could not be loaded from storyboard '\\(self.name)' as '\\(vc.type.codeString())'.\\\") }\"\n            }\n\n        let validateLines = (validateImagesLines + validateColorLines + validateViewControllersLines)\n\n        return Function(\n            comments: [],\n            name: .init(name: \"validate\"),\n            params: [],\n            returnThrows: true,\n            returnType: .void,\n            valueCodeString: validateLines.joined(separator: \"\\n\")\n        )\n    }\n}\n\nprivate extension StoryboardResource.ViewController {\n    var genericTypeReference: TypeReference {\n        TypeReference(\n            module: .rswiftResources,\n            name: \"StoryboardViewControllerIdentifier\",\n            genericArgs: [self.type]\n        )\n    }\n\n    func generateVarGetter(identifier: String) -> VarGetter {\n        VarGetter(\n            name: SwiftIdentifier(name: identifier),\n            typeReference: genericTypeReference,\n            valueCodeString: #\".init(identifier: \"\\#(identifier.escapedStringLiteral)\", storyboard: name, bundle: bundle)\"#\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/StringsTable+Generator.swift",
    "content": "//\n//  StringsTable+Generator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-06-24.\n//\n\nimport Foundation\nimport RswiftResources\n\n\nextension Struct {\n    public func generateBundleVarGetterForString() -> VarGetter {\n        VarGetter(\n            deploymentTarget: deploymentTarget,\n            name: name,\n            typeReference: TypeReference(module: .host, rawName: name.value),\n            valueCodeString: \".init(bundle: bundle, preferredLanguages: nil, locale: nil)\"\n        )\n    }\n\n    public func generateBundleFunctionForString(name: String) -> Function {\n        Function(\n            comments: [],\n            deploymentTarget: deploymentTarget,\n            name: SwiftIdentifier(name: name),\n            params: [.init(name: \"bundle\", localName: nil, typeReference: .bundle, defaultValue: nil)],\n            returnType: TypeReference(module: .host, rawName: self.name.value),\n            valueCodeString: \".init(bundle: bundle, preferredLanguages: nil, locale: nil)\"\n        )\n    }\n\n    public func generateLocaleFunctionForString(name: String) -> Function {\n        Function(\n            comments: [],\n            deploymentTarget: deploymentTarget,\n            name: SwiftIdentifier(name: name),\n            params: [.init(name: \"locale\", localName: nil, typeReference: .locale, defaultValue: nil)],\n            returnType: TypeReference(module: .host, rawName: self.name.value),\n            valueCodeString: \".init(bundle: bundle, preferredLanguages: nil, locale: locale)\"\n        )\n    }\n\n    public func generatePreferredLanguagesFunctionForString(name: String) -> Function {\n        Function(\n            comments: [],\n            deploymentTarget: deploymentTarget,\n            name: SwiftIdentifier(name: name),\n            params: [\n                .init(name: \"preferredLanguages\", localName: nil, typeReference: .init(module: .stdLib, rawName: \"[String]\"), defaultValue: nil),\n                .init(name: \"locale\", localName: nil, typeReference: .init(module: .stdLib, rawName: \"Locale?\"), defaultValue: \"nil\")\n            ],\n            returnType: TypeReference(module: .host, rawName: self.name.value),\n            valueCodeString: \".init(bundle: bundle, preferredLanguages: preferredLanguages, locale: locale)\"\n        )\n    }\n}\n\nextension StringsTable {\n\n    public static func generateStruct(tables: [StringsTable], developmentLanguage: String?, prefix: SwiftIdentifier) -> Struct {\n        let structName = SwiftIdentifier(name: \"string\", lowercaseStartingCharacters: false)\n        let qualifiedName = prefix + structName\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let localized = Dictionary(grouping: tables, by: \\.filename)\n        let groupedLocalized = localized.grouped(bySwiftIdentifier: \\.key)\n\n        groupedLocalized.reportWarningsForDuplicatesAndEmpties(source: \"strings file\", result: \"file\", warning: warning)\n\n        let structs = groupedLocalized.uniques\n            .compactMap { (filename, tables) -> Struct? in\n                generateStruct(\n                    filename: filename,\n                    tables: tables,\n                    developmentLanguage: developmentLanguage,\n                    prefix: qualifiedName,\n                    warning: warning\n                )\n            }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(groupedLocalized.uniques.count) localization tables.\"]\n\n        return Struct(comments: comments, name: structName, additionalModuleReferences: [.rswiftResources]) {\n            initBundlePreferredLanguages\n\n            for name in groupedLocalized.uniques.map(\\.0) {\n                generateBundleLocaleVarGetter(name: SwiftIdentifier(name: name), tableName: name)\n//                generateBundleLocaleFunction(name: SwiftIdentifier(name: name))\n                generatePreferredLanguagesFunction(name: SwiftIdentifier(name: name), tableName: name)\n            }\n            structs\n        }\n    }\n\n    private static var initBundlePreferredLanguages: Init {\n        Init(\n            comments: [],\n            params: [\n                .init(name: \"bundle\", localName: nil, typeReference: .bundle, defaultValue: nil),\n                .init(name: \"preferredLanguages\", localName: nil, typeReference: .init(module: .stdLib, rawName: \"[String]?\"), defaultValue: \"nil\"),\n                .init(name: \"locale\", localName: nil, typeReference: .init(module: .stdLib, rawName: \"Locale?\"), defaultValue: \"nil\"),\n            ],\n            valueCodeString: \"\"\"\n                self.bundle = bundle\n                self.preferredLanguages = preferredLanguages\n                self.locale = locale\n                \"\"\"\n        )\n    }\n\n    private static func generateStruct(filename: String, tables: [StringsTable], developmentLanguage: String?, prefix: SwiftIdentifier, warning: (String) -> Void) -> Struct? {\n\n        let structName = SwiftIdentifier(name: filename)\n        let qualifiedName = prefix + structName\n\n        let strings = computeStringsWithParams(filename: filename, tables: tables, developmentLanguage: developmentLanguage, warning: warning)\n        let vargetters = strings.map { $0.generateVarGetter() }\n\n        // only functions with named parameters\n        let functions = strings\n            .filter { $0.params.contains { $0.name != nil } }\n            .flatMap { [$0.generateFunctionBlank(), $0.generateFunctionPreferredLanguages()] }\n\n        let comments = [\"This `\\(qualifiedName.value)` struct is generated, and contains static references to \\(vargetters.count) localization keys.\"]\n\n        return Struct(comments: comments, name: structName) {\n            initStringSource\n            vargetters\n            functions\n        }\n    }\n\n    private static var initStringSource: Init {\n        Init(\n            comments: [],\n            params: [\n                .init(name: \"source\", localName: nil, typeReference: .init(module: .rswiftResources, rawName: \"StringResource.Source\"), defaultValue: nil),\n            ],\n            valueCodeString: \"\"\"\n                self.source = source\n                \"\"\"\n        )\n    }\n\n    public static func generateBundleLocaleVarGetter(name: SwiftIdentifier, tableName: String) -> VarGetter {\n        VarGetter(\n            name: name,\n            typeReference: TypeReference(module: .host, rawName: name.value),\n            valueCodeString: #\".init(source: .init(bundle: bundle, tableName: \"\\#(tableName.escapedStringLiteral)\", preferredLanguages: preferredLanguages, locale: locale))\"#\n        )\n    }\n\n    public static func generateBundleLocaleFunction(name: SwiftIdentifier) -> Function {\n        Function(\n            comments: [],\n            name: name,\n            params: [\n                .init(name: \"bundle\", localName: nil, typeReference: .bundle, defaultValue: nil),\n                .init(name: \"locale\", localName: nil, typeReference: .locale, defaultValue: nil),\n            ],\n            returnType: TypeReference(module: .host, rawName: name.value),\n            valueCodeString: \".init(source: .selected(bundle, locale))\"\n        )\n    }\n\n    public static func generatePreferredLanguagesFunction(name: SwiftIdentifier, tableName: String) -> Function {\n        Function(\n            comments: [],\n            name: name,\n            params: [\n                .init(name: \"preferredLanguages\", localName: nil, typeReference: TypeReference(module: .stdLib, rawName: \"[String]\"), defaultValue: nil),\n            ],\n            returnType: TypeReference(module: .host, rawName: name.value),\n            valueCodeString: #\".init(source: .init(bundle: bundle, tableName: \"\\#(tableName.escapedStringLiteral)\", preferredLanguages: preferredLanguages, locale: locale))\"#\n        )\n    }\n\n    // Ahem, this code is a bit of a mess. It might need cleaning up... ;-)\n    private static func computeStringsWithParams(filename: String, tables: [StringsTable], developmentLanguage: String?, warning: (String) -> Void) -> [StringWithParams] {\n\n        var allParams: [String: [(LocaleReference, String, [StringParam])]] = [:]\n        let primaryLanguage: String?\n        let primaryKeys: Set<String>?\n        let bases = tables.filter { $0.locale.isBase }\n        let developments = tables.filter { $0.locale.localeDescription == developmentLanguage }\n\n        if !bases.isEmpty {\n            primaryKeys = Set(bases.flatMap { $0.dictionary.keys })\n            primaryLanguage = \"Base\"\n        } else if !developments.isEmpty {\n            primaryKeys = Set(developments.flatMap { $0.dictionary.keys })\n            primaryLanguage = developmentLanguage\n        } else {\n            primaryKeys = nil\n            primaryLanguage = developmentLanguage\n        }\n\n        // Warnings about duplicates and empties\n        for ls in tables {\n            let filenameLocale = ls.locale.debugDescription(filename: filename)\n            let groupedKeys = ls.dictionary.keys.grouped(bySwiftIdentifier: { $0 })\n\n            groupedKeys.reportWarningsForDuplicatesAndEmpties(source: \"string\", container: \"in \\(filenameLocale)\", result: \"key\", warning: warning)\n\n            // Save uniques\n            for key in groupedKeys.uniques {\n                if let value = ls.dictionary[key] {\n                    if let _ = allParams[key] {\n                        allParams[key]?.append((ls.locale, value.originalValue, value.params))\n                    }\n                    else {\n                        allParams[key] = [(ls.locale, value.originalValue, value.params)]\n                    }\n                }\n            }\n        }\n\n        // Warnings about missing translations\n        for (locale, lss) in Dictionary(grouping: tables, by: \\.locale) {\n            let filenameLocale = locale.debugDescription(filename: filename)\n            let sourceKeys = primaryKeys ?? Set(allParams.keys)\n\n            let missing = sourceKeys.subtracting(lss.flatMap { $0.dictionary.keys })\n\n            if missing.isEmpty {\n                continue\n            }\n\n            let paddedKeys = missing.sorted().map { \"'\\($0)'\" }\n            let paddedKeysString = paddedKeys.joined(separator: \", \")\n\n            warning(\"Strings file \\(filenameLocale) is missing translations for keys: \\(paddedKeysString)\")\n        }\n\n        // Warnings about extra translations\n        for (locale, lss) in Dictionary(grouping: tables, by: \\.locale) {\n            let filenameLocale = locale.debugDescription(filename: filename)\n            let sourceKeys = primaryKeys ?? Set(allParams.keys)\n\n            let usedKeys = Set(lss.flatMap { $0.dictionary.keys })\n            let extra = usedKeys.subtracting(sourceKeys)\n\n            if extra.isEmpty {\n                continue\n            }\n\n            let paddedKeys = extra.sorted().map { \"'\\($0)'\" }\n            let paddedKeysString = paddedKeys.joined(separator: \", \")\n\n            if let primaryLanguage {\n                warning(\"Strings file \\(filenameLocale) has extra translations (not in \\(primaryLanguage)) for keys: \\(paddedKeysString)\")\n            } else {\n                warning(\"Strings file \\(filenameLocale) has extra translations for keys: \\(paddedKeysString)\")\n            }\n        }\n\n        // Only include translation if it exists in the primary language\n        func includeTranslation(_ key: String) -> Bool {\n            if let primaryKeys = primaryKeys {\n                return primaryKeys.contains(key)\n            }\n\n            return true\n        }\n\n        var results: [StringWithParams] = []\n        var badFormatSpecifiersKeys = Set<String>()\n\n        let filteredSortedParams = allParams\n            .map { $0 }\n            .filter { includeTranslation($0.0) }\n            .sorted(by: { $0.0 < $1.0 })\n\n        // Unify format specifiers\n        for (key, keyParams) in filteredSortedParams  {\n            var params: [StringParam] = []\n            var areCorrectFormatSpecifiers = true\n\n            for (locale, _, ps) in keyParams {\n                if ps.contains(where: { $0.spec == FormatSpecifier.topType }) {\n                    let name = locale.debugDescription(filename: filename)\n                    warning(\"Skipping string \\(key) in \\(name), not all format specifiers are consecutive\")\n\n                    areCorrectFormatSpecifiers = false\n                }\n            }\n\n            if !areCorrectFormatSpecifiers { continue }\n\n            for (_, _, ps) in keyParams {\n                if let unified = params.unify(ps) {\n                    params = unified\n                }\n                else {\n                    badFormatSpecifiersKeys.insert(key)\n\n                    areCorrectFormatSpecifiers = false\n                }\n            }\n\n            if !areCorrectFormatSpecifiers { continue }\n\n            let vals = keyParams.map { ($0.0, $0.1) }\n            let values = StringWithParams(key: key, params: params, tableName: filename, values: vals, developmentLanguage: developmentLanguage)\n            results.append(values)\n        }\n\n        for badKey in badFormatSpecifiersKeys.sorted() {\n            let fewParams = allParams.filter { $0.0 == badKey }.map { $0.1 }\n\n            if let params = fewParams.first {\n                let locales = params.compactMap { $0.0.localeDescription }.sorted().joined(separator: \", \")\n                warning(\"Skipping string for key \\(badKey) (\\(filename)), format specifiers don't match for all locales: \\(locales)\")\n            }\n        }\n\n        return results\n    }\n\n}\n\nprivate struct StringWithParams {\n    let key: String\n    let params: [StringParam]\n    let tableName: String\n    let values: [(LocaleReference, String)]\n    let developmentLanguage: String?\n\n    func generateFunctionBlank() -> Function {\n        let parameters: [Function.Parameter] = zip(params.indices, params).map { (ix, p) in\n                .init(name: p.name ?? \"_\", localName: \"value\\(ix + 1)\", typeReference: p.spec.typeReference, defaultValue: nil)\n            }\n        let arguments = parameters.map { $0.localName ?? $0.name }.joined(separator: \", \")\n        return Function(\n            comments: self.comments,\n            name: SwiftIdentifier(name: key),\n            params: parameters,\n            returnType: .string,\n            valueCodeString: \"String(format: \\(SwiftIdentifier(name: key).value), \\(arguments))\"\n        )\n    }\n\n    func generateFunctionPreferredLanguages() -> Function {\n        let parameters: [Function.Parameter] = zip(params.indices, params).map { (ix, p) in\n                .init(name: p.name ?? \"_\", localName: \"value\\(ix + 1)\", typeReference: p.spec.typeReference, defaultValue: nil)\n            }\n        let languages: Function.Parameter = .init(name: \"preferredLanguages\", localName: nil, typeReference: TypeReference(module: .stdLib, rawName: \"[String]\"), defaultValue: nil)\n        let arguments = parameters.map { $0.localName ?? $0.name }.joined(separator: \", \")\n        return Function(\n            comments: self.comments,\n            deprecated: \"Use R.string(preferredLanguages:).*.* instead\",\n            name: SwiftIdentifier(name: key),\n            params: parameters + [languages],\n            returnType: .string,\n            valueCodeString: \"String(format: \\(SwiftIdentifier(name: key).value), preferredLanguages: preferredLanguages, \\(arguments))\"\n        )\n    }\n\n    func generateVarGetter() -> VarGetter {\n        let developmentLanguageValue = values.filter { $0.0.localeDescription == developmentLanguage }.first?.1\n        let developmentValue = developmentLanguageValue.map { \"\\\"\\($0.escapedStringLiteral)\\\"\" } ?? \"nil\"\n\n        let typeReference = TypeReference(module: .rswiftResources, name: \"StringResource\\(params.isEmpty ? \"\" : \"\\(params.count)\")\", genericArgs: params.map(\\.spec.typeReference))\n\n        let varValueCodeString = #\".init(key: \"\\#(key.escapedStringLiteral)\", tableName: \"\\#(tableName)\", source: source, developmentValue: \\#(developmentValue), comment: nil)\"#\n\n        return VarGetter(\n            comments: self.comments,\n            name: SwiftIdentifier(name: key),\n            typeReference: typeReference,\n            valueCodeString: varValueCodeString\n        )\n    }\n\n    private var primaryLanguageValues: [(LocaleReference, String)] {\n        values.filter { $0.0.isBase } + values.filter { $0.0.localeDescription == developmentLanguage }\n    }\n\n    private var comments: [String] {\n        var results: [String] = []\n\n        let anyNone = values.contains { $0.0.isNone }\n        let vs = primaryLanguageValues + values\n\n        // Value\n        if let (locale, value) = vs.first {\n            if let localeDescription = locale.localeDescription {\n                let str = \"\\(localeDescription) translation: \\(value)\".commentString\n                results.append(str)\n            }\n            else {\n                let str = \"Value: \\(value)\".commentString\n                results.append(str)\n            }\n        }\n\n        // Key\n        if !results.isEmpty {\n            results.append(\"\")\n        }\n        results.append(\"Key: \\(key)\".commentString)\n\n        // Locales\n        if !anyNone {\n            if !results.isEmpty {\n                results.append(\"\")\n            }\n\n            let locales = values.compactMap { $0.0.localeDescription }\n            results.append(\"Locales: \\(locales.sorted().joined(separator: \", \"))\")\n        }\n\n        return results\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/SwiftSyntax/Struct.swift",
    "content": "//\n//  Struct.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-16.\n//\n\nimport Foundation\nimport RswiftResources\n\npublic enum AccessControl: Sendable {\n    case none\n    case `public`\n\n    func code() -> String? {\n        switch self {\n        case .none:\n            return nil\n        case .public:\n            return \"public\"\n        }\n    }\n}\n\npublic struct LetBinding: Sendable {\n    public let comments: [String]\n    public var accessControl = AccessControl.none\n    public let isStatic: Bool\n    public let name: SwiftIdentifier\n    public let typeReference: TypeReference?\n    public let valueCodeString: String?\n\n    public init(\n        comments: [String] = [],\n        accessControl: AccessControl = AccessControl.none,\n        isStatic: Bool = false,\n        name: SwiftIdentifier,\n        typeReference: TypeReference,\n        valueCodeString: String?\n    ) {\n        self.comments = comments\n        self.accessControl = accessControl\n        self.isStatic = isStatic\n        self.name = name\n        self.typeReference = typeReference\n        self.valueCodeString = valueCodeString\n    }\n\n    public init(\n        comments: [String] = [],\n        accessControl: AccessControl = AccessControl.none,\n        isStatic: Bool = false,\n        name: SwiftIdentifier,\n        valueCodeString: String\n    ) {\n        self.comments = comments\n        self.accessControl = accessControl\n        self.isStatic = isStatic\n        self.name = name\n        self.typeReference = nil\n        self.valueCodeString = valueCodeString\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        if let typeReference {\n            return typeReference.allModuleReferences\n        } else {\n            return Set()\n        }\n    }\n\n    func render(_ pp: inout PrettyPrinter) {\n        for c in comments {\n            pp.append(words: [\"///\", c == \"\" ? nil : c])\n        }\n\n        var words: [String?] = [\n            accessControl.code(),\n            isStatic ? \"static\" : nil,\n            \"let\",\n            typeReference == nil ? name.value : \"\\(name.value):\",\n            typeReference?.codeString()\n        ]\n        if let valueCodeString = valueCodeString {\n            words.append(\"=\")\n            words.append(valueCodeString)\n        }\n\n        pp.append(words: words)\n    }\n}\n\npublic struct VarGetter: Sendable {\n    public let comments: [String]\n    public let deploymentTarget: DeploymentTarget?\n    public var accessControl = AccessControl.none\n    public let name: SwiftIdentifier\n    public let typeReference: TypeReference\n    public let valueCodeString: String\n\n    public init(\n        comments: [String] = [],\n        deploymentTarget: DeploymentTarget? = nil,\n        accessControl: AccessControl = AccessControl.none,\n        name: SwiftIdentifier,\n        typeReference: TypeReference,\n        valueCodeString: String\n    ) {\n        self.comments = comments\n        self.deploymentTarget = deploymentTarget\n        self.accessControl = accessControl\n        self.name = name\n        self.typeReference = typeReference\n        self.valueCodeString = valueCodeString\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        typeReference.allModuleReferences\n    }\n\n    func render(_ pp: inout PrettyPrinter) {\n        for c in comments {\n            pp.append(words: [\"///\", c == \"\" ? nil : c])\n        }\n\n        deploymentTarget?.render(&pp)\n\n        let words: [String?] = [\n            accessControl.code(),\n            \"var\",\n            \"\\(name.value):\",\n            typeReference.codeString(),\n            \"{\",\n            valueCodeString,\n            \"}\"\n        ]\n\n        pp.append(words: words)\n    }\n}\n\n\npublic struct Function: Sendable {\n    public let comments: [String]\n    public let deploymentTarget: DeploymentTarget?\n    public var deprecated: String?\n    public var accessControl = AccessControl.none\n    public let isStatic: Bool\n    public let name: SwiftIdentifier\n    public let params: [Parameter]\n    public var returnThrows: Bool\n    public let returnType: TypeReference\n    public let valueCodeString: String\n\n    public init(\n        comments: [String],\n        deploymentTarget: DeploymentTarget? = nil,\n        deprecated: String? = nil,\n        accessControl: AccessControl = AccessControl.none,\n        isStatic: Bool = false,\n        name: SwiftIdentifier,\n        params: [Parameter],\n        returnThrows: Bool = false,\n        returnType: TypeReference,\n        valueCodeString: String\n    ) {\n        self.comments = comments\n        self.deploymentTarget = deploymentTarget\n        self.deprecated = deprecated\n        self.accessControl = accessControl\n        self.isStatic = isStatic\n        self.name = name\n        self.params = params\n        self.returnThrows = returnThrows\n        self.returnType = returnType\n        self.valueCodeString = valueCodeString\n    }\n\n    public struct Parameter: Sendable {\n        public let name: String\n        public let localName: String?\n        public let typeReference: TypeReference\n        public let defaultValue: String?\n\n        public init(name: String, localName: String?, typeReference: TypeReference, defaultValue: String?) {\n            self.name = name\n            self.localName = localName\n            self.typeReference = typeReference\n            self.defaultValue = defaultValue\n        }\n\n        func codeString() -> String {\n            var result = name\n            if let localName {\n                result += \" \\(localName)\"\n            }\n            result += \": \\(typeReference.codeString())\"\n            if let defaultValue {\n                result += \" = \\(defaultValue)\"\n            }\n\n            return result\n        }\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        Set(params.flatMap(\\.typeReference.allModuleReferences))\n            .union(returnType.allModuleReferences)\n    }\n\n    func render(_ pp: inout PrettyPrinter) {\n        for c in comments {\n            pp.append(words: [\"///\", c == \"\" ? nil : c])\n        }\n\n        deploymentTarget?.render(&pp)\n        if let deprecated = deprecated {\n            pp.append(line: #\"@available(*, deprecated, message: \"\\#(deprecated.escapedStringLiteral)\")\"#)\n        }\n\n        let prs = params.map { $0.codeString() }.joined(separator: \", \")\n        let words: [String?] = [\n            accessControl.code(),\n            isStatic ? \"static\" : nil,\n            \"func\",\n            \"\\(name.value)(\\(prs))\",\n            returnThrows ? \"throws\" : nil,\n            returnType != .void ? \"-> \\(returnType.codeString())\" : nil,\n            \"{\"\n        ]\n\n        pp.append(words: words)\n        pp.indented { pp in\n            pp.append(line: valueCodeString)\n        }\n        pp.append(line: \"}\")\n    }\n}\n\n\npublic struct Init: Sendable {\n    public let comments: [String]\n    public var accessControl = AccessControl.none\n    public let params: [Parameter]\n    public let valueCodeString: String\n\n    public init(comments: [String], accessControl: AccessControl = AccessControl.none, params: [Parameter], valueCodeString: String) {\n        self.comments = comments\n        self.accessControl = accessControl\n        self.params = params\n        self.valueCodeString = valueCodeString\n    }\n\n    public struct Parameter: Sendable {\n        public let name: String\n        public let localName: String?\n        public let typeReference: TypeReference\n        public let defaultValue: String?\n\n        func codeString() -> String {\n            var result = name\n            if let localName {\n                result += \" \\(localName)\"\n            }\n            result += \": \\(typeReference.codeString())\"\n            if let defaultValue {\n                result += \" = \\(defaultValue)\"\n            }\n\n            return result\n        }\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        Set(params.flatMap(\\.typeReference.allModuleReferences))\n    }\n\n    func render(_ pp: inout PrettyPrinter) {\n\n        for param in params {\n            let words: [String?] = [\n                accessControl.code(),\n                \"let\",\n                \"\\(param.localName ?? param.name):\",\n                param.typeReference.codeString()\n            ]\n            pp.append(words: words)\n        }\n\n        if accessControl != .none {\n            for c in comments {\n                pp.append(words: [\"///\", c == \"\" ? nil : c])\n            }\n\n            let prs = params.map { $0.codeString() }.joined(separator: \", \")\n            let words: [String?] = [\n                accessControl.code(),\n                \"init(\\(prs))\",\n                \"{\"\n            ]\n\n            pp.append(words: words)\n            pp.indented { pp in\n                pp.append(line: valueCodeString)\n            }\n            pp.append(line: \"}\")\n        }\n    }\n\n    public static var bundle: Init {\n        Init(\n            comments: [],\n            params: [Parameter(name: \"bundle\", localName: nil, typeReference: .bundle, defaultValue: nil),],\n            valueCodeString: \"self.bundle = bundle\"\n        )\n    }\n\n    public static var bundleLocale: Init {\n        Init(\n            comments: [],\n            params: [\n                Parameter(name: \"bundle\", localName: nil, typeReference: .bundle, defaultValue: nil),\n                Parameter(name: \"locale\", localName: nil, typeReference: .locale, defaultValue: nil),\n            ],\n            valueCodeString: \"\"\"\n                self.bundle = bundle\n                self.locale = locale\n                \"\"\"\n        )\n    }\n}\n\npublic struct TypeAlias: Sendable {\n    public let comments: [String]\n    public var accessControl = AccessControl.none\n    public let name: String\n    public let value: TypeReference\n\n    public init(comments: [String] = [], accessControl: AccessControl = AccessControl.none, name: String, value: TypeReference) {\n        self.comments = comments\n        self.accessControl = accessControl\n        self.name = name\n        self.value = value\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        value.allModuleReferences\n    }\n\n    func render(_ pp: inout PrettyPrinter) {\n\n        for c in comments {\n            pp.append(words: [\"///\", c == \"\" ? nil : c])\n        }\n\n        let words: [String?] = [\n            accessControl.code(),\n            \"typealias\",\n            name,\n            \"=\",\n            value.codeString()\n        ]\n\n        pp.append(words: words)\n    }\n}\n\npublic struct Struct: Sendable {\n    public let comments: [String]\n    public let deploymentTarget: DeploymentTarget?\n    public var accessControl = AccessControl.none\n    public let name: SwiftIdentifier\n    public var protocols: [TypeReference] = []\n    public var lets: [LetBinding] = []\n    public var vars: [VarGetter] = []\n    public var inits: [Init] = []\n    public var funcs: [Function] = []\n    public var structs: [Struct] = []\n    public var typealiasses: [TypeAlias] = []\n    public var additionalModuleReferences: Set<ModuleReference> = []\n\n    public static let empty: Struct = Struct(name: SwiftIdentifier(name: \"empty\"), membersBuilder: {})\n\n    public init(\n        comments: [String] = [],\n        deploymentTarget: DeploymentTarget? = nil,\n        accessControl: AccessControl = AccessControl.none,\n        name: SwiftIdentifier,\n        protocols: [TypeReference] = [],\n        additionalModuleReferences: Set<ModuleReference> = [],\n        @StructMembersBuilder membersBuilder: () -> StructMembers\n    ) {\n        self.comments = comments\n        self.deploymentTarget = deploymentTarget\n        self.accessControl = accessControl\n        self.name = name\n        self.protocols = protocols\n        self.additionalModuleReferences = additionalModuleReferences\n\n        let members = membersBuilder()\n        self.lets = members.lets\n        self.vars = members.vars\n        self.inits = members.inits\n        self.funcs = members.funcs\n        self.structs = members.structs\n        self.typealiasses = members.typealiasses\n    }\n\n    public var isEmpty: Bool {\n        lets.isEmpty && vars.isEmpty && funcs.isEmpty && structs.isEmpty\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        var result: Set<ModuleReference> = []\n        result.formUnion(protocols.flatMap(\\.allModuleReferences))\n        result.formUnion(lets.flatMap(\\.allModuleReferences))\n        result.formUnion(vars.flatMap(\\.allModuleReferences))\n        result.formUnion(inits.flatMap(\\.allModuleReferences))\n        result.formUnion(funcs.flatMap(\\.allModuleReferences))\n        result.formUnion(structs.flatMap(\\.allModuleReferences))\n        result.formUnion(typealiasses.flatMap(\\.allModuleReferences))\n        result.formUnion(additionalModuleReferences)\n\n        return result\n    }\n\n    public mutating func setAccessControl(_ accessControl: AccessControl) {\n        self.accessControl = accessControl\n        for i in lets.indices {\n            lets[i].accessControl = accessControl\n        }\n        for i in vars.indices {\n            vars[i].accessControl = accessControl\n        }\n        for i in inits.indices {\n            inits[i].accessControl = accessControl\n        }\n        for i in funcs.indices {\n            funcs[i].accessControl = accessControl\n        }\n        for i in structs.indices {\n            structs[i].setAccessControl(accessControl)\n        }\n        for i in typealiasses.indices {\n            typealiasses[i].accessControl = accessControl\n        }\n    }\n\n    public mutating func markSendable() {\n        self.protocols.append(.init(module: .host, rawName: \"Sendable\"))\n\n        for i in structs.indices {\n            structs[i].markSendable()\n        }\n    }\n\n    public func prettyPrint() -> String {\n        var pp = PrettyPrinter()\n        render(&pp)\n        return pp.render()\n    }\n\n    func render(_ pp: inout PrettyPrinter) {\n        for c in comments {\n            pp.append(words: [\"///\", c == \"\" ? nil : c])\n        }\n\n        deploymentTarget?.render(&pp)\n\n        let ps = protocols.map { $0.codeString() }.joined(separator: \", \")\n        let implements = ps.isEmpty ? \"\" : \": \\(ps)\"\n        pp.append(words: [accessControl.code(), \"struct\", \"\\(name.value)\\(implements)\", \"{\"])\n\n        pp.indented { pp in\n            for talias in typealiasses {\n                if !talias.comments.isEmpty {\n                    pp.append(line: \"\")\n                }\n                talias.render(&pp)\n            }\n        }\n\n        if !typealiasses.isEmpty && !inits.isEmpty {\n            pp.append(line: \"\")\n        }\n\n        pp.indented { pp in\n            for inib in inits {\n                if !inib.comments.isEmpty {\n                    pp.append(line: \"\")\n                }\n                inib.render(&pp)\n            }\n        }\n\n        if !inits.isEmpty && !lets.isEmpty {\n            pp.append(line: \"\")\n        }\n\n        pp.indented { pp in\n            for letb in lets {\n                if !letb.comments.isEmpty {\n                    pp.append(line: \"\")\n                }\n                letb.render(&pp)\n            }\n        }\n\n        if !lets.isEmpty && !vars.isEmpty {\n            pp.append(line: \"\")\n        }\n\n        pp.indented { pp in\n            for varb in vars {\n                if !varb.comments.isEmpty {\n                    pp.append(line: \"\")\n                }\n                varb.render(&pp)\n            }\n        }\n\n        if !vars.isEmpty && !funcs.isEmpty {\n            pp.append(line: \"\")\n        }\n\n        pp.indented { pp in\n            for fun in funcs {\n                if !fun.comments.isEmpty {\n                    pp.append(line: \"\")\n                }\n                fun.render(&pp)\n            }\n        }\n\n        if !funcs.isEmpty && !structs.isEmpty {\n            pp.append(line: \"\")\n        }\n\n        pp.indented { pp in\n            for st in structs {\n                if !st.comments.isEmpty {\n                    pp.append(line: \"\")\n                }\n                st.render(&pp)\n            }\n        }\n\n        pp.append(line: \"}\")\n    }\n}\n\nextension Struct {\n    public func generateLetBinding() -> LetBinding {\n        LetBinding(\n            name: name,\n            valueCodeString: \"\\(name.value)()\"\n        )\n    }\n\n    public func generateVarGetter() -> VarGetter {\n        VarGetter(\n            deploymentTarget: deploymentTarget,\n            name: name,\n            typeReference: TypeReference(module: .host, rawName: self.name.value),\n            valueCodeString: \".init()\"\n        )\n    }\n\n    public func generateBundleVarGetter(name: String) -> VarGetter {\n        VarGetter(\n            deploymentTarget: deploymentTarget,\n            name: SwiftIdentifier(name: name),\n            typeReference: TypeReference(module: .host, rawName: self.name.value),\n            valueCodeString: \".init(bundle: bundle)\"\n        )\n    }\n\n    public func generateBundleFunction(name: String) -> Function {\n        Function(\n            comments: [],\n            deploymentTarget: deploymentTarget,\n            name: SwiftIdentifier(name: name),\n            params: [.init(name: \"bundle\", localName: nil, typeReference: .bundle, defaultValue: nil)],\n            returnType: TypeReference(module: .host, rawName: self.name.value),\n            valueCodeString: \".init(bundle: bundle)\"\n        )\n    }\n}\n\nextension DeploymentTarget {\n    func render(_ pp: inout PrettyPrinter) {\n        if let version {\n            pp.append(line: \"@available(\\(platform) \\(version.major).\\(version.minor), *)\")\n        }\n    }\n\n    func codeIf(around code: String) -> String {\n        if let version {\n            return \"if #available(\\(platform) \\(version.major).\\(version.minor), *) { \\(code) }\"\n        } else {\n            return code\n        }\n    }\n}\n\nstruct PrettyPrinter {\n    private var indent = 0\n    private var lines: [(Int, String)] = []\n\n    mutating func indented(perform: (inout PrettyPrinter) -> Void) {\n        indent += 1\n        perform(&self)\n        indent -= 1\n    }\n\n    mutating func append(line str: String) {\n        if str.isEmpty {\n            lines.append((indent, \"\"))\n        }\n        for line in str.split(separator: \"\\n\") {\n            lines.append((indent, String(line)))\n        }\n    }\n\n    mutating func append(words: [String?]) {\n        let ws = words.compactMap { $0 }\n        if ws.isEmpty { return }\n\n        append(line: ws.joined(separator: \" \"))\n    }\n\n    func render() -> String {\n        let ls = lines.map { (indent, line) in\n            line.isEmpty\n                ? line\n                : String(repeating: \"  \", count: indent) + line\n        }\n        return ls.joined(separator: \"\\n\")\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/SwiftSyntax/StructMembersBuilder.swift",
    "content": "//\n//  StructMembersBuilder.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-29.\n//\n\nimport Foundation\n\npublic struct StructMembers {\n    var lets: [LetBinding] = []\n    var vars: [VarGetter] = []\n    var inits: [Init] = []\n    var funcs: [Function] = []\n    var structs: [Struct] = []\n    var typealiasses: [TypeAlias] = []\n\n    func sorted() -> StructMembers {\n        var new = self\n        new.lets.sort { $0.name < $1.name }\n        new.vars.sort { $0.name < $1.name }\n        new.funcs.sort { $0.name < $1.name }\n        new.structs.sort { $0.name < $1.name }\n        new.typealiasses.sort { $0.name < $1.name }\n        return new\n    }\n}\n\n@resultBuilder\npublic struct StructMembersBuilder {\n    public static func buildExpression(_ members: Void) -> StructMembers {\n        StructMembers()\n    }\n\n    public static func buildExpression(_ expression: LetBinding) -> StructMembers {\n        StructMembers(lets: [expression])\n    }\n\n    public static func buildExpression(_ expressions: [LetBinding]) -> StructMembers {\n        StructMembers(lets: expressions)\n    }\n\n    public static func buildExpression(_ expression: VarGetter) -> StructMembers {\n        StructMembers(vars: [expression])\n    }\n\n    public static func buildExpression(_ expressions: [VarGetter]) -> StructMembers {\n        StructMembers(vars: expressions)\n    }\n\n    public static func buildExpression(_ expression: Init) -> StructMembers {\n        StructMembers(inits: [expression])\n    }\n\n    public static func buildExpression(_ expressions: [Init]) -> StructMembers {\n        StructMembers(inits: expressions)\n    }\n\n    public static func buildExpression(_ expression: Function) -> StructMembers {\n        StructMembers(funcs: [expression])\n    }\n\n    public static func buildExpression(_ expressions: [Function]) -> StructMembers {\n        StructMembers(funcs: expressions)\n    }\n\n    public static func buildExpression(_ expression: Struct) -> StructMembers {\n        StructMembers(structs: [expression])\n    }\n\n    public static func buildExpression(_ expressions: [Struct]) -> StructMembers {\n        StructMembers(structs: expressions)\n    }\n\n    public static func buildExpression(_ expression: TypeAlias) -> StructMembers {\n        StructMembers(typealiasses: [expression])\n    }\n\n    public static func buildExpression(_ expressions: [TypeAlias]) -> StructMembers {\n        StructMembers(typealiasses: expressions)\n    }\n\n    public static func buildExpression(_ members: StructMembers) -> StructMembers {\n        members\n    }\n\n    public static func buildArray(_ members: [StructMembers]) -> StructMembers {\n        StructMembers(\n            lets: members.flatMap(\\.lets),\n            vars: members.flatMap(\\.vars),\n            inits: members.flatMap(\\.inits),\n            funcs: members.flatMap(\\.funcs),\n            structs: members.flatMap(\\.structs),\n            typealiasses: members.flatMap(\\.typealiasses)\n        )\n    }\n\n    public static func buildBlock(_ members: StructMembers...) -> StructMembers {\n        StructMembers(\n            lets: members.flatMap(\\.lets),\n            vars: members.flatMap(\\.vars),\n            inits: members.flatMap(\\.inits),\n            funcs: members.flatMap(\\.funcs),\n            structs: members.flatMap(\\.structs),\n            typealiasses: members.flatMap(\\.typealiasses)\n        )\n    }\n\n    public static func buildEither(first component: StructMembers) -> StructMembers {\n        component\n    }\n\n    public static func buildEither(second component: StructMembers) -> StructMembers {\n        component\n    }\n\n    public static func buildOptional(_ component: StructMembers?) -> StructMembers {\n        component ?? StructMembers()\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftGenerators/XcodeProject+Generator.swift",
    "content": "//\n//  XcodeProjectGenerator.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-11-03.\n//\n\nimport Foundation\n\npublic struct XcodeProjectGenerator {\n    public static func generateProject(developmentRegion: String?, knownAssetTags: [String]?) -> Struct {\n        Struct(name: SwiftIdentifier(name: \"project\")) {\n            let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n            if let developmentRegion {\n                LetBinding(name: SwiftIdentifier(name: \"developmentRegion\"), valueCodeString: #\"\"\\#(developmentRegion)\"\"#)\n            }\n\n            if let knownAssetTags {\n                let grouped = knownAssetTags.grouped(bySwiftIdentifier: { $0 })\n                grouped.reportWarningsForDuplicatesAndEmpties(source: \"known asset tag\", result: \"known asset tag\", warning: warning)\n                if grouped.uniques.count > 0 {\n                    Struct(name: SwiftIdentifier(name: \"knownAssetTags\"), protocols: [.sequence]) {\n                        grouped.uniques.map { tag in\n                            LetBinding(name: SwiftIdentifier(name: tag), valueCodeString: #\"\"\\#(tag)\"\"#)\n                        }\n\n                        generateMakeIterator(names: grouped.uniques.map { SwiftIdentifier(name: $0) })\n                    }\n                }\n            }\n        }\n    }\n\n    private static func generateMakeIterator(names: [SwiftIdentifier]) -> Function {\n        Function(\n            comments: [],\n            name: .init(name: \"makeIterator\"),\n            params: [],\n            returnType: .indexingIterator(.string),\n            valueCodeString: \"[\\(names.map(\\.value).joined(separator: \", \"))].makeIterator()\"\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/ProjectResources.swift",
    "content": "//\n//  ProjectResources.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-29.\n//\n\nimport Foundation\nimport XcodeEdit\nimport RswiftResources\n\npublic enum ResourceType: String, CaseIterable {\n    case image\n    case string\n    case color\n    case data\n    case file\n    case font\n    case nib\n    case segue\n    case storyboard\n    case reuseIdentifier\n    case entitlements\n    case info\n    case id\n    case project\n}\n\npublic struct ProjectResources {\n    public let assetCatalogs: [AssetCatalog]\n    public let files: [FileResource]\n    public let fonts: [FontResource]\n    public let images: [ImageResource]\n    public let strings: [StringsTable]\n    public let nibs: [NibResource]\n    public let storyboards: [StoryboardResource]\n    public let infoPlists: [PropertyListResource]\n    public let codeSignEntitlements: [PropertyListResource]\n\n    public static func parseXcodeproj(\n        xcodeproj: Xcodeproj,\n        targetName: String,\n        rswiftIgnoreURL: URL?,\n        infoPlistFile: URL?,\n        codeSignEntitlements: URL?,\n        sourceTreeURLs: SourceTreeURLs,\n        parseFontsAsFiles: Bool,\n        parseImagesAsFiles: Bool,\n        resourceTypes: [ResourceType],\n        warning: (String) -> Void\n    ) throws -> ProjectResources {\n        let ignoreFile = rswiftIgnoreURL.flatMap { try? IgnoreFile(ignoreFileURL: $0) } ?? IgnoreFile()\n\n        let buildConfigurations = try xcodeproj.buildConfigurations(forTarget: targetName)\n\n        var excludeURLs: [URL] = []\n        let infoPlists: [PropertyListResource]\n        let entitlements: [PropertyListResource]\n\n        if resourceTypes.contains(.info) {\n            infoPlists = try buildConfigurations.compactMap { config -> PropertyListResource? in\n                guard let url = infoPlistFile else { return nil }\n                excludeURLs.append(url)\n                return try parse(with: warning) {\n                    try PropertyListResource.parse(url: url, buildConfigurationName: config.name)\n                }\n            }\n        } else {\n            infoPlists = []\n        }\n\n        if resourceTypes.contains(.entitlements) {\n            entitlements = try buildConfigurations.compactMap { config -> PropertyListResource? in\n                guard let url = codeSignEntitlements else { return nil }\n                excludeURLs.append(url)\n                return try parse(with: warning) { try PropertyListResource.parse(url: url, buildConfigurationName: config.name) }\n            }\n        } else {\n            entitlements = []\n        }\n\n        let paths = try xcodeproj.resourcePaths(forTarget: targetName)\n        let pathURLs = paths.map { $0.url(with: sourceTreeURLs.url(for:)) }\n\n        let extraURLs = try xcodeproj.extraResourceURLs(forTarget: targetName, sourceTreeURLs: sourceTreeURLs)\n\n        // Combine URLs from Xcode project file with extra URLs found by scanning file system\n        var pathAndExtraURLs = Array(Set(pathURLs + extraURLs))\n\n        // Find all localized strings files for ignore extension so that those can be removed\n        let localizedExtensions = [\"xib\", \"storyboard\", \"intentdefinition\"]\n        let localizedStringURLs = findLocalizedStrings(inputURLs: pathAndExtraURLs, ignoreExtensions: localizedExtensions)\n\n        // These file types are compiled, and shouldn't be included as resources\n        // Note that this should be done after finding localized files\n        let sourceCodeExtensions = [\n            \"swift\", \"h\", \"m\", \"mm\", \"c\", \"cpp\", \"metal\",\n            \"xcdatamodeld\", \"entitlements\", \"intentdefinition\",\n        ]\n        pathAndExtraURLs.removeAll(where: { sourceCodeExtensions.contains($0.pathExtension) })\n\n        // Remove all ignored files, excluded files and localized strings files\n        let urls = pathAndExtraURLs\n            .filter { !ignoreFile.matches(url: $0) }\n            .filter { !excludeURLs.contains($0) }\n            .filter { !localizedStringURLs.contains($0) }\n\n        return try parseURLs(\n            urls: urls,\n            infoPlists: infoPlists,\n            codeSignEntitlements: entitlements,\n            parseFontsAsFiles: parseFontsAsFiles,\n            parseImagesAsFiles: parseImagesAsFiles,\n            resourceTypes: resourceTypes,\n            warning: warning\n        )\n    }\n\n    public static func parseURLs(\n        urls: [URL],\n        infoPlists: [PropertyListResource],\n        codeSignEntitlements: [PropertyListResource],\n        parseFontsAsFiles: Bool,\n        parseImagesAsFiles: Bool,\n        resourceTypes: [ResourceType],\n        warning: (String) -> Void\n    ) throws -> ProjectResources {\n\n        let assetCatalogs: [AssetCatalog]\n        let files: [FileResource]\n        let fonts: [FontResource]\n        let images: [ImageResource]\n        let strings: [StringsTable]\n        let nibs: [NibResource]\n        let storyboards: [StoryboardResource]\n\n        if resourceTypes.contains(.image) || resourceTypes.contains(.color) || resourceTypes.contains(.data) {\n            assetCatalogs = try urls\n                .filter { AssetCatalog.supportedExtensions.contains($0.pathExtension) }\n                .compactMap { url in try parse(with: warning) { try AssetCatalog.parse(url: url) } }\n        } else {\n            assetCatalogs = []\n        }\n\n        if resourceTypes.contains(.file) {\n            let dontParseFileForFonts = !parseFontsAsFiles\n            let dontParseFileForImages = !parseImagesAsFiles\n            files = try urls\n                .filter { !FileResource.unsupportedExtensions.contains($0.pathExtension) }\n                .filter { !(dontParseFileForFonts && FontResource.supportedExtensions.contains($0.pathExtension)) }\n                .filter { !(dontParseFileForImages && ImageResource.supportedExtensions.contains($0.pathExtension)) }\n                .compactMap { url in try parse(with: warning) { try FileResource.parse(url: url) } }\n        } else {\n            files = []\n        }\n\n        if resourceTypes.contains(.font) {\n            fonts = try urls\n                .filter { FontResource.supportedExtensions.contains($0.pathExtension) }\n                .compactMap { url in try parse(with: warning) { try FontResource.parse(url: url) } }\n        } else {\n            fonts = []\n        }\n\n        if resourceTypes.contains(.image) {\n            images = try urls\n                .filter { ImageResource.supportedExtensions.contains($0.pathExtension) }\n                .compactMap { url in try parse(with: warning) { try ImageResource.parse(url: url, assetTags: nil) } }\n        } else {\n            images = []\n        }\n\n        if resourceTypes.contains(.string) {\n            strings = try urls\n                .filter { StringsTable.supportedExtensions.contains($0.pathExtension) }\n                .compactMap { url in try parse(with: warning) { try StringsTable.parse(url: url) } }\n        } else {\n            strings = []\n        }\n\n        if resourceTypes.contains(.nib) {\n            nibs = try urls\n                .filter { NibResource.supportedExtensions.contains($0.pathExtension) }\n                .compactMap { url in try parse(with: warning) { try NibResource.parse(url: url) } }\n        } else {\n            nibs = []\n        }\n\n        if resourceTypes.contains(.storyboard) {\n            storyboards = try urls\n                .filter { StoryboardResource.supportedExtensions.contains($0.pathExtension) }\n                .compactMap { url in try parse(with: warning) { try StoryboardResource.parse(url: url) } }\n        } else {\n            storyboards = []\n        }\n\n        return ProjectResources(\n            assetCatalogs: assetCatalogs,\n            files: files,\n            fonts: fonts,\n            images: images,\n            strings: strings,\n            nibs: nibs,\n            storyboards: storyboards,\n            infoPlists: infoPlists,\n            codeSignEntitlements: codeSignEntitlements\n        )\n    }\n}\n\n// Finds strings files for Xcode generated files\n//\n// Example 1:\n// some-dir/Base.lproj/MyIntents.intentdefinition\n// some-dir/nl.lproj/MyIntents.string\n//\n// Example 2:\n// some-dir/Base.lproj/Main.storyboard\n// some-dir/nl.lproj/Main.string\nprivate func findLocalizedStrings(inputURLs: [URL], ignoreExtensions: [String]) -> [URL] {\n    // Dictionary to map each parent directory to its `.lproj` subdirectories\n    var parentToLprojDirectories = [URL: [URL]]()\n\n    // Dictionary to keep track of files in each `.lproj` directory\n    var directoryContents = [URL: [URL]]()\n\n    // Populate the dictionaries\n    for url in inputURLs {\n        let directoryURL = url.deletingLastPathComponent()\n        let parentDirectory = directoryURL.deletingLastPathComponent()\n        if directoryURL.lastPathComponent.hasSuffix(\".lproj\") {\n            parentToLprojDirectories[parentDirectory, default: []].append(directoryURL)\n            directoryContents[directoryURL, default: []].append(url)\n        }\n    }\n\n    // Set of URLs to remove\n    var urlsToRemove = Set<URL>()\n\n    // Analyze each group of sibling `.lproj` directories under the same parent\n    for (_, lprojDirectories) in parentToLprojDirectories {\n        var baseFilenameToFileUrls = [String: [URL]]()\n        var baseFilenamesWithIgnoreExtension = Set<String>()\n\n        // Collect all files by base filename and check for files with an ignoreExtension\n        for directory in lprojDirectories {\n            guard let files = directoryContents[directory] else { continue }\n            for file in files {\n                let baseFilename = file.deletingPathExtension().lastPathComponent\n                let fileExtension = file.pathExtension\n\n                baseFilenameToFileUrls[baseFilename, default: []].append(file)\n\n                if ignoreExtensions.contains(fileExtension) {\n                    baseFilenamesWithIgnoreExtension.insert(baseFilename)\n                }\n            }\n        }\n\n        // Determine which files to remove based on the presence of files with an ignoreExtension\n        for baseFilename in baseFilenamesWithIgnoreExtension {\n            if let files = baseFilenameToFileUrls[baseFilename] {\n                for file in files {\n                    if file.pathExtension == \"strings\" {\n                        urlsToRemove.insert(file)\n                    }\n                }\n            }\n        }\n    }\n\n    return Array(urlsToRemove)\n}\n\n\nprivate func parse<R>(with warning: (String) -> Void, closure: () throws -> R) throws -> R? {\n    do {\n        return try closure()\n    } catch let error as ResourceParsingError {\n        warning(error.description)\n        return nil\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/AssetCatalog+Parser.swift",
    "content": "//\n//  AssetFolder.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\nimport RswiftResources\n\n// Note: \"appiconset\" is not loadable by default, so it's not included here\nprivate let imageExtensions: Set<String> = [\"launchimage\", \"imageset\", \"imagestack\", \"symbolset\"]\n\nprivate let colorExtensions: Set<String> = [\"colorset\"]\nprivate let datasetExtensions: Set<String> = [\"dataset\"]\n\n// Ignore everything in folders with these extensions\nprivate let ignoredExtensions: Set<String> = [\"brandassets\", \"imagestacklayer\", \"appiconset\"]\n\nextension AssetCatalog: SupportedExtensions {\n    static public let supportedExtensions: Set<String> = [\"xcassets\"]\n\n    static public func parse(url: URL) throws -> AssetCatalog {\n\n        guard let basename = url.filenameWithoutExtension else {\n            throw ResourceParsingError(\"Couldn't extract filename from URL: \\(url)\")\n        }\n\n        let directory = try parseDirectory(catalogURL: url)\n        let namespace = try createNamespace(directory: directory, path: [])\n\n        return AssetCatalog(filename: basename, root: namespace)\n    }\n\n    static private func parseDirectory(catalogURL: URL) throws -> NamespaceDirectory {\n        let fileManager = FileManager.default\n        func errorHandler(_ url: URL, _ error: Error) -> Bool {\n            assertionFailure((error as NSError).debugDescription)\n            return true\n        }\n        let options: FileManager.DirectoryEnumerationOptions\n        if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {\n            #if !os(Linux)\n            options = [.skipsHiddenFiles, .producesRelativePathURLs]\n            #else\n            options = [.skipsHiddenFiles]\n            #endif\n        } else {\n            options = [.skipsHiddenFiles]\n        }\n        guard let directoryEnumerator = fileManager.enumerator(at: catalogURL, includingPropertiesForKeys: [.isDirectoryKey], options: options, errorHandler: errorHandler) else {\n            throw ResourceParsingError(\"Supposed AssetCatalog \\(catalogURL) can't be enumerated\")\n        }\n\n        let root = NamespaceDirectory()\n        var namespaces: [URL: NamespaceDirectory] = [URL(fileURLWithPath: \".\", relativeTo: catalogURL): root]\n\n        for case let fileURL as URL in directoryEnumerator {\n            guard fileURL.baseURL?.resolvingSymlinksInPath() == catalogURL.resolvingSymlinksInPath() else {\n                throw ResourceParsingError(\"File \\(fileURL) is not in AssetCatalog \\(catalogURL)\")\n            }\n\n            let resourceValues = try fileURL.resourceValues(forKeys: [.isDirectoryKey])\n            let isDirectory = resourceValues.isDirectory!\n\n            guard let filename = fileURL.filenameWithoutExtension else {\n                throw ResourceParsingError(\"Missing filename in \\(fileURL)\")\n            }\n            let pathExtension = fileURL.pathExtension\n\n            let relativeURL = URL(fileURLWithPath: fileURL.relativePath, relativeTo: catalogURL)\n            var parentURL = relativeURL\n            var parent: NamespaceDirectory?\n            for _ in 0..<directoryEnumerator.level {\n                parentURL = parentURL.deletingLastPathComponent()\n                parent = namespaces[parentURL]\n                if parent != nil { break }\n            }\n\n            guard let parent = parent else {\n                throw ResourceParsingError(\"Can't find namespace in AssetCatalog \\(catalogURL) for \\(fileURL)\")\n            }\n\n            if imageExtensions.contains(pathExtension) {\n                parent.images.append(fileURL)\n            } else if colorExtensions.contains(pathExtension) {\n                parent.colors.append(fileURL)\n            } else if datasetExtensions.contains(pathExtension) {\n                parent.dataAssets.append(fileURL)\n            } else if ignoredExtensions.contains(pathExtension) {\n                directoryEnumerator.skipDescendants()\n            } else if isDirectory && parseProvidesNamespace(directory: fileURL) {\n                let ns = NamespaceDirectory()\n                namespaces[relativeURL] = ns\n                parent.subnamespaces[filename] = ns\n            } else if isDirectory {\n                // Ignore\n            } else {\n                // Unknown\n            }\n        }\n\n        return root\n    }\n\n    // Note: ignore any localizations in Contents.json\n    static private func createNamespace(directory: NamespaceDirectory, path: [String]) throws -> Namespace {\n\n        var subnamespaces: [String: AssetCatalog.Namespace] = [:]\n        for (name, directory) in directory.subnamespaces {\n            let namespace = try createNamespace(directory: directory, path: path + [name])\n            subnamespaces[name] = namespace\n        }\n\n        var colors: [ColorResource] = []\n        for fileURL in directory.colors {\n            let name = fileURL.filenameWithoutExtension!\n            colors.append(.init(name: name, path: path, bundle: .temp))\n        }\n\n        var images: [ImageResource] = []\n        for fileURL in directory.images {\n            let name = fileURL.filenameWithoutExtension!\n            let tags = parseOnDemandResourceTags(directory: fileURL)\n            images.append(.init(name: name, path: path, bundle: .temp, locale: nil, onDemandResourceTags: tags))\n        }\n\n        var dataAssets: [DataResource] = []\n        for fileURL in directory.dataAssets {\n            let name = fileURL.filenameWithoutExtension!\n            let tags = parseOnDemandResourceTags(directory: fileURL)\n            dataAssets.append(.init(name: name, path: path, bundle: .temp, onDemandResourceTags: tags))\n        }\n\n        return AssetCatalog.Namespace(\n            subnamespaces: subnamespaces,\n            colors: colors,\n            images: images,\n            dataAssets: dataAssets\n        )\n    }\n}\n\nprivate class NamespaceDirectory: CustomDebugStringConvertible {\n    var subnamespaces: [String: NamespaceDirectory] = [:]\n    var colors: [URL] = []\n    var images: [URL] = []\n    var dataAssets: [URL] = []\n\n    var debugDescription: String {\n        \"Directory(subnamespaces: \\(subnamespaces), images: \\(images)\"\n    }\n}\n\nprivate func parseProvidesNamespace(directory: URL) -> Bool {\n    guard\n        let contents = try? ContentsJson.parse(directory: directory),\n        let providesNamespace = contents.properties.providesNamespace\n    else { return false }\n\n    return providesNamespace\n}\n\nprivate func parseOnDemandResourceTags(directory: URL) -> [String]? {\n    guard\n        let contents = try? ContentsJson.parse(directory: directory)\n    else { return nil }\n\n    return contents.properties.onDemandResourceTags\n}\n\nprivate struct ContentsJson: Decodable {\n    let properties: Properties\n\n    struct Properties: Decodable {\n        let providesNamespace: Bool?\n        let onDemandResourceTags: [String]?\n\n        enum CodingKeys: String, CodingKey {\n            case providesNamespace = \"provides-namespace\"\n            case onDemandResourceTags = \"on-demand-resource-tags\"\n        }\n    }\n\n    static func parse(directory: URL) throws -> ContentsJson {\n        let decoder = JSONDecoder()\n        let contentsFile = URL(string: \"Contents.json\", relativeTo: directory)!\n        let contentsData = try Data(contentsOf: contentsFile)\n        let contents = try decoder.decode(ContentsJson.self, from: contentsData)\n\n        return contents\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/FileResource+Parser.swift",
    "content": "//\n//  FileResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension FileResource {\n    // These are all extensions of resources that are passed to some special compiler step and not directly available at runtime\n    static public let unsupportedExtensions: Set<String> = [\n        AssetCatalog.supportedExtensions,\n        StringsTable.supportedExtensions,\n        NibResource.supportedExtensions,\n        StoryboardResource.supportedExtensions,\n    ]\n    .reduce([]) { $0.union($1) }\n\n    static public func parse(url: URL) throws -> FileResource {\n        guard let basename = url.filenameWithoutExtension else {\n            throw ResourceParsingError(\"Couldn't extract filename from URL: \\(url)\")\n        }\n\n        let locale = LocaleReference(url: url)\n\n        return FileResource(\n            name: basename,\n            pathExtension: url.pathExtension,\n            bundle: .temp,\n            locale: locale\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/FontResource+Parser.swift",
    "content": "//\n//  FontResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\nimport RswiftResources\n\n#if canImport(CoreGraphics)\nimport CoreGraphics\n#endif\n\nextension FontResource: SupportedExtensions {\n    static public let supportedExtensions: Set<String> = [\"otf\", \"ttf\"]\n\n    #if canImport(CoreGraphics)\n    static public func parse(url: URL) throws -> FontResource {\n        guard let dataProvider = CGDataProvider(url: url as CFURL) else {\n            throw ResourceParsingError(\"Unable to create data provider for font at \\(url)\")\n        }\n\n        let font = CGFont(dataProvider)\n        guard let postScriptName = font?.postScriptName else {\n            throw ResourceParsingError(\"No postscriptName associated to font at \\(url)\")\n        }\n\n        return FontResource(\n            name: postScriptName as String,\n            bundle: .temp,\n            filename: url.lastPathComponent\n        )\n    }\n    #else\n    static public func parse(url: URL) throws -> FontResource {\n        throw ResourceParsingError(\"Unsupported FontResource.parse\")\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/ImageResource+Parser.swift",
    "content": "//\n//  ImageResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension ImageResource: SupportedExtensions {\n    // See \"Supported Image Formats\" on https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/\n    static public let supportedExtensions: Set<String> = [\"tiff\", \"tif\", \"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"bmpf\", \"ico\", \"cur\", \"xbm\"]\n\n    static public func parse(url: URL, assetTags: [String]?) throws -> ImageResource {\n        let filename = url.lastPathComponent\n        let pathExtension = url.pathExtension\n        guard filename.count > 0 && pathExtension.count > 0 else {\n            throw ResourceParsingError(\"Filename and/or extension could not be parsed from URL: \\(url.absoluteString)\")\n        }\n\n        let locale = LocaleReference(url: url)\n\n        let extensions = ImageResource.supportedExtensions.joined(separator: \"|\")\n        let regex = try! NSRegularExpression(pattern: \"(~(ipad|iphone))?(@[2,3]x)?\\\\.(\\(extensions))$\", options: .caseInsensitive)\n        let fullFileNameRange = NSRange(location: 0, length: filename.count)\n        let pathExtensionToUse = (pathExtension == \"png\") ? \"\" : \".\\(pathExtension)\"\n        let name = regex.stringByReplacingMatches(in: filename, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: fullFileNameRange, withTemplate: pathExtensionToUse)\n\n        return ImageResource(name: name, path: [], bundle: .temp, locale: locale, onDemandResourceTags: assetTags)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/Nib+Parser.swift",
    "content": "//\n//  Nib.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n#if canImport(FoundationXML)\nimport FoundationXML\n#endif\nimport RswiftResources\n\n\nextension NibResource: SupportedExtensions {\n    static public let supportedExtensions: Set<String> = [\"xib\"]\n\n    static public func parse(url: URL) throws -> NibResource {\n        guard let basename = url.filenameWithoutExtension else {\n            throw ResourceParsingError(\"Couldn't extract filename from URL: \\(url)\")\n        }\n\n        let locale = LocaleReference(url: url)\n\n        guard let parser = XMLParser(contentsOf: url) else {\n            throw ResourceParsingError(\"Couldn't load file at: '\\(url)'\")\n        }\n\n        let parserDelegate = NibParserDelegate()\n        parser.delegate = parserDelegate\n\n        guard parser.parse() else {\n            throw ResourceParsingError(\"Invalid XML in file at: '\\(url)'\")\n        }\n\n        return NibResource(\n            name: basename,\n            locale: locale,\n            deploymentTarget: parserDelegate.deploymentTarget,\n            rootViews: parserDelegate.rootViews,\n            reusables: parserDelegate.reusables,\n            generatedIds: parserDelegate.generatedIds,\n            usedImageIdentifiers: parserDelegate.usedImageIdentifiers,\n            usedColorResources: parserDelegate.usedColorReferences,\n            usedAccessibilityIdentifiers: parserDelegate.usedAccessibilityIdentifiers,\n            isAppKit: parserDelegate.isAppKit\n        )\n    }\n}\n\ninternal class NibParserDelegate: NSObject, XMLParserDelegate {\n    var isAppKit = false\n    let ignoredRootViewElements = [\"placeholder\"]\n    var deploymentTarget: DeploymentTarget?\n    var rootViews: [TypeReference] = []\n    var reusables: [Reusable] = []\n    var generatedIds: [String] = []\n    var usedImageIdentifiers: [NameCatalog] = []\n    var usedColorReferences: [NameCatalog] = []\n    var usedAccessibilityIdentifiers: [String] = []\n\n    // State\n    var isObjectsTagOpened = false;\n    var levelSinceObjectsTagOpened = 0;\n\n    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {\n        if isObjectsTagOpened {\n            levelSinceObjectsTagOpened += 1\n        }\n        if elementName == \"objects\" {\n            isObjectsTagOpened = true\n        }\n\n        if let id = attributeDict[\"id\"], isGenerated(id: id) {\n            generatedIds.append(id)\n        }\n\n        switch elementName {\n        case \"deployment\":\n            let version = attributeDict[\"version\"]\n            if let platform = attributeDict[\"identifier\"] {\n                deploymentTarget = DeploymentTarget(version: version.flatMap(parseDeploymentTargetVersion(_:)), platform: platform)\n            }\n\n        case \"document\":\n            isAppKit = attributeDict[\"targetRuntime\"] == \"MacOSX.Cocoa\"\n\n        case \"image\":\n            if let imageIdentifier = attributeDict[\"name\"] {\n                usedImageIdentifiers.append(NameCatalog(name: imageIdentifier, catalog: attributeDict[\"catalog\"]))\n            }\n\n        case \"color\":\n            if let colorName = attributeDict[\"name\"] {\n                usedColorReferences.append(NameCatalog(name: colorName, catalog: attributeDict[\"catalog\"]))\n            }\n\n        case \"accessibility\":\n            if let accessibilityIdentifier = attributeDict[\"identifier\"] {\n                usedAccessibilityIdentifiers.append(accessibilityIdentifier)\n            }\n\n        case \"userDefinedRuntimeAttribute\":\n            if let accessibilityIdentifier = attributeDict[\"value\"], \"accessibilityIdentifier\" == attributeDict[\"keyPath\"] && \"string\" == attributeDict[\"type\"] {\n                usedAccessibilityIdentifiers.append(accessibilityIdentifier)\n            }\n\n        default:\n            if let rootView = viewWithAttributes(attributeDict, elementName: elementName),\n               levelSinceObjectsTagOpened == 1 && ignoredRootViewElements.allSatisfy({ $0 != elementName }) {\n                rootViews.append(rootView)\n            }\n            if let reusable = reusableFromAttributes(attributeDict, elementName: elementName) {\n                reusables.append(reusable)\n            }\n        }\n    }\n\n    func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {\n        switch elementName {\n        case \"objects\":\n            isObjectsTagOpened = false;\n\n        default:\n            if isObjectsTagOpened {\n                levelSinceObjectsTagOpened -= 1\n            }\n        }\n    }\n\n    func viewWithAttributes(_ attributeDict: [String : String], elementName: String) -> TypeReference? {\n        let customModuleProvider = attributeDict[\"customModuleProvider\"]\n        let customModule = (customModuleProvider == \"target\") ? nil : attributeDict[\"customModule\"]\n        let customClass = attributeDict[\"customClass\"]\n        let customType = customClass\n            .map { TypeReference(module: ModuleReference(name: customModule), rawName: $0) }\n\n        return customType ?? (isAppKit ? (macosElementTypes[elementName] ?? .nsView) : (uikitElementToTypes[elementName] ?? .uiView))\n    }\n\n    func reusableFromAttributes(_ attributeDict: [String : String], elementName: String) -> Reusable? {\n        guard let reuseIdentifier = attributeDict[\"reuseIdentifier\"] , reuseIdentifier != \"\" else {\n            return nil\n        }\n\n        let customModuleProvider = attributeDict[\"customModuleProvider\"]\n        let customModule = (customModuleProvider == \"target\") ? nil : attributeDict[\"customModule\"]\n        let customClass = attributeDict[\"customClass\"]\n        let customType = customClass\n            .map { TypeReference(module: ModuleReference(name: customModule), rawName: $0) }\n\n        let type = customType ?? (isAppKit ? (macosElementTypes[elementName] ?? .nsView) : (uikitElementToTypes[elementName] ?? .uiView))\n\n        return Reusable(identifier: reuseIdentifier, type: type)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/PropertyList+Parser.swift",
    "content": "//\n//  PropertyList.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2018-07-08.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension PropertyListResource {\n    static public func parse(url: URL, buildConfigurationName: String) throws -> PropertyListResource {\n        guard\n            let nsDictionary = NSDictionary(contentsOf: url),\n            let dictionary = nsDictionary as? [String: Any]\n        else {\n            throw ResourceParsingError(\"File could not be parsed as InfoPlist from URL: \\(url.absoluteString)\")\n        }\n\n        return PropertyListResource(buildConfigurationName: buildConfigurationName, contents: dictionary, url: url)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/Storyboard+Parser.swift",
    "content": "//\n//  Storyboard.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n#if canImport(FoundationXML)\nimport FoundationXML\n#endif\nimport RswiftResources\n\n\nlet uikitElementToTypes: [String: TypeReference] = [\n    \"viewController\": TypeReference(module: .uiKit, rawName: \"UIViewController\"),\n    \"tabBarController\": TypeReference(module: .uiKit, rawName: \"UITabBarController\"),\n    \"glkViewController\": TypeReference(module: .custom(name: \"GLKit\"), rawName: \"GLKViewController\"),\n    \"hostingController\": .uiViewController, // TypeReference(module: .custom(name: \"SwiftUI\"), rawName: \"UIHostingController\"),\n    \"pageViewController\": TypeReference(module: .uiKit, rawName: \"UIPageViewController\"),\n    \"tableViewController\": TypeReference(module: .uiKit, rawName: \"UITableViewController\"),\n    \"splitViewController\": TypeReference(module: .uiKit, rawName: \"UISplitViewController\"),\n    \"navigationController\": TypeReference(module: .uiKit, rawName: \"UINavigationController\"),\n    \"avPlayerViewController\": TypeReference(module: .custom(name: \"AVKit\"), rawName: \"AVPlayerViewController\"),\n    \"collectionViewController\": TypeReference(module: .uiKit, rawName: \"UICollectionViewController\"),\n    \"lookAroundViewController\": TypeReference(module: .custom(name: \"MapKit\"), rawName: \"MKLookAroundViewController\"),\n\n    \"view\": TypeReference.uiView,\n    \"tableViewCell\": TypeReference(module: .uiKit, rawName: \"UITableViewCell\"),\n    \"collectionViewCell\": TypeReference(module: .uiKit, rawName: \"UICollectionViewCell\"),\n    \"collectionReusableView\": TypeReference(module: .uiKit, rawName: \"UICollectionReusableView\"),\n]\n\nlet macosElementTypes: [String: TypeReference] = [\n    \"viewController\": TypeReference(module: .appKit, rawName: \"NSViewController\"),\n    \"tabViewController\": TypeReference(module: .appKit, rawName: \"NSTabViewController\"),\n    \"splitViewController\": TypeReference(module: .appKit, rawName: \"NSSplitViewController\"),\n    \"hostingController\": .nsViewController, // TypeReference(module: .custom(name: \"SwiftUI\"), rawName: \"NSHostingController\"),\n    \"pagecontroller\": TypeReference(module: .appKit, rawName: \"NSPageController\"),\n    \"windowController\": TypeReference(module: .appKit, rawName: \"NSWindowController\"),\n    \"lookAroundViewController\": TypeReference(module: .custom(name: \"MapKit\"), rawName: \"MKLookAroundViewController\"),\n\n    \"view\": TypeReference.nsView,\n    \"scrollView\": TypeReference(module: .appKit, rawName: \"NSScrollView\"),\n    \"tableCellView\": TypeReference(module: .appKit, rawName: \"NSTableCellView\"),\n    \"collectionViewItem\": TypeReference(module: .appKit, rawName: \"NSCollectionViewItem\"),\n]\n\nextension StoryboardResource: SupportedExtensions {\n    static public let supportedExtensions: Set<String> = [\"storyboard\"]\n    \n    static public func parse(url: URL) throws -> StoryboardResource {\n        guard let basename = url.filenameWithoutExtension else {\n            throw ResourceParsingError(\"Couldn't extract filename from URL: \\(url)\")\n        }\n\n        let locale = LocaleReference(url: url)\n\n        guard let parser = XMLParser(contentsOf: url) else {\n            throw ResourceParsingError(\"Couldn't load file at: '\\(url)'\")\n        }\n\n        let parserDelegate = StoryboardParserDelegate()\n        parser.delegate = parserDelegate\n\n        guard parser.parse() else {\n            throw ResourceParsingError(\"Invalid XML in file at: '\\(url)'\")\n        }\n\n        return StoryboardResource(\n            name: basename,\n            locale: locale,\n            deploymentTarget: parserDelegate.deploymentTarget,\n            initialViewControllerIdentifier: parserDelegate.initialViewControllerIdentifier,\n            viewControllers: parserDelegate.viewControllers,\n            viewControllerPlaceholders: parserDelegate.viewControllerPlaceholders,\n            generatedIds: parserDelegate.generatedIds,\n            usedAccessibilityIdentifiers: parserDelegate.usedAccessibilityIdentifiers,\n            usedImageIdentifiers: parserDelegate.usedImageIdentifiers,\n            usedColorResources: parserDelegate.usedColorReferences,\n            reusables: parserDelegate.reusables,\n            isAppKit: parserDelegate.isAppKit\n        )\n    }\n}\n\nprivate class StoryboardParserDelegate: NSObject, XMLParserDelegate {\n    var isAppKit = false\n    var initialViewControllerIdentifier: String?\n    var deploymentTarget: DeploymentTarget?\n    var viewControllers: [StoryboardResource.ViewController] = []\n    var viewControllerPlaceholders: [StoryboardResource.ViewControllerPlaceholder] = []\n    var generatedIds: [String] = []\n    var usedImageIdentifiers: [NameCatalog] = []\n    var usedColorReferences: [NameCatalog] = []\n    var usedAccessibilityIdentifiers: [String] = []\n    var reusables: [Reusable] = []\n\n    // State\n    var currentViewController: StoryboardResource.ViewController?\n\n    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {\n        if let id = attributeDict[\"id\"], isGenerated(id: id) {\n            generatedIds.append(id)\n        }\n\n        switch elementName {\n        case \"deployment\":\n            let version = attributeDict[\"version\"]\n            if let platform = attributeDict[\"identifier\"] {\n                deploymentTarget = DeploymentTarget(version: version.flatMap(parseDeploymentTargetVersion(_:)), platform: platform)\n            }\n\n        case \"document\":\n            if let initialViewController = attributeDict[\"initialViewController\"] {\n                initialViewControllerIdentifier = initialViewController\n            }\n            isAppKit = attributeDict[\"targetRuntime\"] == \"MacOSX.Cocoa\"\n\n        case \"segue\":\n            let customModuleProvider = attributeDict[\"customModuleProvider\"]\n            let customModule = (customModuleProvider == \"target\") ? nil : attributeDict[\"customModule\"]\n            let customClass = attributeDict[\"customClass\"]\n            let customType = customClass\n                .map { TypeReference(module: ModuleReference(name: customModule), rawName: $0) }\n\n            if let segueIdentifier = attributeDict[\"identifier\"],\n               let destination = attributeDict[\"destination\"],\n               let kind = attributeDict[\"kind\"]\n            {\n                let type = customType ?? (isAppKit ? .nsStoryboardSegue : .uiStoryboardSegue)\n\n                let segue = StoryboardResource.Segue(identifier: segueIdentifier, type: type, destination: destination, kind: kind)\n                currentViewController?.segues.append(segue)\n            }\n\n        case \"image\":\n            if let imageIdentifier = attributeDict[\"name\"] {\n                usedImageIdentifiers.append(NameCatalog(name: imageIdentifier, catalog: attributeDict[\"catalog\"]))\n            }\n\n        case \"color\":\n            if let colorName = attributeDict[\"name\"] {\n                usedColorReferences.append(NameCatalog(name: colorName, catalog: attributeDict[\"catalog\"]))\n            }\n\n        case \"accessibility\":\n            if let accessibilityIdentifier = attributeDict[\"identifier\"] {\n                usedAccessibilityIdentifiers.append(accessibilityIdentifier)\n            }\n\n        case \"userDefinedRuntimeAttribute\":\n            if let accessibilityIdentifier = attributeDict[\"value\"], \"accessibilityIdentifier\" == attributeDict[\"keyPath\"] && \"string\" == attributeDict[\"type\"] {\n                usedAccessibilityIdentifiers.append(accessibilityIdentifier)\n            }\n\n        case \"viewControllerPlaceholder\":\n            if let id = attributeDict[\"id\"] , attributeDict[\"sceneMemberID\"] == \"viewController\" {\n                let placeholder = StoryboardResource.ViewControllerPlaceholder(\n                    id: id,\n                    storyboardName: attributeDict[\"storyboardName\"],\n                    referencedIdentifier: attributeDict[\"referencedIdentifier\"],\n                    bundleIdentifier: attributeDict[\"bundleIdentifier\"]\n                )\n                viewControllerPlaceholders.append(placeholder)\n            }\n\n        default:\n            if let viewController = viewControllerFromAttributes(attributeDict, elementName: elementName) {\n                currentViewController = viewController\n            }\n\n            if let reusable = reusableFromAttributes(attributeDict, elementName: elementName) {\n                reusables.append(reusable)\n            }\n        }\n    }\n    \n    func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {\n        // We keep the current view controller open to collect segues until the closing scene:\n        // <scene>\n        //   <viewController>\n        //     ...\n        //     <segue />\n        //   </viewController>\n        //   <segue />\n        // </scene>\n        if elementName == \"scene\" {\n            if let currentViewController = currentViewController {\n                viewControllers.append(currentViewController)\n                self.currentViewController = nil\n            }\n        }\n    }\n\n    func viewControllerFromAttributes(_ attributeDict: [String : String], elementName: String) -> StoryboardResource.ViewController? {\n        guard let id = attributeDict[\"id\"] , attributeDict[\"sceneMemberID\"] == \"viewController\" else {\n            return nil\n        }\n\n        let storyboardIdentifier = attributeDict[\"storyboardIdentifier\"]\n\n        let customModuleProvider = attributeDict[\"customModuleProvider\"]\n        let customModule = (customModuleProvider == \"target\") ? nil : attributeDict[\"customModule\"]\n        let customClass = attributeDict[\"customClass\"]\n        let customType = customClass\n            .map { TypeReference(module: ModuleReference(name: customModule), rawName: $0) }\n\n        let type = customType ?? (isAppKit ? (macosElementTypes[elementName] ?? .nsViewController) : (uikitElementToTypes[elementName] ?? .uiViewController))\n\n        return StoryboardResource.ViewController(id: id, storyboardIdentifier: storyboardIdentifier, type: type, segues: [])\n    }\n\n    func reusableFromAttributes(_ attributeDict: [String : String], elementName: String) -> Reusable? {\n        guard let reuseIdentifier = attributeDict[\"reuseIdentifier\"] , reuseIdentifier != \"\" else {\n            return nil\n        }\n\n        let customModuleProvider = attributeDict[\"customModuleProvider\"]\n        let customModule = (customModuleProvider == \"target\") ? nil : attributeDict[\"customModule\"]\n        let customClass = attributeDict[\"customClass\"]\n        let customType = customClass\n            .map { TypeReference(module: ModuleReference(name: customModule), rawName: $0) }\n\n        let type = customType ?? (isAppKit ? (macosElementTypes[elementName] ?? .nsView) : (uikitElementToTypes[elementName] ?? .uiView))\n\n        return Reusable(identifier: reuseIdentifier, type: type)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Resources/StringsTable+Parser.swift",
    "content": "//\n//  LocalizableStrings.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension StringsTable: SupportedExtensions {\n    static public let supportedExtensions: Set<String> = [\"strings\", \"stringsdict\"]\n\n    static public func parse(url: URL) throws -> StringsTable {\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        guard let basename = url.filenameWithoutExtension else {\n            throw ResourceParsingError(\"Couldn't extract filename from URL: \\(url)\")\n        }\n\n        // Get locale from url (second to last component)\n        let locale = LocaleReference(url: url)\n\n        // Check to make sure url can be parsed as a dictionary\n        guard let nsDictionary = NSDictionary(contentsOf: url) else {\n            throw ResourceParsingError(\"File could not be parsed as a strings file: \\(url.absoluteString)\")\n        }\n\n        // Parse dicts from NSDictionary\n        let dictionary: [StringsTable.Key: StringsTable.Value]\n        switch url.pathExtension {\n        case \"strings\":\n            dictionary = try parseStrings(nsDictionary, source: locale.debugDescription(filename: \"\\(basename).strings\"))\n        case \"stringsdict\":\n            dictionary = try parseStringsdict(nsDictionary, source: locale.debugDescription(filename: \"\\(basename).stringsdict\"), warning: warning)\n        default:\n            throw ResourceParsingError(\"File could not be parsed as a strings file: \\(url.absoluteString)\")\n        }\n\n        return StringsTable(filename: basename, locale: locale, dictionary: dictionary)\n    }\n}\n\nprivate func parseStrings(_ nsDictionary: NSDictionary, source: String) throws -> [StringsTable.Key: StringsTable.Value] {\n    var dictionary: [StringsTable.Key: StringsTable.Value] = [:]\n\n    for (key, obj) in nsDictionary {\n        if let\n            key = key as? String,\n           let val = obj as? String\n        {\n            var params: [StringParam] = []\n\n            for part in FormatPart.formatParts(formatString: val) {\n                switch part {\n                case .reference:\n                    throw ResourceParsingError(\"Non-specifier reference in \\(source): \\(key) = \\(val)\")\n\n                case .spec(let formatSpecifier):\n                    params.append(StringParam(name: nil, spec: formatSpecifier))\n                }\n            }\n\n\n            dictionary[key] = .init(params: params, originalValue: val)\n        }\n        else {\n            throw ResourceParsingError(\"Non-string value in \\(source): \\(key) = \\(obj)\")\n        }\n    }\n\n    return dictionary\n}\n\nprivate func parseStringsdict(_ nsDictionary: NSDictionary, source: String, warning: (String) -> Void) throws -> [StringsTable.Key: StringsTable.Value] {\n    var dictionary: [StringsTable.Key: StringsTable.Value] = [:]\n\n    for (key, obj) in nsDictionary {\n        if let\n            key = key as? String,\n           let dict = obj as? [String: AnyObject]\n        {\n            guard let localizedFormat = dict[\"NSStringLocalizedFormatKey\"] as? String else {\n                continue\n            }\n\n            do {\n                let params = try parseStringsdictParams(localizedFormat, dict: dict)\n                dictionary[key] = .init(params: params, originalValue: localizedFormat)\n            } catch let error as ResourceParsingError {\n                warning(\"\\(error.description) in '\\(key)' \\(source)\")\n            }\n        }\n        else {\n            throw ResourceParsingError(\"Non-dict value in \\(source): \\(key) = \\(obj)\")\n        }\n    }\n\n    return dictionary\n}\n\nprivate func parseStringsdictParams(_ format: String, dict: [String: AnyObject]) throws -> [StringParam] {\n    var params: [StringParam] = []\n\n    let parts = FormatPart.formatParts(formatString: format)\n    for part in parts {\n        switch part {\n        case .reference(let reference):\n            params += try lookup(key: reference, in: dict)\n\n        case .spec(let formatSpecifier):\n            params.append(StringParam(name: nil, spec: formatSpecifier))\n        }\n    }\n\n    return params\n}\n\nprivate func lookup(key: String, in dict: [String: AnyObject], processedReferences: [String] = []) throws -> [StringParam] {\n    var processedReferences = processedReferences\n\n    if processedReferences.contains(key) {\n        throw ResourceParsingError(\"Cyclic reference '\\(key)'\")\n    }\n\n    processedReferences.append(key)\n\n    guard let obj = dict[key], let nested = obj as? [String: AnyObject] else {\n        throw ResourceParsingError(\"Missing reference '\\(key)'\")\n    }\n\n    guard let formatSpecType = nested[\"NSStringFormatSpecTypeKey\"] as? String,\n          let formatValueType = nested[\"NSStringFormatValueTypeKey\"] as? String\n            , formatSpecType == \"NSStringPluralRuleType\"\n    else {\n        throw ResourceParsingError(\"Incorrect reference '\\(key)'\")\n    }\n    guard let formatSpecifier = FormatSpecifier(formatString: formatValueType)\n    else {\n        throw ResourceParsingError(\"Incorrect reference format specifier \\\"\\(formatValueType)\\\" for '\\(key)'\")\n    }\n\n    var results = [StringParam(name: nil, spec: formatSpecifier)]\n\n    let stringValues = nested.values.compactMap { $0 as? String }.sorted()\n\n    for stringValue in stringValues {\n        var alternative: [StringParam] = []\n        let parts = FormatPart.formatParts(formatString: stringValue)\n        for part in parts {\n            switch part {\n            case .reference(let reference):\n                alternative += try lookup(key: reference, in: dict, processedReferences: processedReferences)\n\n            case .spec(let formatSpecifier):\n                alternative.append(StringParam(name: key, spec: formatSpecifier))\n            }\n        }\n\n        if let unified = results.unify(alternative) {\n            results = unified\n        }\n        else {\n            throw ResourceParsingError(\"Can't unify '\\(key)'\")\n        }\n    }\n\n    return results\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/Bundle+Extensions.swift",
    "content": "//\n//  Bundle+Extensions.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-09-30.\n//\n\nimport Foundation\n\nextension Bundle {\n    public static let temp: Bundle = .main\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/DeploymentTarget+Parser.swift",
    "content": "//\n//  DeploymentTarget+Parser.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-10.\n//\n\nimport RswiftResources\n\nfunc parseDeploymentTargetVersion(_ str: String) -> DeploymentTarget.Version? {\n    guard str.count > 2 else { return nil }\n    guard let i = Int(str) else { return nil }\n    let s = String(i, radix: 16)\n    guard\n        let major = Int(s[..<s.index(s.endIndex, offsetBy: -2)]),\n        let minor = Int(s[s.index(s.endIndex, offsetBy: -2)..<s.index(s.endIndex, offsetBy: -1)])\n    else {\n        return nil\n    }\n\n    return (major, minor)\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/FormatPart+Extensions.swift",
    "content": "//\n//  FormatPart.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-18.\n//\n//  Parts of the content of this file are loosly based on StringsFileParser.swift from SwiftGen/GenumKit.\n//  We don't feel this is a \"substantial portion of the Software\" so are not including their MIT license,\n//  eventhough we would like to give credit where credit is due by referring to SwiftGen thanking Olivier\n//  Halligon for creating SwiftGen and GenumKit.\n//\n//  See: https://github.com/AliSoftware/SwiftGen/blob/master/GenumKit/Parsers/StringsFileParser.swift\n//\n\nimport Foundation\nimport RswiftResources\n\nextension FormatPart {\n    static public func formatParts(formatString: String) -> [FormatPart] {\n        createFormatParts(formatString)\n    }\n}\n\n// https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265-SW1\nextension FormatSpecifier {\n    // Convenience initializer, uses last character of string,\n    // ignoring lengt modifiers, e.g. \"lld\"\n    public init?(formatString string: String) {\n        guard let last = string.last else {\n            return nil\n        }\n\n        self.init(formatChar: last)\n    }\n\n    public init?(formatChar char: Swift.Character) {\n        let lcChar = Swift.String(char).lowercased().first!\n        switch lcChar {\n        case \"@\":\n            self = .object\n        case \"a\", \"e\", \"f\", \"g\":\n            self = .double\n        case \"d\", \"i\":\n            self = .int\n        case \"o\", \"u\", \"x\":\n            self = .uInt\n        case \"c\":\n            self = .character\n        case \"s\":\n            self = .cStringPointer\n        case \"p\":\n            self = .voidPointer\n        default:\n            return nil\n        }\n    }\n}\n\nprivate let referenceRegEx: NSRegularExpression = {\n    do {\n        return try NSRegularExpression(pattern: \"#@([^@]+)@\", options: [.caseInsensitive])\n    } catch {\n        fatalError(\"Error building the regular expression used to match reference\")\n    }\n}()\n\nprivate let formatTypesRegEx: NSRegularExpression = {\n    let pattern_int = \"(?:h|hh|l|ll|q|z|t|j)?([dioux])\" // %d/%i/%o/%u/%x with their optional length modifiers like in \"%lld\"\n    let pattern_float = \"[aefg]\"\n    let position = \"([1-9]\\\\d*\\\\$)?\" // like in \"%3$\" to make positional specifiers\n    let precision = \"[-+]?\\\\d*(?:\\\\.\\\\d*)?\" // precision like in \"%1.2f\" or \"%012.10\"\n    let reference = \"#@([^@]+)@\" // reference to NSStringFormatSpecType in .stringsdict\n    do {\n        return try NSRegularExpression(pattern: \"(?<!%)%\\(position)\\(precision)(@|\\(pattern_int)|\\(pattern_float)|[csp]|\\(reference))\", options: [.caseInsensitive])\n    } catch {\n        fatalError(\"Error building the regular expression used to match string formats\")\n    }\n}()\n\n// \"I give %d apples to %@ %#@named@\" --> [.Spec(.Int), .Spec(.String), .Reference(\"named\")]\nprivate func createFormatParts(_ formatString: String) -> [FormatPart] {\n    let nsString = formatString as NSString\n    let range = NSRange(location: 0, length: nsString.length)\n\n    // Extract the list of chars (conversion specifiers) and their optional positional specifier\n    let chars = formatTypesRegEx.matches(in: formatString, options: [], range: range).map { match -> (String, Int?) in\n        let range: NSRange\n        if match.range(at: 3).location != NSNotFound {\n            // [dioux] are in range #3 because in #2 there may be length modifiers (like in \"lld\")\n            range = match.range(at: 3)\n        } else {\n            // otherwise, no length modifier, the conversion specifier is in #2\n            range = match.range(at: 2)\n        }\n        let char = nsString.substring(with: range)\n\n        let posRange = match.range(at: 1)\n        if posRange.location == NSNotFound {\n            // No positional specifier\n            return (char, nil)\n        } else {\n            // Remove the \"$\" at the end of the positional specifier, and convert to Int\n            let posRange1 = NSRange(location: posRange.location, length: posRange.length-1)\n            let pos = nsString.substring(with: posRange1)\n            return (char, Int(pos))\n        }\n    }\n\n    // Build up params array\n    var params = [FormatPart]()\n    var nextNonPositional = 1\n    for (str, pos) in chars {\n        let insertionPos: Int\n        if let pos = pos {\n            insertionPos = pos\n        }\n        else {\n            insertionPos = nextNonPositional\n            nextNonPositional += 1\n        }\n\n        let param: FormatPart?\n\n        if let reference = referenceRegEx.firstSubstring(input: str) {\n            param = FormatPart.reference(reference)\n        }\n        else if let char = str.first, let fs = FormatSpecifier(formatChar: char)\n        {\n            param = FormatPart.spec(fs)\n        }\n        else {\n            param = nil\n        }\n\n        if let param = param {\n            if insertionPos > 0 {\n                while params.count <= insertionPos - 1 {\n                    params.append(FormatPart.spec(FormatSpecifier.topType))\n                }\n\n                params[insertionPos - 1] = param\n            }\n        }\n    }\n\n    return params\n}\n\nextension NSRegularExpression {\n    fileprivate func firstSubstring(input: String) -> String? {\n        let nsInput = input as NSString\n        let inputRange = NSMakeRange(0, nsInput.length)\n\n        guard let match = self.firstMatch(in: input, options: [], range: inputRange) else {\n            return nil\n        }\n\n        guard match.numberOfRanges > 0 else {\n            return nil\n        }\n\n        let range = match.range(at: 1)\n        return nsInput.substring(with: range)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/GeneratedId.swift",
    "content": "//\n//  GeneratedId.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2022-07-15.\n//\n\nimport Foundation\n\nprivate let generatedIdRegex = try! NSRegularExpression(pattern: #\"^\\w\\w\\w-\\w\\w-\\w\\w\\w$\"#)\nfunc isGenerated(id input: String) -> Bool {\n    generatedIdRegex.firstMatch(in: input, range: NSRange(location: 0, length: input.utf16.count)) != nil\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/Glob.swift",
    "content": "//\n//  Created by Eric Firestone on 3/22/16.\n//  Copyright © 2016 Square, Inc. All rights reserved.\n//  Released under the Apache v2 License.\n//\n//  Adapted from https://gist.github.com/blakemerryman/76312e1cbf8aec248167\n//  Adapted from https://gist.github.com/efirestone/ce01ae109e08772647eb061b3bb387c3\n\nimport Foundation\n\n#if os(Linux)\nimport Glibc\n#else\nimport Darwin\n#endif\n\npublic let GlobBehaviorBashV3 = Glob.Behavior(\n    supportsGlobstar: false,\n    includesFilesFromRootOfGlobstar: false,\n    includesDirectoriesInResults: true,\n    includesFilesInResultsIfTrailingSlash: false\n)\npublic let GlobBehaviorBashV4 = Glob.Behavior(\n    supportsGlobstar: true, // Matches Bash v4 with \"shopt -s globstar\" option\n    includesFilesFromRootOfGlobstar: true,\n    includesDirectoriesInResults: true,\n    includesFilesInResultsIfTrailingSlash: false\n)\npublic let GlobBehaviorGradle = Glob.Behavior(\n    supportsGlobstar: true,\n    includesFilesFromRootOfGlobstar: true,\n    includesDirectoriesInResults: false,\n    includesFilesInResultsIfTrailingSlash: true\n)\n\n/**\n Finds files on the file system using pattern matching.\n */\npublic class Glob: Collection {\n\n    /**\n     * Different glob implementations have different behaviors, so the behavior of this\n     * implementation is customizable.\n     */\n    public struct Behavior: Sendable {\n        // If true then a globstar (\"**\") causes matching to be done recursively in subdirectories.\n        // If false then \"**\" is treated the same as \"*\"\n        let supportsGlobstar: Bool\n\n        // If true the results from the directory where the globstar is declared will be included as well.\n        // For example, with the pattern \"dir/**/*.ext\" the fie \"dir/file.ext\" would be included if this\n        // property is true, and would be omitted if it's false.\n        let includesFilesFromRootOfGlobstar: Bool\n\n        // If false then the results will not include directory entries. This does not affect recursion depth.\n        let includesDirectoriesInResults: Bool\n\n        // If false and the last characters of the pattern are \"**/\" then only directories are returned in the results.\n        let includesFilesInResultsIfTrailingSlash: Bool\n    }\n\n    public static let defaultBehavior = GlobBehaviorBashV4\n\n    public static let defaultBlacklistedDirectories = [\"node_modules\", \"Pods\"]\n\n    private var isDirectoryCache = [String: Bool]()\n\n    public let behavior: Behavior\n    public let blacklistedDirectories: [String]\n    var paths = [String]()\n    public var startIndex: Int { return paths.startIndex }\n    public var endIndex: Int   { return paths.endIndex   }\n\n    /// Initialize a glob\n    ///\n    /// - Parameters:\n    ///   - pattern: The pattern to use when building the list of matching directories.\n    ///   - behavior: See individual descriptions on `Glob.Behavior` values.\n    ///   - blacklistedDirectories: An array of directories to ignore at the root level of the project.\n    public init(pattern: String, behavior: Behavior = Glob.defaultBehavior, blacklistedDirectories: [String] = defaultBlacklistedDirectories) {\n\n        self.behavior = behavior\n        self.blacklistedDirectories = blacklistedDirectories\n\n        var adjustedPattern = pattern\n        let hasTrailingGlobstarSlash = pattern.hasSuffix(\"**/\")\n        var includeFiles = !hasTrailingGlobstarSlash\n\n        if behavior.includesFilesInResultsIfTrailingSlash {\n            includeFiles = true\n            if hasTrailingGlobstarSlash {\n                // Grab the files too.\n                adjustedPattern += \"*\"\n            }\n        }\n\n        let patterns = behavior.supportsGlobstar ? expandGlobstar(pattern: adjustedPattern) : [adjustedPattern]\n\n        for pattern in patterns {\n            var gt = glob_t()\n            if executeGlob(pattern: pattern, gt: &gt) {\n                populateFiles(gt: gt, includeFiles: includeFiles)\n            }\n\n            globfree(&gt)\n        }\n\n        paths = Array(Set(paths)).sorted { lhs, rhs in\n            lhs.compare(rhs) != ComparisonResult.orderedDescending\n        }\n\n        clearCaches()\n    }\n\n    // MARK: Subscript Support\n\n    public subscript(i: Int) -> String {\n        return paths[i]\n    }\n\n    // MARK: Protocol of IndexableBase\n\n    public func index(after i: Glob.Index) -> Glob.Index {\n        return i + 1\n    }\n\n    // MARK: Private\n\n    private var globalFlags = GLOB_TILDE | GLOB_BRACE | GLOB_MARK\n\n    private func executeGlob(pattern: UnsafePointer<CChar>, gt: UnsafeMutablePointer<glob_t>) -> Bool {\n        return 0 == glob(pattern, globalFlags, nil, gt)\n    }\n\n    private func expandGlobstar(pattern: String) -> [String] {\n        guard pattern.contains(\"**\") else {\n            return [pattern]\n        }\n\n        var results = [String]()\n        var parts = pattern.components(separatedBy: \"**\")\n        let firstPart = parts.removeFirst()\n        var lastPart = parts.joined(separator: \"**\")\n\n        let fileManager = FileManager.default\n\n        var directories: [String]\n\n        do {\n            directories = try fileManager.contentsOfDirectory(atPath: firstPart).compactMap { subpath -> [String]? in\n                if blacklistedDirectories.contains(subpath) {\n                    return nil\n                }\n                let firstLevelPath = NSString(string: firstPart).appendingPathComponent(subpath)\n                if isDirectory(path: firstLevelPath) {\n                    var subDirs: [String] = try fileManager.subpathsOfDirectory(atPath: firstLevelPath).compactMap { subpath -> String? in\n                        let fullPath = NSString(string: firstLevelPath).appendingPathComponent(subpath)\n                        return isDirectory(path: fullPath) ? fullPath : nil\n                    }\n                    subDirs.append(firstLevelPath)\n                    return subDirs\n                } else {\n                    return nil\n                }\n            }.joined().map { $0 }\n        } catch {\n            directories = []\n            print(\"Error parsing file system item: \\(error)\")\n        }\n\n        if behavior.includesFilesFromRootOfGlobstar {\n            // Check the base directory for the glob star as well.\n            directories.insert(firstPart, at: 0)\n\n            // Include the globstar root directory (\"dir/\") in a pattern like \"dir/**\" or \"dir/**/\"\n            if lastPart.isEmpty {\n                results.append(firstPart)\n            }\n        }\n\n        if lastPart.isEmpty {\n            lastPart = \"*\"\n        }\n        for directory in directories {\n            let partiallyResolvedPattern = NSString(string: directory).appendingPathComponent(lastPart)\n            results.append(contentsOf: expandGlobstar(pattern: partiallyResolvedPattern))\n        }\n\n        return results\n    }\n\n    private func isDirectory(path: String) -> Bool {\n        if let isDirectory = isDirectoryCache[path] {\n            return isDirectory\n        }\n\n        var isDirectoryBool = ObjCBool(false)\n        let isDirectory = FileManager.default.fileExists(atPath: path, isDirectory: &isDirectoryBool) && isDirectoryBool.boolValue\n        isDirectoryCache[path] = isDirectory\n\n        return isDirectory\n    }\n\n    private func clearCaches() {\n        isDirectoryCache.removeAll()\n    }\n\n    private func populateFiles(gt: glob_t, includeFiles: Bool) {\n        let includeDirectories = behavior.includesDirectoriesInResults\n\n        for i in 0..<Int(gt.gl_pathc) {\n            if let path = String(validatingCString: gt.gl_pathv[i]!) {\n                if !includeFiles || !includeDirectories {\n                    let isDirectory = self.isDirectory(path: path)\n                    if (!includeFiles && !isDirectory) || (!includeDirectories && isDirectory) {\n                        continue\n                    }\n                }\n\n                paths.append(path)\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/IgnoreFile.swift",
    "content": "//\n//  IgnoreFile.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 01-10-16.\n//  Copyright © 2016 Mathijs Kadijk. All rights reserved.\n//\n\nimport Foundation\n\npublic class IgnoreFile {\n    public let ignoredURLs: [URL]\n    public let explicitlyIncludedURLs: [URL]\n\n    public init() {\n        ignoredURLs = []\n        explicitlyIncludedURLs = []\n    }\n\n    public init(ignoreFileURL: URL) throws {\n        let workingDirectory = ignoreFileURL.deletingLastPathComponent()\n        let potentialPatterns = try String(contentsOf: ignoreFileURL).components(separatedBy: .newlines)\n\n        ignoredURLs = potentialPatterns\n            .filter { IgnoreFile.isPattern(potentialPattern: $0) && !IgnoreFile.isExplicitlyIncludedPattern(potentialPattern: $0) }\n            .flatMap { IgnoreFile.expandPattern($0, workingDirectory: workingDirectory) }\n        explicitlyIncludedURLs = potentialPatterns\n            .filter { IgnoreFile.isPattern(potentialPattern: $0) && IgnoreFile.isExplicitlyIncludedPattern(potentialPattern: $0) }\n            .map { String($0.dropFirst()) }\n            .flatMap { IgnoreFile.expandPattern($0, workingDirectory: workingDirectory) }\n    }\n\n    public func matches(url: URL) -> Bool {\n        return ignoredURLs.contains(url) && !explicitlyIncludedURLs.contains(url)\n    }\n\n    static private func isPattern(potentialPattern: String) -> Bool {\n        // Check for empty line\n        if potentialPattern.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { return false }\n\n        // Check for commented line\n        if potentialPattern.trimmingCharacters(in: .whitespacesAndNewlines).first == \"#\" { return false }\n\n        return true\n    }\n\n    static private func isExplicitlyIncludedPattern(potentialPattern: String) -> Bool {\n        // Check for explicitly included line\n        guard potentialPattern.trimmingCharacters(in: .whitespacesAndNewlines).first == \"!\" else { return false }\n\n        return true\n    }\n\n    static private func expandPattern(_ pattern: String, workingDirectory: URL) -> [URL] {\n        let globPattern = workingDirectory.path + \"/\" + pattern // This is a glob pattern, so we don't use URL here\n        let filePaths = IgnoreFile.listFilePaths(pattern: globPattern)\n        let urls = filePaths.map { URL(fileURLWithPath: $0).standardizedFileURL }\n\n        return urls\n    }\n\n    static private func listFilePaths(pattern: String) -> [String] {\n        guard !pattern.isEmpty else {\n            return []\n        }\n\n        return Glob(pattern: pattern).paths\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/ResourceParsingError.swift",
    "content": "//\n//  ResourceParsingError.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2021-04-16.\n//\n\nimport Foundation\n\npublic struct ResourceParsingError: Error {\n    public var description: String\n\n    public init(_ description: String) {\n        self.description = description\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/SourceTreeURLs.swift",
    "content": "//\n//  SourceTreeURLs.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-29.\n//\n\nimport Foundation\nimport XcodeEdit\n\npublic struct SourceTreeURLs {\n    public let builtProductsDirURL: URL\n    public let developerDirURL: URL\n    public let sourceRootURL: URL\n    public let sdkRootURL: URL\n    public let platformURL: URL\n\n    public init(builtProductsDirURL: URL, developerDirURL: URL, sourceRootURL: URL, sdkRootURL: URL, platformURL: URL) {\n        self.builtProductsDirURL = builtProductsDirURL\n        self.developerDirURL = developerDirURL\n        self.sourceRootURL = sourceRootURL\n        self.sdkRootURL = sdkRootURL\n        self.platformURL = platformURL\n    }\n\n    public func url(for sourceTreeFolder: SourceTreeFolder) -> URL {\n        switch sourceTreeFolder {\n        case .buildProductsDir:\n            return builtProductsDirURL\n        case .developerDir:\n            return developerDirURL\n        case .sdkRoot:\n            return sdkRootURL\n        case .sourceRoot:\n            return sourceRootURL\n        case .platformDir:\n            return platformURL\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/SupportedExtensions.swift",
    "content": "//\n//  SupportedExtensions.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 10-12-15.\n//\n\nimport Foundation\n\npublic protocol SupportedExtensions {\n    static var supportedExtensions: Set<String> { get }\n}\n\nextension SupportedExtensions {\n    static func throwIfUnsupportedExtension(_ url: URL) throws {\n        let pathExtension = url.pathExtension\n\n        if !supportedExtensions.contains(pathExtension.lowercased()) {\n            throw ResourceUnsupportedExtensionError(url: url, typeName: \"\\(Self.self)\", supportedExtensions: supportedExtensions)\n        }\n    }\n}\n\npublic struct ResourceUnsupportedExtensionError: LocalizedError {\n    public let url: URL\n    public let typeName: String\n    public let supportedExtensions: Set<String>\n\n    public init(url: URL, typeName: String, supportedExtensions: Set<String>) {\n        self.url = url\n        self.typeName = typeName\n        self.supportedExtensions = supportedExtensions\n    }\n\n    public var errorDescription: String {\n        \"URL '\\(url)' has not supported extension, for type '\\(typeName)', supported extensions \\(supportedExtensions.joined(separator: \", \"))\"\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/TypeReference+Extensions.swift",
    "content": "//\n//  TypeReference+Extensions.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-06-24.\n//\n\nimport Foundation\nimport RswiftResources\n\nextension TypeReference {\n    static let nsView = TypeReference(module: .appKit, rawName: \"NSView\")\n    static let nsViewController = TypeReference(module: .appKit, rawName: \"NSViewController\")\n    static let nsStoryboardSegue = TypeReference(module: .appKit, rawName: \"NSStoryboardSegue\")\n\n    static let uiView = TypeReference(module: .uiKit, rawName: \"UIView\")\n    static let uiViewController = TypeReference(module: .uiKit, rawName: \"UIViewController\")\n    static let uiStoryboardSegue = TypeReference(module: .uiKit, rawName: \"UIStoryboardSegue\")\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/URL+Extensions.swift",
    "content": "//\n//  URL+Extensions.swift\n//  RswiftResources\n//\n//  Created by Tom Lokhorst on 2021-04-25.\n//\n\nimport Foundation\n\ninternal extension URL {\n    var filenameWithoutExtension: String? {\n        let name = self.deletingPathExtension().lastPathComponent\n        return name == \"\" ? nil : name\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftParsers/Shared/Xcodeproj.swift",
    "content": "//\n//  Xcodeproj.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//  From: https://github.com/mac-cain13/R.swift\n//\n\nimport Foundation\nimport XcodeEdit\nimport RswiftResources\n\npublic struct Xcodeproj: SupportedExtensions {\n    static public let supportedExtensions: Set<String> = [\"xcodeproj\"]\n\n    private let projectFile: XCProjectFile\n\n    public let developmentRegion: String\n    public let knownAssetTags: [String]?\n\n    public init(url: URL, warning: (String) -> Void) throws {\n        try Xcodeproj.throwIfUnsupportedExtension(url)\n        let projectFile: XCProjectFile\n\n        // Parse project file\n        do {\n            do {\n                projectFile = try XCProjectFile(xcodeprojURL: url, ignoreReferenceErrors: false)\n            }\n            catch let error as ProjectFileError {\n                warning(error.localizedDescription)\n\n                projectFile = try XCProjectFile(xcodeprojURL: url, ignoreReferenceErrors: true)\n            }\n        }\n        catch {\n            throw ResourceParsingError(\"Project file at '\\(url)' could not be parsed, is this a valid Xcode project file ending in *.xcodeproj?\\n\\(error.localizedDescription)\")\n        }\n\n        self.projectFile = projectFile\n        self.developmentRegion = projectFile.project.developmentRegion\n        self.knownAssetTags = projectFile.project.knownAssetTags\n    }\n\n    public var allTargets: [PBXTarget] {\n        projectFile.project.targets.compactMap { $0.value }\n    }\n\n    private func findTarget(name: String) throws -> PBXTarget {\n        // Look for target in project file\n        let allTargets = projectFile.project.targets.compactMap { $0.value }\n        guard let target = allTargets.filter({ $0.name == name }).first else {\n            let availableTargets = allTargets.compactMap { $0.name }.joined(separator: \", \")\n            throw ResourceParsingError(\"Target '\\(name)' not found in project file, available targets are: \\(availableTargets)\")\n        }\n\n        return target\n    }\n\n    public func resourcePaths(forTarget targetName: String) throws -> [Path] {\n        let target = try findTarget(name: targetName)\n\n        let resourcesFileRefs = target.buildPhases\n            .compactMap { $0.value as? PBXResourcesBuildPhase }\n            .flatMap { $0.files }\n            .compactMap { $0.value?.fileRef }\n\n        let fileRefPaths = resourcesFileRefs\n            .compactMap { $0.value as? PBXFileReference }\n            .compactMap { $0.fullPath }\n\n        let variantGroupPaths = resourcesFileRefs\n            .compactMap { $0.value as? PBXVariantGroup }\n            .flatMap { $0.fileRefs }\n            .compactMap { $0.value?.fullPath }\n\n        return fileRefPaths + variantGroupPaths\n    }\n\n    // Returns extra resource URLs by extracting fileSystemSynchronizedGroups and scanning file system recursively.\n    // Handles exceptions configured in fileSystemSynchronizedGroups\n    func extraResourceURLs(forTarget targetName: String, sourceTreeURLs: SourceTreeURLs) throws -> [URL] {\n        var resultURLs: [URL] = []\n\n        let (dirs, extraFiles, extraLocalizedFiles, exceptionPaths) = try fileSystemSynchronizedGroups(forTarget: targetName)\n\n        for dir in dirs {\n            let url = dir.url(with: sourceTreeURLs.url(for:))\n            resultURLs.append(contentsOf: recursiveContentsOf(url: url))\n        }\n\n        let extraURLs = extraFiles.map { $0.url(with: sourceTreeURLs.url(for:)) }\n        resultURLs.append(contentsOf: extraURLs)\n\n        let extraLocalizedURLs = try extraLocalizedFiles\n            .map { $0.url(with: sourceTreeURLs.url(for:)) }\n            .flatMap { try expandLocalizedFileURL($0) }\n        resultURLs.append(contentsOf: extraLocalizedURLs)\n\n        let exceptionURLs = exceptionPaths.map { $0.url(with: sourceTreeURLs.url(for:)) }\n        resultURLs.removeAll(where: { exceptionURLs.contains($0) })\n\n        let xcodeFilenames = [\"Info.plist\"]\n        resultURLs.removeAll(where: { xcodeFilenames.contains($0.lastPathComponent) })\n\n        return resultURLs\n    }\n\n    // For target, extract file system groups.\n    // Returns:\n    //   - directories to scan\n    //   - known files (based on exceptions of other targets)\n    //   - known files that are localized (inside .lproj directory) (based on exceptions of other targets)\n    //   - known exception files (based on exceptions of this target)\n    func fileSystemSynchronizedGroups(forTarget targetName: String) throws -> (dirs: [Path], extraFiles: [Path], extraLocalizedFiles: [Path], exceptionPaths: [Path]) {\n        var dirs: [Path] = []\n        var extraFiles: [Path] = []\n        var extraLocalizedFiles: [Path] = []\n        var exceptionPaths: [Path] = []\n\n        let target = try findTarget(name: targetName)\n\n        guard let mainGroup = projectFile.project.mainGroup.value else {\n            throw ResourceParsingError(\"Project file is missing mainGroup\")\n        }\n\n        let targetFileSystemSynchronizedGroups = target.fileSystemSynchronizedGroups?.compactMap(\\.value?.id) ?? []\n\n        let allFileSystemSynchronizedGroups = mainGroup.fileSystemSynchronizedGroups()\n\n        for synchronizedGroup in allFileSystemSynchronizedGroups {\n            guard let path = synchronizedGroup.fullPath else { continue }\n\n            let exceptions = (synchronizedGroup.exceptions ?? []).compactMap(\\.value)\n\n            if targetFileSystemSynchronizedGroups.contains(synchronizedGroup.id) {\n                dirs.append(path)\n\n                for exception in exceptions {\n                    guard exception.target.id == target.id else { continue }\n\n                    let files = exception.membershipExceptions ?? []\n                    let exPaths = files.map { file in path.map { dir in \"\\(dir)/\\(file)\" } }\n\n                    exceptionPaths.append(contentsOf: exPaths)\n                }\n            } else {\n                for exception in exceptions {\n                    guard exception.target.id == target.id else { continue }\n\n                    let files = exception.membershipExceptions ?? []\n\n                    // Xcode 16 project format uses \"/Localized: \", earlier Xcode versions use \"/Localized/\"\n                    let localizeds = [\"/Localized: \", \"/Localized\"]\n                    for file in files {\n                        if let localized = localizeds.first(where: { file.hasPrefix($0) }) {\n                            let cleanFile = String(file.dropFirst(localized.count))\n                            let exPath = path.map { dir in \"\\(dir)/\\(cleanFile)\" }\n                            extraLocalizedFiles.append(exPath)\n                        } else {\n                            let exPath = path.map { dir in \"\\(dir)/\\(file)\" }\n                            extraFiles.append(exPath)\n                        }\n                    }\n                }\n            }\n        }\n\n        return (dirs: dirs, extraFiles: extraFiles, extraLocalizedFiles: extraLocalizedFiles, exceptionPaths: exceptionPaths)\n    }\n\n    public func buildConfigurations(forTarget targetName: String) throws -> [XCBuildConfiguration] {\n        let target = try findTarget(name: targetName)\n\n        guard let buildConfigurationList = target.buildConfigurationList.value else { return [] }\n\n        let buildConfigurations = buildConfigurationList.buildConfigurations\n            .compactMap { $0.value }\n\n        return buildConfigurations\n    }\n}\n\nextension PBXReference {\n    func fileSystemSynchronizedGroups() -> [PBXFileSystemSynchronizedRootGroup] {\n        if let root = self as? PBXFileSystemSynchronizedRootGroup {\n            return [root]\n        } else if let group = self as? PBXGroup {\n            let children = group.children.compactMap(\\.value)\n\n            return children.flatMap { $0.fileSystemSynchronizedGroups() }\n        } else {\n            return []\n        }\n    }\n}\n\nextension Path {\n    func map(_ transform: (String) -> String) -> Path {\n        switch self {\n        case let .absolute(str):\n            return .absolute(transform(str))\n        case let .relativeTo(folder, str):\n            return .relativeTo(folder, transform(str))\n        }\n    }\n}\n\n// Returns all(*) recursive files/directories that that are found on file system in specified directory.\n// (*): xcassets are returned once, no deeper contents.\nprivate func recursiveContentsOf(url: URL) -> [URL] {\n    var resultURLs: [URL] = []\n\n    var excludedExtensions = AssetCatalog.supportedExtensions\n    excludedExtensions.insert(\"bundle\")\n\n    if excludedExtensions.contains(url.pathExtension) {\n        return []\n    }\n\n    let enumerator = FileManager.default.enumerator(at: url, includingPropertiesForKeys: [.isRegularFileKey], options: [.skipsHiddenFiles])\n\n    // Enumerator gives directories in hierarchical order (I assume/hope).\n    // If we hit a directory that is an .xcassets, we don't want to scan deeper, so we add it to the skipDirectories.\n    // Subsequent files/directories that have a skipDirectory as prefix are ignored.\n    var skipDirectories: [URL] = []\n\n    guard let enumerator else { return [] }\n\n    for case let contentURL as URL in enumerator {\n        let shouldSkip = skipDirectories.contains { skip in contentURL.path.hasPrefix(skip.path) }\n        if shouldSkip {\n            continue\n        }\n\n        if excludedExtensions.contains(contentURL.pathExtension) {\n            resultURLs.append(contentURL)\n            skipDirectories.append(contentURL)\n            continue\n        }\n\n        if contentURL.hasDirectoryPath {\n            if excludedExtensions.contains(contentURL.pathExtension) {\n                resultURLs.append(contentURL)\n                skipDirectories.append(contentURL)\n            }\n        } else {\n            resultURLs.append(contentURL)\n        }\n    }\n\n    return resultURLs\n}\n\n// Returns the localized versions of an input URL\n// Example: some-dir/Home.strings\n// Becomes: some-dir/Base.lproj/Home.strings, some-dir/nl.lproj/Home.strings\nprivate func expandLocalizedFileURL(_ url: URL) throws -> [URL] {\n    let fileManager = FileManager.default\n    var localizedURLs: [URL] = []\n\n    // Get the directory path and filename from the input URL\n    let directory = url.deletingLastPathComponent()\n    let filename = url.lastPathComponent\n\n    // Scan the directory for contents\n    let contents = try fileManager.contentsOfDirectory(at: directory, includingPropertiesForKeys: nil)\n\n    // Filter the contents to find directories with the \".lproj\" suffix\n    for item in contents {\n        if item.pathExtension == \"lproj\" {\n            // Construct the localized file path by appending the filename to the `.lproj` folder path\n            let localizedFileURL = item.appendingPathComponent(filename)\n\n            // Check if the localized file exists\n            if fileManager.fileExists(atPath: localizedFileURL.path) {\n                localizedURLs.append(localizedFileURL)\n            }\n        }\n    }\n\n    return localizedURLs\n}\n"
  },
  {
    "path": "Sources/RswiftResources/AssetCatalog.swift",
    "content": "//\n//  AssetCatalog.swift\n//  RswiftResources\n//\n//  Created by Tom Lokhorst on 2021-06-13.\n//\n\nimport Foundation\n\npublic struct AssetCatalog: Sendable {\n    public let filename: String\n    public let root: Namespace\n\n    public init(filename: String, root: Namespace) {\n        self.filename = filename\n        self.root = root\n    }\n}\n\nextension AssetCatalog {\n    public struct Namespace: Sendable {\n        public var subnamespaces: [String: Namespace] = [:]\n        public var colors: [ColorResource] = []\n        public var images: [ImageResource] = []\n        public var dataAssets: [DataResource] = []\n\n        public init() {\n        }\n\n        public init(\n            subnamespaces: [String: Namespace],\n            colors: [ColorResource],\n            images: [ImageResource],\n            dataAssets: [DataResource]\n        ) {\n            self.subnamespaces = subnamespaces\n            self.colors = colors\n            self.images = images\n            self.dataAssets = dataAssets\n        }\n\n        public mutating func merge(_ other: Namespace) {\n            self.subnamespaces = self.subnamespaces.merging(other.subnamespaces) { $0.merging($1) }\n            self.colors += other.colors\n            self.images += other.images\n            self.dataAssets += other.dataAssets\n        }\n\n        public func merging(_ other: Namespace) -> Namespace {\n            var new = self\n            new.merge(other)\n            return new\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/ColorResource.swift",
    "content": "//\n//  ColorResource.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-23.\n//\n\nimport Foundation\n\npublic struct ColorResource: Sendable {\n    public let name: String\n    public let path: [String]\n    public let bundle: Bundle\n\n    public init(name: String, path: [String], bundle: Bundle) {\n        self.name = name\n        self.path = path\n        self.bundle = bundle\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/DataResource.swift",
    "content": "//\n//  DataResource.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-23.\n//\n\nimport Foundation\n\npublic struct DataResource: Sendable {\n    public let name: String\n    public let path: [String]\n    public let bundle: Bundle\n    public let onDemandResourceTags: [String]?\n\n    public init(name: String, path: [String], bundle: Bundle, onDemandResourceTags: [String]?) {\n        self.name = name\n        self.path = path\n        self.bundle = bundle\n        self.onDemandResourceTags = onDemandResourceTags\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/FileResource.swift",
    "content": "//\n//  FileResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n\npublic struct FileResource: Sendable {\n    public let name: String\n    public let pathExtension: String\n    public let bundle: Bundle\n    public let locale: LocaleReference?\n\n    public init(name: String, pathExtension: String, bundle: Bundle, locale: LocaleReference?) {\n        self.name = name\n        self.pathExtension = pathExtension\n        self.bundle = bundle\n        self.locale = locale\n    }\n\n    public var filename: String {\n        name.isEmpty || pathExtension.isEmpty\n            ? \"\\(name)\\(pathExtension)\"\n            : \"\\(name).\\(pathExtension)\"\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/FontResource.swift",
    "content": "//\n//  FontResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n\npublic struct FontResource: Sendable {\n    public let name: String\n    public let bundle: Bundle\n    public let filename: String\n\n    public init(name: String, bundle: Bundle, filename: String) {\n        self.name = name\n        self.bundle = bundle\n        self.filename = filename\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/ImageResource.swift",
    "content": "//\n//  ImageResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n\npublic struct ImageResource: Sendable {\n    public let name: String\n    public let path: [String]\n    public let bundle: Bundle\n    public let locale: LocaleReference?\n    public let onDemandResourceTags: [String]?\n\n    public init(name: String, path: [String], bundle: Bundle, locale: LocaleReference?, onDemandResourceTags: [String]?) {\n        self.name = name\n        self.path = path\n        self.bundle = bundle\n        self.locale = locale\n        self.onDemandResourceTags = onDemandResourceTags\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/Bundle+Extensions.swift",
    "content": "//\n//  Bundle+Extensions.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2022-07-30.\n//\n\nimport Foundation\n\npublic protocol PlistPathComponent {\n    typealias Key = String\n    typealias Index = Int\n}\n\nextension PlistPathComponent.Key: PlistPathComponent {}\nextension PlistPathComponent.Index: PlistPathComponent {}\n\nextension Bundle {\n    \n    /// Returns the string associated with the specified path + key in the receiver's information property list.\n    public func infoDictionaryString(path: [PlistPathComponent], key: PlistPathComponent.Key? = nil) -> String? {\n        var currentObject: Any? = infoDictionary\n\n        for step in path {\n            if let currentDict = currentObject as? [String: Any], let key = step as? String {\n                // If the current object is a dictionary, move to the next step using the dictionary key\n                currentObject = currentDict[key]\n            } else if let currentArray = currentObject as? [Any], let index = step as? Int, currentArray.indices.contains(index) {\n                // If the current object is an array, and the step is a valid index, move to the array element\n                currentObject = currentArray[index]\n            } else {\n                // If the path leads to an invalid object type or out of bounds index, return nil\n                return nil\n            }\n        }\n\n        // Attempt to extract a string from the final object using the provided key, else if key == nil, assume\n        // we have arrived at a string value.\n        if let dict = currentObject as? [String: Any], let key = key {\n            return dict[key] as? String\n        } else if key == nil, let value = currentObject as? String {\n            return value\n        }\n        return nil\n    }\n\n    /// Find first bundle and locale for which the table exists\n    internal func firstBundleAndLocale(tableName: String, preferredLanguages: [String]) -> (bundle: Foundation.Bundle, locale: Foundation.Locale)? {\n        let hostingBundle = self\n\n        // Filter preferredLanguages to localizations, use first locale\n        var languages = preferredLanguages\n            .map { Foundation.Locale(identifier: $0) }\n            .prefix(1)\n            .flatMap { locale -> [String] in\n                let language: String?\n                if #available(macOS 13, iOS 16, tvOS 16, watchOS 9, *) {\n                    // Xcode 14 doesn't recognize `Locale.language`, Xcode 14.1 does know `Locale.language`\n                    // Xcode 14.1 is first to ship with swift 5.7.1\n                    #if swift(>=5.7.1) && !os(Linux)\n                    language = locale.language.languageCode?.identifier\n                    #else\n                    language = locale.languageCode\n                    #endif\n                } else {\n                    language = locale.languageCode\n                }\n                if hostingBundle.localizations.contains(locale.identifier) {\n                    if let language = language, hostingBundle.localizations.contains(language) {\n                        return [locale.identifier, language]\n                    } else {\n                        return [locale.identifier]\n                    }\n                } else if let language = language, hostingBundle.localizations.contains(language) {\n                    return [language]\n                } else {\n                    return []\n                }\n            }\n\n        if languages.isEmpty {\n            // If there's no languages, use development language as backstop\n            if let developmentLocalization = hostingBundle.developmentLocalization {\n                languages = [developmentLocalization]\n            }\n        } else {\n            // Insert Base as second item (between locale identifier and languageCode)\n            languages.insert(\"Base\", at: 1)\n\n            // Add development language as backstop\n            if let developmentLocalization = hostingBundle.developmentLocalization {\n                languages.append(developmentLocalization)\n            }\n        }\n\n        // Find first language for which table exists\n        // Note: key might not exist in chosen language (in that case, key will be shown)\n        for language in languages {\n            if let lproj = hostingBundle.url(forResource: language, withExtension: \"lproj\"),\n               let lbundle = Bundle(url: lproj)\n            {\n                let strings = lbundle.url(forResource: tableName, withExtension: \"strings\")\n                let stringsdict = lbundle.url(forResource: tableName, withExtension: \"stringsdict\")\n\n                if strings != nil || stringsdict != nil {\n                    return (lbundle, Foundation.Locale(identifier: language))\n                }\n            }\n        }\n\n        // If table is available in main bundle, don't look for localized resources\n        let strings = hostingBundle.url(forResource: tableName, withExtension: \"strings\", subdirectory: nil, localization: nil)\n        let stringsdict = hostingBundle.url(forResource: tableName, withExtension: \"stringsdict\", subdirectory: nil, localization: nil)\n        let hostingLocale = hostingBundle.preferredLocalizations.first.flatMap { Foundation.Locale(identifier: $0) }\n\n        if let hostingLocale = hostingLocale, strings != nil || stringsdict != nil {\n            return (hostingBundle, hostingLocale)\n        }\n\n        // If table is not found for requested languages, key will be shown\n        return nil\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/ColorResource+Integrations.swift",
    "content": "//\n//  UIColor+ColorResource.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2017-06-06.\n//\n\nimport Foundation\n\n#if canImport(SwiftUI)\nimport SwiftUI\n\n@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, visionOS 1, *)\nextension Color {\n\n    /**\n     Creates a color from this resource (`R.color.*`).\n\n     - parameter resource: The resource you want the color of (`R.color.*`)\n     */\n    public init(_ resource: ColorResource) {\n        self.init(resource.name, bundle: resource.bundle)\n    }\n}\n#endif\n\n#if os(iOS) || os(tvOS) || os(visionOS)\nimport UIKit\n\nextension ColorResource {\n\n    /**\n     Returns the color from this resource (`R.color.*`) that is compatible with the trait collection.\n\n     - parameter resource: The resource you want the color of (`R.color.*`)\n     - parameter traitCollection: Traits that describe the desired color to retrieve, pass nil to use traits that describe the main screen.\n\n     - returns: A color that exactly or best matches the desired traits with the given resource (`R.color.*`), or nil if no suitable color was found.\n     */\n    //    @available(*, deprecated, message: \"Use UIColor(resource:) initializer instead\")\n    public func callAsFunction(compatibleWith traitCollection: UITraitCollection? = nil) -> UIColor? {\n        UIColor(named: name, in: bundle, compatibleWith: traitCollection)\n    }\n}\n\nextension UIColor {\n\n    /**\n     Returns the color from this resource (`R.color.*`) that is compatible with the trait collection.\n\n     - parameter resource: The resource you want the color of (`R.color.*`)\n     - parameter traitCollection: Traits that describe the desired color to retrieve, pass nil to use traits that describe the main screen.\n\n     - returns: A color that exactly or best matches the desired traits with the given resource (`R.color.*`), or nil if no suitable color was found.\n     */\n    public convenience init?(resource: ColorResource, compatibleWith traitCollection: UITraitCollection? = nil) {\n        self.init(named: resource.name, in: resource.bundle, compatibleWith: traitCollection)\n    }\n\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/DataResource+Integrations.swift",
    "content": "//\n//  DataResource+Integrations.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-31.\n//\n\nimport Foundation\n\n#if canImport(UIKit)\nimport UIKit\n#elseif canImport(AppKit)\nimport AppKit\n#endif\n\n#if canImport(UIKit) || canImport(AppKit)\nextension NSDataAsset {\n\n    /**\n     Returns the data asset from this resource (`R.data.*`)\n\n     - parameter resource: The resource you want the data asset of (`R.data.*`)\n     */\n    public convenience init?(resource: DataResource) {\n        self.init(name: resource.name, bundle: resource.bundle)\n    }\n\n}\n\nextension DataResource {\n\n    /**\n     Returns the raw data values from this resource (`R.data.*`)\n\n     - parameter resource: The resource you want the data asset of (`R.data.*`)\n     */\n    public func callAsFunction() -> Data? {\n        NSDataAsset(resource: self)?.data\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/FileResource+Integrations.swift",
    "content": "//\n//  Bundle+FileResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 10-01-16.\n//\n\nimport Foundation\n\nextension FileResource {\n    /**\n     Returns the file URL for the given resource (`R.file.*`).\n\n     - returns: The file URL for the resource file (`R.file.*`) or nil if the file could not be located.\n     */\n    public func url() -> URL? {\n        bundle.url(forResource: name, withExtension: pathExtension)\n    }\n\n    /**\n     Returns the file URL for the given resource (`R.file.*`).\n\n     - returns: The file URL for the resource file (`R.file.*`) or nil if the file could not be located.\n     */\n    @available(*, renamed: \"url()\")\n    public func callAsFunction() -> URL? {\n        url()\n    }\n}\n\nextension Bundle {\n    /**\n     Returns the file URL for the given resource (`R.file.*`).\n\n     - parameter resource: The resource to get the file URL for (`R.file.*`).\n\n     - returns: The file URL for the resource file (`R.file.*`) or nil if the file could not be located.\n     */\n    public func url(forResource resource: FileResource) -> URL? {\n        url(forResource: resource.name, withExtension: resource.pathExtension)\n    }\n\n    /**\n     Returns the full pathname for the resource (`R.file.*`).\n\n     - parameter resource: The resource file to get the path for (`R.file.*`).\n\n     - returns: The full pathname for the resource file (`R.file.*`) or nil if the file could not be located.\n     */\n    public func path(forResource resource: FileResource) -> String? {\n        path(forResource: resource.name, ofType: resource.pathExtension)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/FontResource+Integrations.swift",
    "content": "//\n//  UIFont+FontResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 06-01-16.\n//\n\nimport Foundation\n\n#if canImport(SwiftUI)\nimport SwiftUI\n\n@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, visionOS 1, *)\nextension Font {\n\n    /**\n     Create a custom font from this resource (`R.font.*`) and and size that scales with the body text style.\n     */\n    public static func custom(_ resource: FontResource, size: CGFloat) -> Font {\n        .custom(resource.name, size: size)\n    }\n\n    /**\n     Create a custom font from this resource (`R.font.*`) and a fixed size that does not scale with Dynamic Type.\n     */\n    @available(macOS 11, iOS 14, tvOS 14, watchOS 7, visionOS 1, *)\n    public static func custom(_ resource: FontResource, fixedSize: CGFloat) -> Font {\n        .custom(resource.name, fixedSize: fixedSize)\n    }\n\n    /**\n     Create a custom font from this resource (`R.font.*`) and and size that is relative to the given `textStyle`.\n     */\n    @available(macOS 11, iOS 14, tvOS 14, watchOS 7, visionOS 1, *)\n    public static func custom(_ resource: FontResource, size: CGFloat, relativeTo textStyle: Font.TextStyle) -> Font {\n        .custom(resource.name, size: size, relativeTo: textStyle)\n    }\n}\n#endif\n\n#if canImport(UIKit)\nimport UIKit\n\nextension FontResource {\n\n    /**\n     Returns the font from this resource (`R.font.*`) at the specified zie.\n\n     - parameter resource: The font resource (`R.font.*`) for the specific font to load\n     - parameter size: The size (in points) to which the font is scaled. This value must be greater than 0.0.\n\n     - returns: A color that exactly or best matches the desired traits with the given resource (R.color.\\*), or nil if no suitable color was found.\n     */\n    //    @available(*, deprecated, message: \"Use UIFont(resource:size:) initializer instead\")\n    public func callAsFunction(size: CGFloat) -> UIFont? {\n        UIFont(name: name, size: size)\n    }\n}\n\npublic extension UIFont {\n    /**\n     Creates and returns a font object for the specified font resource (`R.font.*`) and size.\n\n     - parameter resource: The font resource (`R.font.*`) for the specific font to load\n     - parameter size: The size (in points) to which the font is scaled. This value must be greater than 0.0.\n\n     - returns: A font object of the specified font resource and size.\n     */\n    convenience init?(resource: FontResource, size: CGFloat) {\n        self.init(name: resource.name, size: size)\n    }\n}\n#endif\n\n\n#if canImport(UIKit)\nimport UIKit\n\nextension FontResource {\n    /**\n     Returns true if the font can be loaded.\n     Custom fonts may not be loaded if not properly configured in Info.plist\n     */\n    public func canBeLoaded() -> Bool {\n        UIFont(name: name, size: 42) != nil\n    }\n}\n#elseif canImport(AppKit)\nimport AppKit\n\nextension FontResource {\n    /**\n     Returns true if the font can be loaded.\n     Custom fonts may not be loaded if not properly configured in Info.plist\n     */\n    public func canBeLoaded() -> Bool {\n        NSFont(name: name, size: 42) != nil\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/ImageResource+Integrations.swift",
    "content": "//\n//  UIImage+ImageResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 11-01-16.\n//\n\nimport Foundation\n\n#if canImport(SwiftUI)\nimport SwiftUI\n\n@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, visionOS 1, *)\nextension Image {\n\n    /**\n     Creates a labelled image from this resource (`R.image.*`).\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     */\n    public init(_ resource: ImageResource) {\n        self.init(resource.name, bundle: resource.bundle)\n    }\n\n\n    /**\n     Creates a labelled image from this resource (`R.image.*`), with the specified label\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter label: The label associated with the image, for accessibility\n     */\n    public init(_ resource: ImageResource, label: Text) {\n        self.init(resource.name, bundle: resource.bundle, label: label)\n    }\n\n\n    /**\n     Creates an unlabelled, decorative image from this resource (`R.image.*`).\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     */\n    public init(decorative resource: ImageResource) {\n        self.init(decorative: resource.name, bundle: resource.bundle)\n    }\n}\n\n// Xcode 14 doesn't recognize `variableValue` init, Xcode 14.1 does know `variableValue`\n// Xcode 14.1 is first to ship with swift 5.7.1\n#if swift(>=5.7.1)\n@available(macOS 13, iOS 16, tvOS 16, watchOS 9, visionOS 1, *)\nextension Image {\n\n    /**\n     Creates a labelled image from this resource (`R.image.*`), with the variable value.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter variableValue: Optional value between 1 and 0\n     */\n    public init(_ resource: ImageResource, variableValue: Double?) {\n        self.init(resource.name, variableValue: variableValue, bundle: resource.bundle)\n    }\n\n\n    /**\n     Creates a labelled image from this resource (`R.image.*`), with the specified label and variable value.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter variableValue: Optional value between 1 and 0\n     - parameter label: The label associated with the image, for accessibility\n     */\n    public init(_ resource: ImageResource, variableValue: Double?, label: Text) {\n        self.init(resource.name, variableValue: variableValue, bundle: resource.bundle, label: label)\n    }\n\n\n    /**\n     Creates an unlabelled, decorative image from this resource (`R.image.*`), with variable value.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter variableValue: Optional value between 1 and 0\n     */\n    public init(decorative resource: ImageResource, variableValue: Double?) {\n        self.init(decorative: resource.name, variableValue: variableValue, bundle: resource.bundle)\n    }\n}\n#endif\n#endif\n\n#if os(iOS) || os(tvOS) || os(visionOS)\nimport UIKit\n\nextension ImageResource {\n\n    /**\n     Returns the image from this resource (`R.image.*`) that is compatible with the trait collection.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter traitCollection: Traits that describe the desired image to retrieve, pass nil to use traits that describe the main screen.\n\n     - returns: An image that exactly or best matches the desired traits with the given resource (`R.image.*`), or nil if no suitable image was found.\n     */\n    //    @available(*, deprecated, message: \"Use UIImage(resource:) initializer instead\")\n    public func callAsFunction(compatibleWith traitCollection: UITraitCollection? = nil) -> UIImage? {\n        UIImage(named: name, in: bundle, compatibleWith: traitCollection)\n    }\n}\n\nextension UIImage {\n\n    /**\n     Returns the image from this resource (`R.image.*`) that is compatible with the trait collection.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter traitCollection: Traits that describe the desired image to retrieve, pass nil to use traits that describe the main screen.\n\n     - returns: An image that exactly or best matches the desired traits with the given resource (`R.image.*`), or nil if no suitable image was found.\n     */\n    public convenience init?(resource: ImageResource, compatibleWith traitCollection: UITraitCollection? = nil) {\n        self.init(named: resource.name, in: resource.bundle, compatibleWith: traitCollection)\n    }\n\n    /**\n     Returns the image from this resource (`R.image.*`) using the configuration specified.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter configuration: The image configuration the system appllies to the image\n\n     - returns: An image that exactly or best matches the configuration of the given resource (`R.image.*`), or nil if no suitable image was found.\n     */\n    @available(iOS 13, tvOS 13, visionOS 1, *)\n    public convenience init?(resource: ImageResource, with configuration: UIImage.Configuration?) {\n        self.init(named: resource.name, in: resource.bundle, with: configuration)\n    }\n}\n#endif\n\n\n// Xcode 14 doesn't recognize `variableValue` init, Xcode 14.1 does know `variableValue`\n// Xcode 14.1 is first to ship with swift 5.7.1\n#if swift(>=5.7.1) && (os(iOS) || os(tvOS)) || os(visionOS)\nextension UIImage {\n    /**\n     Returns the image from this resource (`R.image.*`) using the configuration, and variable value specified.\n\n     - parameter resource: The resource you want the image of (`R.image.*`)\n     - parameter variableValue: The value the system uses to customize the image content, between 0 and 1\n     - parameter configuration: The image configuration the system appllies to the image\n\n     - returns: An image that exactly or best matches the configuration of the given resource (`R.image.*`), or nil if no suitable image was found.\n     */\n    @available(iOS 16, tvOS 16, visionOS 1, *)\n    public convenience init?(resource: ImageResource, variableValue: Double, with configuration: UIImage.Configuration? = nil) {\n        self.init(named: resource.name, in: resource.bundle, variableValue: variableValue, configuration: configuration)\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/NibReference+Integrations.swift",
    "content": "//\n//  UINib+NibResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 08-01-16.\n//\n\n\n#if os(iOS) || os(tvOS)\nimport UIKit\n\n\nextension NibReferenceContainer {\n\n    /**\n     Instantiate the nib to get first object from this nib\n\n     - parameter ownerOrNil: The owner, if the owner parameter is nil, connections to File's Owner are not permitted.\n     - parameter options: Options are identical to the options specified with` -[NSBundle loadNibNamed:owner:options:]`\n     */\n    public func callAsFunction(withOwner ownerOrNil: Any?, options optionsOrNil: [UINib.OptionsKey : Any]? = nil) -> FirstView? {\n        UINib(nibName: name, bundle: bundle).instantiate(withOwner: ownerOrNil, options: optionsOrNil).first as? FirstView\n    }\n\n    @available(*, deprecated, message: \"renamed to (withOwner:options:)\")\n    public func callAsFunction(owner ownerOrNil: Any?, options optionsOrNil: [UINib.OptionsKey : Any]? = nil) -> FirstView? {\n        UINib(nibName: name, bundle: bundle).instantiate(withOwner: ownerOrNil, options: optionsOrNil).first as? FirstView\n    }\n\n    /**\n     Instantiate the nib to get first object from this nib\n\n     - parameter ownerOrNil: The owner, if the owner parameter is nil, connections to File's Owner are not permitted.\n     - parameter options: Options are identical to the options specified with` -[NSBundle loadNibNamed:owner:options:]`\n     */\n    public func firstView(withOwner ownerOrNil: Any?, options optionsOrNil: [UINib.OptionsKey : Any]? = nil) -> FirstView? {\n        UINib(nibName: name, bundle: bundle).instantiate(withOwner: ownerOrNil, options: optionsOrNil).first as? FirstView\n    }\n\n    @available(*, deprecated, renamed: \"firstView(withOwner:options:)\")\n    public func firstView(owner ownerOrNil: Any?, options optionsOrNil: [UINib.OptionsKey : Any]? = nil) -> FirstView? {\n        UINib(nibName: name, bundle: bundle).instantiate(withOwner: ownerOrNil, options: optionsOrNil).first as? FirstView\n    }\n\n    /**\n     Instantiate the nib to get the top-level objects from this nib\n\n     - parameter ownerOrNil: The owner, if the owner parameter is nil, connections to File's Owner are not permitted.\n     - parameter options: Options are identical to the options specified with` -[NSBundle loadNibNamed:owner:options:]`\n\n     - returns: An array containing the top-level objects from the NIB\n     */\n    public func instantiate(withOwner ownerOrNil: Any?, options optionsOrNil: [UINib.OptionsKey : Any]? = [:]) -> [Any] {\n        UINib(nibName: name, bundle: bundle).instantiate(withOwner: ownerOrNil, options: optionsOrNil)\n    }\n}\n\nextension UINib {\n    /**\n     Returns a UINib object initialized to the nib file of the specified resource (`R.nib.*`).\n\n     - parameter resource: The resource (`R.nib.*`) to load\n\n     - returns: The initialized UINib object. An exception is thrown if there were errors during initialization or the nib file could not be located.\n     */\n    public convenience init<Nib: NibReferenceContainer>(resource: Nib) {\n        self.init(nibName: resource.name, bundle: resource.bundle)\n    }\n}\n\nextension UIViewController {\n    /**\n     Returns a newly initialized view controller with the nib resource (`R.nib.*`).\n\n     - parameter nib: The nib resource (`R.nib.*`) to associate with the view controller.\n\n     - returns: A newly initialized UIViewController object.\n     */\n    public convenience init<Nib: NibReferenceContainer>(nib: Nib) {\n        self.init(nibName: nib.name, bundle: nib.bundle)\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/ReuseIdentifier+Integrations.swift",
    "content": "//\n//  UITableView+ReuseIdentifierProtocol.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 06-12-15.\n//  From: https://github.com/mac-cain13/R.swift\n//\n\n\n#if os(iOS) || os(tvOS)\nimport UIKit\n\n\nextension UITableView {\n\n    /**\n     Register a `R.nib.*` containing a cell with the table view under it's contained identifier.\n\n     - parameter resource: A nib resource (`R.nib.*`) containing a table view cell that has a reuse identifier\n     */\n    public func register<Resource: NibReferenceContainer & ReuseIdentifierContainer>(_ resource: Resource) where Resource.Reusable: UITableViewCell {\n        register(UINib(resource: resource), forCellReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Register a `R.reuseIdentifier.*` containing a cell with the table view under it's contained identifier.\n\n     - parameter resource: A reuse identifier\n     */\n    public func register<Resource: ReuseIdentifierContainer>(_ resource: Resource) where Resource.Reusable: UITableViewCell {\n        register(Resource.Reusable.self, forCellReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Register a `R.nib.*` containing a header or footer with the table view under it's contained identifier.\n\n     - parameter resource: A nib resource (`R.nib.*`) containing a view that has a reuse identifier\n     */\n    public func registerHeaderFooterView<Resource: NibReferenceContainer & ReuseIdentifierContainer>(_ resource: Resource) where Resource.Reusable: UIView {\n        register(UINib(resource: resource), forHeaderFooterViewReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Register a `R.reuseIdentifier.*` containing a header or footer with the table view under it's contained identifier.\n\n     - parameter resource: A reuse identifier\n     */\n    public func registerHeaderFooterView<Resource: ReuseIdentifierContainer>(_ resource: Resource) where Resource.Reusable: UITableViewHeaderFooterView {\n        register(Resource.Reusable.self, forHeaderFooterViewReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Returns a typed reusable table-view cell object for the specified reuse identifier and adds it to the table.\n\n     - parameter identifier: A `R.reuseIdentifier.*` value identifying the cell object to be reused.\n     - parameter indexPath: The index path specifying the location of the cell. The data source receives this information when it is asked for the cell and should just pass it along. This method uses the index path to perform additional configuration based on the cell’s position in the table view.\n\n     - returns: The UITableViewCell subclass with the associated reuse identifier or nil if it couldn't be casted correctly.\n\n     - precondition: You must register a class or nib file using the registerNib: or registerClass:forCellReuseIdentifier: method before calling this method.\n     */\n    public func dequeueReusableCell<Identifier: ReuseIdentifierContainer>(withIdentifier identifier: Identifier, for indexPath: IndexPath) -> Identifier.Reusable? where Identifier.Reusable: UITableViewCell {\n        dequeueReusableCell(withIdentifier: identifier.identifier, for: indexPath) as? Identifier.Reusable\n    }\n\n\n    /**\n     Returns a typed reusable header or footer view located by its identifier.\n\n     - parameter identifier: A `R.reuseIdentifier.*` value identifying the header or footer view to be reused.\n\n     - returns: A UITableViewHeaderFooterView object with the associated identifier or nil if no such object exists in the reusable view queue or if it couldn't be cast correctly.\n     */\n    public func dequeueReusableHeaderFooterView<Identifier: ReuseIdentifierContainer>(withIdentifier identifier: Identifier) -> Identifier.Reusable? where Identifier.Reusable: UITableViewHeaderFooterView {\n        dequeueReusableHeaderFooterView(withIdentifier: identifier.identifier) as? Identifier.Reusable\n    }\n}\n\n\nextension UICollectionView {\n\n    /**\n     Register a `R.nib.*` for use in creating new collection view cells.\n\n     - parameter resource: A nib resource (`R.nib.*`) containing a object of type UICollectionViewCell that has a reuse identifier\n     */\n    public func register<Resource: NibReferenceContainer & ReuseIdentifierContainer>(_ resource: Resource) where Resource.Reusable: UICollectionViewCell {\n        register(UINib(resource: resource), forCellWithReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Register a `R.reuseIdentifier.*` for use in creating new collection view cells.\n\n     - parameter resource: A reuse identifier\n     */\n    public func register<Resource: ReuseIdentifierContainer>(_ resource: Resource) where Resource.Reusable: UICollectionViewCell {\n        register(Resource.Reusable.self, forCellWithReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Register a `R.nib.*` for use in creating supplementary views for the collection view.\n\n     - parameter resource: A nib resource (`R.nib.*`) containing a object of type UICollectionReusableView. that has a reuse identifier\n     */\n    public func register<Resource: NibReferenceContainer & ReuseIdentifierContainer>(_ resource: Resource, forSupplementaryViewOfKind kind: String) where Resource.Reusable: UICollectionReusableView {\n        register(UINib(resource: resource), forSupplementaryViewOfKind: kind, withReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Register a `R.reuseIdentfier.*` for use in creating supplementary views for the collection view.\n\n     - parameter resource: A reuseIdentifier\n     */\n    public func register<Resource: ReuseIdentifierContainer>(_ resource: Resource, forSupplementaryViewOfKind kind: String) where Resource.Reusable: UICollectionReusableView {\n        register(Resource.Reusable.self, forSupplementaryViewOfKind: kind, withReuseIdentifier: resource.identifier)\n    }\n\n    /**\n     Returns a typed reusable cell object located by its identifier\n\n     - parameter identifier: The `R.reuseIdentifier.*` value for the specified cell.\n     - parameter indexPath: The index path specifying the location of the cell. The data source receives this information when it is asked for the cell and should just pass it along. This method uses the index path to perform additional configuration based on the cell’s position in the collection view.\n\n     - returns: A subclass of UICollectionReusableView or nil if the cast fails.\n     */\n    public func dequeueReusableCell<Identifier: ReuseIdentifierContainer>(withReuseIdentifier identifier: Identifier, for indexPath: IndexPath) -> Identifier.Reusable? where Identifier.Reusable: UICollectionReusableView {\n        dequeueReusableCell(withReuseIdentifier: identifier.identifier, for: indexPath) as? Identifier.Reusable\n    }\n\n    /**\n     Returns a typed reusable supplementary view located by its identifier and kind.\n\n     - parameter elementKind: The kind of supplementary view to retrieve. This value is defined by the layout object.\n     - parameter identifier: The `R.reuseIdentifier.*` value for the specified view.\n     - parameter indexPath: The index path specifying the location of the cell. The data source receives this information when it is asked for the cell and should just pass it along. This method uses the index path to perform additional configuration based on the cell’s position in the collection view.\n\n     - returns: A subclass of UICollectionReusableView or nil if the cast fails.\n     */\n    public func dequeueReusableSupplementaryView<Identifier: ReuseIdentifierContainer>(ofKind elementKind: String, withReuseIdentifier identifier: Identifier, for indexPath: IndexPath) -> Identifier.Reusable? where Identifier.Reusable: UICollectionReusableView {\n        dequeueReusableSupplementaryView(ofKind: elementKind, withReuseIdentifier: identifier.identifier, for: indexPath) as? Identifier.Reusable\n    }\n\n}\n\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/SegueIdentifier+Integrations.swift",
    "content": "//\n//  UIViewController+StoryboardSegueIdentifierProtocol.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 06-12-15.\n//  From: https://github.com/mac-cain13/R.swift\n//\n\nimport Foundation\n\n#if os(iOS) || os(tvOS)\nimport UIKit\n\npublic protocol SeguePerformer {\n    func performSegue(withIdentifier identifier: String, sender: Any?)\n}\n\nextension UIViewController: SeguePerformer {}\n\nextension SeguePerformer {\n    /**\n     Initiates the segue with the specified identifier (`R.segue.*`) from the current view controller's storyboard file.\n     - parameter identifier: The R.segue.\\* that identifies the triggered segue.\n     - parameter sender: The object that you want to use to initiate the segue. This object is made available for informational purposes during the actual segue.\n     - SeeAlso: Library for typed block based segues: [tomlokhorst/SegueManager](https://github.com/tomlokhorst/SegueManager)\n     */\n    public func performSegue<Segue, Destination>(withIdentifier identifier: SegueIdentifier<Segue, Self, Destination>, sender: Any?) {\n        performSegue(withIdentifier: identifier.identifier, sender: sender)\n    }\n}\n\nextension SegueIdentifier where Segue: UIStoryboardSegue {\n    /// Optionally returns a typed version of the segue.\n    /// Returns nil if either the segue identifier, the source, destination, or segue types don't match.\n    /// For use inside `prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)`.\n    public func callAsFunction(segue: Segue) -> TypedSegue<Segue, Source, Destination>? {\n        TypedSegue(segueIdentifier: self, uiStoryboardSegue: segue)\n    }\n}\n\nextension SegueIdentifier where Segue: UIStoryboardSegue, Source: UIViewController, Destination: UIViewController {\n    /// Trigger a segue by providing a source, destination and handler\n    public func perform(source: Source, destination: Destination, handler: @escaping () -> Void) {\n        let segue = Segue(identifier: identifier, source: source, destination: destination, performHandler: handler)\n        segue.perform()\n    }\n}\n\nextension TypedSegue {\n    /**\n     Returns typed information about the given segue, fails if the segue types don't exactly match types.\n\n     - returns: A newly initialized TypedSegue object or nil.\n     */\n    public init?<StoryboardSegue: UIStoryboardSegue>(segueIdentifier: SegueIdentifier<Segue, Source, Destination>, uiStoryboardSegue: StoryboardSegue) {\n        guard\n            let identifier = uiStoryboardSegue.identifier,\n            let source = uiStoryboardSegue.source as? Source,\n            let destination = uiStoryboardSegue.destination as? Destination,\n            let segue = uiStoryboardSegue as? Segue,\n            identifier == segueIdentifier.identifier\n        else {\n            return nil\n        }\n\n        self.segue = segue\n        self.identifier = identifier\n        self.source = source\n        self.destination = destination\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/StoryboardReference+Integrations.swift",
    "content": "//\n//  StoryboardReference+Integrations.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2022-07-30.\n//\n\n#if os(iOS) || os(tvOS)\nimport UIKit\n\n\nextension StoryboardReference where Self: InitialControllerContainer {\n    /**\n     Instantiates and returns the initial view controller in the view controller graph.\n\n     - returns: The initial view controller in the storyboard.\n     */\n    public func instantiateInitialViewController() -> InitialController? {\n        UIStoryboard(name: name, bundle: bundle).instantiateInitialViewController() as? InitialController\n    }\n\n\n    /**\n     Instantiates and returns the initial view controller in the view controller graph with native dependency injection.\n\n     - parameter creator: The function to inject dependency.\n\n     - returns: The initial view controller in the storyboard.\n     */\n    @available(iOS 13.0, tvOS 13.0, visionOS 1, *)\n    public func instantiateInitialViewController(creator: @escaping (NSCoder) -> InitialController?) -> InitialController? where InitialController: UIViewController {\n        UIStoryboard(name: name, bundle: bundle).instantiateInitialViewController(creator: creator)\n    }\n}\n\nextension StoryboardViewControllerIdentifier {\n    /**\n     Instantiates and returns the view controller with the specified resource (`R.storyboard.*.*`).\n\n     - returns: The view controller corresponding to the specified resource (`R.storyboard.*.*`). If no view controller is associated, this method throws an exception.\n     */\n    public func callAsFunction() -> ViewController? {\n        UIStoryboard(name: storyboard, bundle: bundle).instantiateViewController(withIdentifier: identifier) as? ViewController\n    }\n\n\n    /**\n     Instantiates and returns the view controller with the specified resource (`R.storyboard.*.*`) and native dependency injection.\n\n     - parameter creator: The function to inject dependency.\n\n     - returns: The view controller corresponding to the specified resource (`R.storyboard.*.*`).\n     */\n    @available(iOS 13.0, tvOS 13.0, visionOS 1, *)\n    public func callAsFunction(creator: @escaping (NSCoder) -> ViewController?) -> ViewController where ViewController: UIViewController {\n        UIStoryboard(name: storyboard, bundle: bundle).instantiateViewController(identifier: identifier, creator: creator)\n    }\n}\n\nextension UIStoryboard {\n    /**\n     Creates and returns a storyboard object for the specified storyboard resource (`R.storyboard.*`) file.\n\n     - parameter resource: The storyboard resource (`R.storyboard.*`) for the specific storyboard to load\n\n     - returns: A storyboard object for the specified file. If no storyboard resource file matching name exists, an exception is thrown with description: `Could not find a storyboard named 'XXXXXX' in bundle....`\n     */\n    public convenience init<Reference: StoryboardReference>(resource: Reference) {\n        self.init(name: resource.name, bundle: resource.bundle)\n    }\n\n\n    /**\n     Instantiates and returns the view controller with the specified resource (`R.storyboard.*.*`).\n\n     - parameter resource: An resource (`R.storyboard.*.*`) that uniquely identifies the view controller in the storyboard file. If the specified resource does not exist in the storyboard file, this method raises an exception.\n\n     - returns: The view controller corresponding to the specified resource (`R.storyboard.*.*`). If no view controller is associated, this method throws an exception.\n     */\n    public func instantiateViewController<ViewController: UIViewController>(withIdentifier identifier: StoryboardViewControllerIdentifier<ViewController>) -> ViewController?  {\n        self.instantiateViewController(withIdentifier: identifier.identifier) as? ViewController\n    }\n}\n#endif\n\n\n#if canImport(AppKit) && !targetEnvironment(macCatalyst)\nimport AppKit\n\n\nextension StoryboardReference where Self: InitialControllerContainer {\n    /**\n     Instantiates and returns the initial view controller in the view controller graph.\n\n     - returns: The initial view controller in the storyboard.\n     */\n    public func instantiateInitialViewController() -> InitialController? {\n        NSStoryboard(name: name, bundle: bundle).instantiateInitialController() as? InitialController\n    }\n\n\n    /**\n     Instantiates and returns the initial view controller in the view controller graph with native dependency injection.\n\n     - parameter creator: The function to inject dependency.\n\n     - returns: The initial view controller in the storyboard.\n     */\n    public func instantiateInitialViewController(creator: @escaping (NSCoder) -> InitialController?) -> InitialController? where InitialController: NSViewController {\n        NSStoryboard(name: name, bundle: bundle).instantiateInitialController(creator: creator)\n    }\n}\n\nextension StoryboardViewControllerIdentifier {\n    /**\n     Instantiates and returns the view controller with the specified resource (`R.storyboard.*.*`).\n\n     - returns: The view controller corresponding to the specified resource (`R.storyboard.*.*`). If no view controller is associated, this method throws an exception.\n     */\n    public func callAsFunction() -> ViewController? {\n        NSStoryboard(name: storyboard, bundle: bundle).instantiateController(withIdentifier: identifier) as? ViewController\n    }\n\n\n    /**\n     Instantiates and returns the view controller with the specified resource (`R.storyboard.*.*`) and native dependency injection.\n\n     - parameter creator: The function to inject dependency.\n\n     - returns: The view controller corresponding to the specified resource (`R.storyboard.*.*`).\n     */\n    public func callAsFunction(creator: @escaping (NSCoder) -> ViewController?) -> ViewController? where ViewController: NSViewController {\n        NSStoryboard(name: storyboard, bundle: bundle).instantiateController(identifier: identifier, creator: creator)\n    }\n}\n\nextension NSStoryboard {\n    /**\n     Creates and returns a storyboard object for the specified storyboard resource (`R.storyboard.*`) file.\n\n     - parameter resource: The storyboard resource (`R.storyboard.*`) for the specific storyboard to load\n\n     - returns: A storyboard object for the specified file. If no storyboard resource file matching name exists, an exception is thrown with description: `Could not find a storyboard named 'XXXXXX' in bundle....`\n     */\n    public convenience init<Reference: StoryboardReference>(resource: Reference) {\n        self.init(name: resource.name, bundle: resource.bundle)\n    }\n\n\n    /**\n     Instantiates and returns the view controller with the specified resource (`R.storyboard.*.*`).\n\n     - parameter resource: An resource (`R.storyboard.*.*`) that uniquely identifies the view controller in the storyboard file. If the specified resource does not exist in the storyboard file, this method raises an exception.\n\n     - returns: The view controller corresponding to the specified resource (`R.storyboard.*.*`). If no view controller is associated, this method throws an exception.\n     */\n    public func instantiateController<ViewController: NSViewController>(withIdentifier identifier: StoryboardViewControllerIdentifier<ViewController>) -> ViewController? {\n        self.instantiateController(withIdentifier: identifier.identifier) as? ViewController\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/RswiftResources/Integrations/StringResource+Integrations.swift",
    "content": "//\n//  StringResource+Integrations.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-30.\n//\n\nimport Foundation\n\nextension String {\n    init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, locale overrideLocale: Locale?, arguments: [CVarArg]) {\n        switch source {\n        case let .hosting(bundle):\n            // With fallback to developmentValue\n            let format = NSLocalizedString(key.description, tableName: tableName, bundle: bundle, value: developmentValue ?? \"\", comment: \"\")\n            self = String(format: format, locale: overrideLocale ?? Locale.current, arguments: arguments)\n\n        case let .selected(bundle, locale):\n            // Don't use developmentValue with selected bundle/locale\n            let format = NSLocalizedString(key.description, tableName: tableName, bundle: bundle, value: \"\", comment: \"\")\n            self = String(format: format, locale: overrideLocale ?? locale, arguments: arguments)\n\n        case .none:\n            self = key.description\n        }\n    }\n\n    init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, preferredLanguages: [String], locale overrideLocale: Locale?, arguments: [CVarArg]) {\n        guard let (bundle, locale) = source.bundle?.firstBundleAndLocale(tableName: tableName, preferredLanguages: preferredLanguages) else {\n            self = key.description\n            return\n        }\n\n        self.init(key: key, tableName: tableName, source: .selected(bundle, locale), developmentValue: developmentValue, locale: overrideLocale, arguments: arguments)\n    }\n}\n\nextension String {\n    public init(resource: StringResource) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [])\n    }\n\n    public init(resource: StringResource, preferredLanguages: [String], locale overrideLocale: Locale? = nil) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: nil, arguments: [])\n    }\n\n    public init<Arg1: CVarArg>(format resource: StringResource1<Arg1>, locale overrideLocale: Locale? = nil, _ arg1: Arg1) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1])\n    }\n\n    public init<Arg1: CVarArg>(format resource: StringResource1<Arg1>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg>(format resource: StringResource2<Arg1, Arg2>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg>(format resource: StringResource2<Arg1, Arg2>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg>(format resource: StringResource3<Arg1, Arg2, Arg3>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg>(format resource: StringResource3<Arg1, Arg2, Arg3>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg>(format resource: StringResource4<Arg1, Arg2, Arg3, Arg4>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg>(format resource: StringResource4<Arg1, Arg2, Arg3, Arg4>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg>(format resource: StringResource5<Arg1, Arg2, Arg3, Arg4, Arg5>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg>(format resource: StringResource5<Arg1, Arg2, Arg3, Arg4, Arg5>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg>(format resource: StringResource6<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg>(format resource: StringResource6<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg>(format resource: StringResource7<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg>(format resource: StringResource7<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg>(format resource: StringResource8<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg>(format resource: StringResource8<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg, Arg9: CVarArg>(format resource: StringResource9<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>, locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8, _ arg9: Arg9) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9])\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg, Arg9: CVarArg>(format resource: StringResource9<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>, preferredLanguages: [String], locale overrideLocale: Locale? = nil, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8, _ arg9: Arg9) {\n        self.init(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, preferredLanguages: preferredLanguages, locale: overrideLocale, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9])\n    }\n}\n\n#if canImport(SwiftUI)\nimport SwiftUI\n\n@available(macOS 10, iOS 13, tvOS 13, watchOS 6, visionOS 1, *)\nextension Text {\n    public init(_ resource: StringResource) {\n        self.init(String(resource: resource))\n    }\n\n    public init<Arg1: CVarArg>(_ resource: StringResource1<Arg1>, _ arg1: Arg1) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg>(_ resource: StringResource2<Arg1, Arg2>, _ arg1: Arg1, _ arg2: Arg2) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg>(_ resource: StringResource3<Arg1, Arg2, Arg3>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg>(_ resource: StringResource4<Arg1, Arg2, Arg3, Arg4>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3, arg4]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg>(_ resource: StringResource5<Arg1, Arg2, Arg3, Arg4, Arg5>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3, arg4, arg5]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg>(_ resource: StringResource6<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3, arg4, arg5, arg6]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg>(_ resource: StringResource7<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg>(_ resource: StringResource8<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8]))\n    }\n\n    public init<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg, Arg9: CVarArg>(_ resource: StringResource9<Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9>, _ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8, _ arg9: Arg9) {\n        self.init(String(key: resource.key, tableName: resource.tableName, source: resource.source, developmentValue: resource.developmentValue, locale: nil, arguments: [arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9]))\n    }\n}\n#endif\n\nextension StringResource.Source {\n    public init(bundle: Bundle, tableName: String, preferredLanguages: [String]?, locale overrideLocale: Locale?) {\n        guard let preferredLanguages = preferredLanguages else {\n            if let locale = overrideLocale {\n                self = .selected(bundle, locale)\n            } else {\n                self = .hosting(bundle)\n            }\n\n            return\n        }\n        if let (bundle, locale) = bundle.firstBundleAndLocale(tableName: tableName, preferredLanguages: preferredLanguages) {\n            self = .selected(bundle, overrideLocale ?? locale)\n        } else {\n            self = .none\n        }\n    }\n}\n\nextension StringResource {\n    public func callAsFunction() -> String {\n        String(resource: self)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(preferredLanguages: [String]) -> String {\n        String(resource: self, preferredLanguages: preferredLanguages)\n    }\n\n    //    @available(macOS 13, iOS 16, tvOS 16, watchOS 9, visionOS 1, *)\n    //    public var localizedStringResource: LocalizedStringResource {\n    //        LocalizedStringResource(key, defaultValue: String.LocalizationValue(stringLiteral: defaultValue), bundle: bundle == .main ? .main : .atURL(bundle.bundleURL), comment: comment)\n    //    }\n}\n\nextension StringResource1 {\n    public func callAsFunction(_ arg1: Arg1) -> String {\n        String(format: self, arg1)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1)\n    }\n}\n\nextension StringResource2 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2) -> String {\n        String(format: self, arg1, arg2)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2)\n    }\n}\n\nextension StringResource3 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3) -> String {\n        String(format: self, arg1, arg2, arg3)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3)\n    }\n}\n\nextension StringResource4 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4) -> String {\n        String(format: self, arg1, arg2, arg3, arg4)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3, arg4)\n    }\n}\n\nextension StringResource5 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5) -> String {\n        String(format: self, arg1, arg2, arg3, arg4, arg5)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3, arg4, arg5)\n    }\n}\n\nextension StringResource6 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6) -> String {\n        String(format: self, arg1, arg2, arg3, arg4, arg5, arg6)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3, arg4, arg5, arg6)\n    }\n}\n\nextension StringResource7 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7) -> String {\n        String(format: self, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\n    }\n}\n\nextension StringResource8 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8) -> String {\n        String(format: self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)\n    }\n}\n\nextension StringResource9 {\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8, _ arg9: Arg9) -> String {\n        String(format: self, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)\n    }\n\n    @available(*, deprecated, message: \"Use R.string(preferredLanguages:).*.* instead\")\n    public func callAsFunction(_ arg1: Arg1, _ arg2: Arg2, _ arg3: Arg3, _ arg4: Arg4, _ arg5: Arg5, _ arg6: Arg6, _ arg7: Arg7, _ arg8: Arg8, _ arg9: Arg9, preferredLanguages: [String]) -> String {\n        String(format: self, preferredLanguages: preferredLanguages, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9)\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/NibResource.swift",
    "content": "//\n//  NibResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n\npublic struct NibResource: Sendable {\n    public let name: String\n    public var locale: LocaleReference\n    public let deploymentTarget: DeploymentTarget?\n    public let rootViews: [TypeReference]\n    public var reusables: [Reusable]\n    public let generatedIds: [String]\n    public var usedImageIdentifiers: [NameCatalog]\n    public var usedColorResources: [NameCatalog]\n    public var usedAccessibilityIdentifiers: [String]\n    public let isAppKit: Bool\n\n    public init(\n        name: String,\n        locale: LocaleReference,\n        deploymentTarget: DeploymentTarget?,\n        rootViews: [TypeReference],\n        reusables: [Reusable],\n        generatedIds: [String],\n        usedImageIdentifiers: [NameCatalog],\n        usedColorResources: [NameCatalog],\n        usedAccessibilityIdentifiers: [String],\n        isAppKit: Bool\n    ) {\n        self.name = name\n        self.locale = locale\n        self.deploymentTarget = deploymentTarget\n        self.rootViews = rootViews\n        self.reusables = reusables\n        self.generatedIds = generatedIds\n        self.usedImageIdentifiers = usedImageIdentifiers\n        self.usedColorResources = usedColorResources\n        self.usedAccessibilityIdentifiers = usedAccessibilityIdentifiers\n        self.isAppKit = isAppKit\n    }\n}\n\nextension NibResource {\n    public struct UnifyResult {\n        public let resource: NibResource\n        public let differentNames: Bool\n        public let differentRootViews: Bool\n        public let differentReusables: Set<Reusable>\n        public let differentInitialReusables: Bool\n        public let differentDeploymentTargets: Bool\n\n        public func flatMap(_ transform: (NibResource) -> UnifyResult) -> UnifyResult {\n            let r = transform(resource)\n\n            return UnifyResult(\n                resource: r.resource,\n                differentNames: r.differentNames || self.differentNames,\n                differentRootViews: r.differentRootViews || self.differentRootViews,\n                differentReusables: r.differentReusables.union(self.differentReusables),\n                differentInitialReusables: r.differentInitialReusables || self.differentInitialReusables,\n                differentDeploymentTargets: r.differentDeploymentTargets || self.differentDeploymentTargets\n            )\n        }\n    }\n\n    public func unify(localizations: [NibResource]) -> UnifyResult {\n        var result = UnifyResult(\n            resource: self,\n            differentNames: false,\n            differentRootViews: false,\n            differentReusables: [],\n            differentInitialReusables: false,\n            differentDeploymentTargets: false\n        )\n\n        for nib in localizations {\n            result = result.flatMap { $0.unify(nib) }\n        }\n\n        return result\n    }\n\n    public func unify(_ other: NibResource) -> UnifyResult {\n\n        // Merged used images/colors from both localizations, they all need to be validated\n        var result = self\n        result.usedImageIdentifiers = Array(Set(self.usedImageIdentifiers).union(other.usedImageIdentifiers))\n        result.usedColorResources = Array(Set(self.usedColorResources).union(other.usedColorResources))\n\n        // Only keep reusables that exist in both localizations\n        result.reusables = self.reusables.filter { other.reusables.contains($0) }\n\n        // Keep other fields from self only, if they are different, that is recorded in UnifyResult\n\n        // Remove locale, this is a merger of both\n        result.locale = .none\n\n        return UnifyResult(\n            resource: result,\n            differentNames: name != other.name,\n            differentRootViews: rootViews.first != other.rootViews.first,\n            differentReusables: Set(reusables).symmetricDifference(other.reusables),\n            differentInitialReusables: reusables.first != other.reusables.first,\n            differentDeploymentTargets: deploymentTarget != other.deploymentTarget\n        )\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/PropertyListResource.swift",
    "content": "//\n//  PropertyListResource.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2018-07-08.\n//\n\nimport Foundation\n\npublic struct PropertyListResource {\n    public typealias Contents = [String: Any]\n\n    public let buildConfigurationName: String\n    public let contents: Contents\n    public let url: URL\n\n    public init(buildConfigurationName: String, contents: Contents, url: URL) {\n        self.buildConfigurationName = buildConfigurationName\n        self.contents = contents\n        self.url = url\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/DeploymentTarget.swift",
    "content": "//\n//  DeploymentTarget.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-10.\n//\n\nimport Foundation\n\npublic struct DeploymentTarget: Equatable, Sendable {\n    public typealias Version = (major: Int, minor: Int)\n\n    public let version: Version?\n    public let platform: String\n\n    public init(version: Version?, platform: String) {\n        self.version = version\n        self.platform = platform\n    }\n\n    public static func ==(lhs: DeploymentTarget, rhs: DeploymentTarget) -> Bool {\n        lhs.platform == rhs.platform\n        && lhs.version?.major == rhs.version?.major\n        && lhs.version?.minor == rhs.version?.minor\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/LocaleReference.swift",
    "content": "//\n//  Locale.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-24.\n//\n\nimport Foundation\n\npublic enum LocaleReference: Hashable, Sendable {\n    case none\n    case base // Older projects use a \"Base\" locale\n    case language(String)\n\n    public var isNone: Bool {\n        if case .none = self {\n            return true\n        }\n\n        return false\n    }\n\n    public var isBase: Bool {\n        if case .base = self {\n            return true\n        }\n\n        return false\n    }\n}\n\nextension LocaleReference {\n    public init(url: URL) {\n        if let localeComponent = url.pathComponents.dropLast().last , localeComponent.hasSuffix(\".lproj\") {\n            let lang = localeComponent.replacingOccurrences(of: \".lproj\", with: \"\")\n\n            if lang == \"Base\" {\n                self = .base\n            } else {\n                self = .language(lang)\n            }\n        }\n        else {\n            self = .none\n        }\n    }\n\n    public var localeDescription: String? {\n        switch self {\n        case .none:\n            return nil\n\n        case .base:\n            return \"Base\"\n\n        case .language(let language):\n            return language\n        }\n    }\n\n    public func debugDescription(filename: String) -> String {\n        switch self {\n        case .none:\n            return \"'\\(filename)'\"\n        case .base:\n            return \"'\\(filename)' (Base)\"\n        case .language(let language):\n            return \"'\\(filename)' (\\(language))\"\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/ModuleReference.swift",
    "content": "//\n//  ModuleReference.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 11-12-15.\n//\n\nimport Foundation\n\npublic enum ModuleReference: Hashable, Sendable {\n    case host\n    case stdLib\n    case custom(name: String)\n\n    public init(name: String?, fallback: ModuleReference = .host) {\n        let cleaned = name?.trimmingCharacters(in: .whitespacesAndNewlines) ?? \"\"\n        self = cleaned.isEmpty ? fallback : .custom(name: cleaned)\n    }\n\n    public var isCustom: Bool {\n        switch self {\n        case .custom:\n            return true\n        default:\n            return false\n        }\n    }\n\n    public var name: String? {\n        if case .custom(let name) = self {\n            return name\n        } else {\n            return nil\n        }\n    }\n}\n\nextension ModuleReference {\n    public static var uiKit: ModuleReference { .custom(name: \"UIKit\") }\n    public static var appKit: ModuleReference { .custom(name: \"AppKit\") }\n    public static var coreText: ModuleReference { .custom(name: \"CoreText\") }\n    public static var foundation: ModuleReference { .custom(name: \"Foundation\") }\n    public static var rswiftResources: ModuleReference { .custom(name: \"RswiftResources\") }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/NameCatalog.swift",
    "content": "//\n//  NameCatalog.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2020-05-08.\n//\n\nimport Foundation\n\npublic struct NameCatalog: Hashable, Comparable, Sendable {\n    public let name: String\n    public let catalog: String?\n\n    public var isSystemCatalog: Bool {\n            catalog == \"System\" // for colors\n         || catalog == \"system\" // for images\n    }\n\n    public init(name: String, catalog: String?) {\n        self.name = name\n        self.catalog = catalog\n    }\n\n    static public func < (lhs: NameCatalog, rhs: NameCatalog) -> Bool {\n        lhs.name < rhs.name\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/Reusable.swift",
    "content": "//\n//  ReusableContainer.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 10-12-15.\n//\n\nimport Foundation\n\npublic struct Reusable: Hashable, Sendable {\n    public let identifier: String\n    public let type: TypeReference\n\n    public init(identifier: String, type: TypeReference) {\n        self.identifier = identifier\n        self.type = type\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/StoryboardReference.swift",
    "content": "//\n//  StoryboardSegueIdentifierProtocol.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 06-12-15.\n//  From: https://github.com/mac-cain13/R.swift\n//\n\nimport Foundation\n\n/// Storyboard reference\npublic protocol StoryboardReference {\n    /// Name of the storyboard file on disk\n    var name: String { get }\n\n    /// Bundle this storyboard is in\n    var bundle: Bundle { get }\n}\n\n\npublic protocol InitialControllerContainer {\n    /// Type of the inital controller\n    associatedtype InitialController\n}\n\n\n/// Storyboard view controller identifier\npublic struct StoryboardViewControllerIdentifier<ViewController>: Sendable {\n\n    /// Storyboard identifier of this view controller\n    public let identifier: String\n\n    /// Name of the storyboard file on disk\n    public let storyboard: String\n\n    /// Bundle this storyboard is in\n    public let bundle: Bundle\n\n    /**\n     Create a new StoryboardViewControllerIdentifier based on the identifier string\n     - parameter identifier: The string identifier for this view controller\n     - parameter storyboard: The name of the storyboard file\n     - parameter bundle: The bundle the storyboard is in\n    */\n    public init(identifier: String, storyboard: String, bundle: Bundle) {\n        self.identifier = identifier\n        self.storyboard = storyboard\n        self.bundle = bundle\n    }\n}\n\npublic protocol NibReferenceContainer {\n    associatedtype FirstView\n    var name: String { get }\n    var bundle: Bundle { get }\n}\n\npublic protocol ReuseIdentifierContainer<Reusable> {\n    associatedtype Reusable\n    var identifier: String { get }\n}\n\n/// Nib reference\npublic struct NibReference<FirstView>: NibReferenceContainer, Sendable {\n\n    /// String name of this nib\n    public let name: String\n\n    /// Bundle this nib is in\n    public let bundle: Bundle\n\n    /**\n     Create a new NibRefence based on the name string\n     - parameter name: The string name for this nib\n     - parameter bundle: The bundle the nib is in\n    */\n    public init(name: String, bundle: Bundle) {\n        self.name = name\n        self.bundle = bundle\n    }\n}\n\n/// Reuse identifier\npublic struct ReuseIdentifier<Reusable>: ReuseIdentifierContainer, Sendable {\n\n    /// String identifier of this reusable\n    public let identifier: String\n\n    /**\n     Create a new ReuseIdentifier based on the string identifier\n     - parameter identifier: The string identifier for this reusable\n     - returns: A new ReuseIdentifier\n    */\n    public init(identifier: String) {\n        self.identifier = identifier\n    }\n}\n\n/// Nib reference, reuse identifier\npublic struct NibReferenceReuseIdentifier<FirstView, Reusable>: NibReferenceContainer, ReuseIdentifierContainer, Sendable {\n\n    /// String name of this nib\n    public let name: String\n\n    /// Bundle this nib is in\n    public let bundle: Bundle\n\n    /// String identifier of this reusable\n    public let identifier: String\n\n    /**\n     Create a new NibRefence based on the name string\n     - parameter name: The string name for this nib\n     - parameter bundle: The bundle the nib is in\n     - parameter identifier: The string identifier for this reusable\n    */\n    public init(name: String, bundle: Bundle, identifier: String) {\n        self.name = name\n        self.bundle = bundle\n        self.identifier = identifier\n    }\n}\n\n/// Segue identifier\npublic struct SegueIdentifier<Segue, Source, Destination>: Sendable {\n\n    /// Identifier string of this segue\n    public let identifier: String\n\n    /**\n     Create a new SegueIdentifier based on the identifier string\n     - parameter identifier: The string identifier for this segue\n     - returns: A new SegueIdentifier\n    */\n    public init(identifier: String) {\n        self.identifier = identifier\n    }\n}\n\n/// Typed segue information\npublic struct TypedSegue<Segue, Source, Destination> {\n\n    /// The original segue\n    public let segue: Segue\n\n    /// Segue source view controller\n    public let source: Source\n\n    /// Segue destination view controller\n    public let destination: Destination\n\n    /// Segue identifier\n    public let identifier: String\n\n    /**\n     Create a new TypedSegue based on the original segue\n     - parameter segue: The original segue\n     - parameter source: Segue source view controller\n     - parameter destination: Segue destination view controller\n     - parameter identifier: The string identifier for this segue\n     - returns: A new TypedSegue\n    */\n    public init(segue: Segue, source: Source, destination: Destination, identifier: String) {\n        self.segue = segue\n        self.source = source\n        self.destination = destination\n        self.identifier = identifier\n    }\n}\n\nextension TypedSegue: Sendable where Segue: Sendable, Source: Sendable, Destination: Sendable {}\n\n@available(*, renamed: \"ReuseIdentifierContainer\")\npublic protocol ReuseIdentifierType {}\n\n@available(*, renamed: \"SegueIdentifier\")\npublic struct StoryboardSegueIdentifier<Segue, Self, Destination> {}\n\n@available(*, renamed: \"TypedSegue\")\npublic struct TypedStoryboardSegueInfo<Segue, Source, Destination> {}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/StringParam+Extensions.swift",
    "content": "//\n//  StringParam.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-18.\n//\n//  Parts of the content of this file are loosly based on StringsFileParser.swift from SwiftGen/GenumKit.\n//  We don't feel this is a \"substantial portion of the Software\" so are not including their MIT license,\n//  eventhough we would like to give credit where credit is due by referring to SwiftGen thanking Olivier\n//  Halligon for creating SwiftGen and GenumKit.\n//\n//  See: https://github.com/AliSoftware/SwiftGen/blob/master/GenumKit/Parsers/StringsFileParser.swift\n//\n\nimport Foundation\n\nextension StringParam: Unifiable {\n    public func unify(_ other: StringParam) -> StringParam? {\n        if let name = name, let otherName = other.name , name != otherName {\n            return nil\n        }\n\n        if let spec = spec.unify(other.spec) {\n            return StringParam(name: name ?? other.name, spec: spec)\n        }\n\n        return nil\n    }\n}\n\nextension FormatPart: Unifiable {\n    public func unify(_ other: FormatPart) -> FormatPart? {\n        switch (self, other) {\n        case let (.spec(l), .spec(r)):\n            if let spec = l.unify(r) {\n                return .spec(spec)\n            }\n            else {\n                return nil\n            }\n\n        case let (.reference(l), .reference(r)) where l == r:\n            return .reference(l)\n\n        default:\n            return nil\n        }\n    }\n}\n\nextension FormatSpecifier: Unifiable {\n    public func unify(_ other: FormatSpecifier) -> FormatSpecifier? {\n        if self == .topType {\n            return other\n        }\n\n        if other == .topType {\n            return self\n        }\n\n        if self == other {\n            return self\n        }\n\n        return nil\n    }\n}\n\nextension FormatSpecifier {\n    public var typeReference: TypeReference {\n        switch self {\n        case .object:\n            return TypeReference(module: .stdLib, rawName: \"String\")\n        case .double:\n            return TypeReference(module: .stdLib, rawName: \"Double\")\n        case .int:\n            return TypeReference(module: .stdLib, rawName: \"Int\")\n        case .uInt:\n            return TypeReference(module: .stdLib, rawName: \"UInt\")\n        case .character:\n            return TypeReference(module: .stdLib, rawName: \"Character\")\n        case .cStringPointer:\n            return TypeReference(module: .stdLib, rawName: \"UnsafePointer<CChar>\")\n        case .voidPointer:\n            return TypeReference(module: .stdLib, rawName: \"UnsafePointer<Void>\")\n        case .topType:\n            return TypeReference(module: .stdLib, rawName: \"Any\")\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/StringParam.swift",
    "content": "//\n//  StringParam.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-18.\n//\n\nimport Foundation\n\npublic struct StringParam: Equatable, Sendable {\n    public let name: String?\n    public let spec: FormatSpecifier\n\n    public init(name: String?, spec: FormatSpecifier) {\n        self.name = name\n        self.spec = spec\n    }\n}\n\npublic enum FormatPart: Sendable {\n    case spec(FormatSpecifier)\n    case reference(String)\n\n    public var formatSpecifier: FormatSpecifier? {\n        switch self {\n        case .spec(let formatSpecifier):\n            return formatSpecifier\n\n        case .reference:\n            return nil\n        }\n    }\n}\n\n// https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265-SW1\npublic enum FormatSpecifier: Sendable {\n    case object\n    case double\n    case int\n    case uInt\n    case character\n    case cStringPointer\n    case voidPointer\n    case topType\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/StringsTable.swift",
    "content": "//\n//  LocalizableStrings.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-24.\n//\n\nimport Foundation\n\npublic struct StringsTable: Sendable {\n    public let filename: String\n    public let locale: LocaleReference\n    public let dictionary: [Key: Value]\n\n    public init(filename: String, locale: LocaleReference, dictionary: [Key: Value]) {\n        self.filename = filename\n        self.locale = locale\n        self.dictionary = dictionary\n    }\n\n    public typealias Key = String\n    public struct Value: Sendable {\n        public let params: [StringParam]\n        public let originalValue: String\n\n        public init(params: [StringParam], originalValue: String) {\n            self.params = params\n            self.originalValue = originalValue\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/TypeReference.swift",
    "content": "//\n//  TypeReference.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 10-12-15.\n//\n\nimport Foundation\n\npublic struct TypeReference: Hashable, Sendable {\n    public let module: ModuleReference\n    public let name: String\n    public var genericArgs: [TypeReference]\n\n    public init(module: ModuleReference, rawName: String) {\n        self.module = module\n        self.name = rawName\n        self.genericArgs = []\n    }\n\n    public init(module: ModuleReference, name: String, genericArgs: [TypeReference]) {\n        self.module = module\n        self.name = name\n        self.genericArgs = genericArgs\n    }\n\n    public var allModuleReferences: Set<ModuleReference> {\n        Set(genericArgs.flatMap(\\.allModuleReferences)).union([module])\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/Unifiable.swift",
    "content": "//\n//  Unifiable.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2016-04-30.\n//\n\nimport Foundation\n\npublic protocol Unifiable {\n    func unify(_ other: Self) -> Self?\n}\n\nextension Array where Element : Unifiable {\n    public func unify(_ other: [Element]) -> [Element]? {\n        var result = self\n\n        for (ix, right) in other.enumerated() {\n            if let left = result[safe: ix] {\n                if let unified = left.unify(right) {\n                    result[ix] = unified\n                }\n                else {\n                    return nil\n                }\n            }\n            else {\n                result.append(right)\n            }\n        }\n\n        return result\n    }\n}\n\nprivate extension Array {\n    subscript (safe index: Int) -> Element? {\n        indices ~= index ? self[index] : nil\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/Shared/ValidationError.swift",
    "content": "//\n//  Validatable.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 17-12-15.\n//  From: https://github.com/mac-cain13/R.swift\n//\n\nimport Foundation\n\n/// Error thrown during validation\npublic struct ValidationError: Error, CustomStringConvertible, Sendable {\n    /// Human readable description\n    public let description: String\n\n    public init(_ description: String) {\n        self.description = description\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/StoryboardResource.swift",
    "content": "//\n//  StoryboardResource.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 09-12-15.\n//\n\nimport Foundation\n\npublic struct StoryboardResource: Equatable, Sendable {\n    public let name: String\n    public var locale: LocaleReference\n    public let deploymentTarget: DeploymentTarget?\n    public let initialViewControllerIdentifier: String?\n    public var viewControllers: [ViewController]\n    public let viewControllerPlaceholders: [ViewControllerPlaceholder]\n    public let generatedIds: [String]\n    public var usedAccessibilityIdentifiers: [String]\n    public var usedImageIdentifiers: [NameCatalog]\n    public var usedColorResources: [NameCatalog]\n    public var reusables: [Reusable]\n    public var isAppKit: Bool\n\n    public init(\n        name: String,\n        locale: LocaleReference,\n        deploymentTarget: DeploymentTarget?,\n        initialViewControllerIdentifier: String?,\n        viewControllers: [ViewController],\n        viewControllerPlaceholders: [ViewControllerPlaceholder],\n        generatedIds: [String],\n        usedAccessibilityIdentifiers: [String],\n        usedImageIdentifiers: [NameCatalog],\n        usedColorResources: [NameCatalog],\n        reusables: [Reusable],\n        isAppKit: Bool\n    ) {\n        self.name = name\n        self.locale = locale\n        self.deploymentTarget = deploymentTarget\n        self.initialViewControllerIdentifier = initialViewControllerIdentifier\n        self.viewControllers = viewControllers\n        self.viewControllerPlaceholders = viewControllerPlaceholders\n        self.generatedIds = generatedIds\n        self.usedAccessibilityIdentifiers = usedAccessibilityIdentifiers\n        self.usedImageIdentifiers = usedImageIdentifiers\n        self.usedColorResources = usedColorResources\n        self.reusables = reusables\n        self.isAppKit = isAppKit\n    }\n\n    public struct ViewController: Equatable, Sendable {\n        public let id: String\n        public let storyboardIdentifier: String?\n        public let type: TypeReference\n        public var segues: [Segue]\n\n        public init(id: String, storyboardIdentifier: String?, type: TypeReference, segues: [Segue]) {\n            self.id = id\n            self.storyboardIdentifier = storyboardIdentifier\n            self.type = type\n            self.segues = segues\n        }\n    }\n\n    public struct ViewControllerPlaceholder: Equatable, Sendable {\n        public let id: String\n        public let storyboardName: String?\n        public let referencedIdentifier: String?\n        public let bundleIdentifier: String?\n\n        public init(id: String, storyboardName: String?, referencedIdentifier: String?, bundleIdentifier: String?) {\n            self.id = id\n            self.storyboardName = storyboardName\n            self.referencedIdentifier = referencedIdentifier\n            self.bundleIdentifier = bundleIdentifier\n        }\n    }\n\n    public struct Segue: Equatable, Sendable {\n        public let identifier: String\n        public let type: TypeReference\n        public let destination: String\n        public let kind: String\n\n        public init(identifier: String, type: TypeReference, destination: String, kind: String) {\n            self.identifier = identifier\n            self.type = type\n            self.destination = destination\n            self.kind = kind\n        }\n    }\n\n    public var initialViewController: ViewController? {\n        viewControllers\n            .filter { $0.id == self.initialViewControllerIdentifier }\n            .first\n    }\n\n    public var viewControllersById: [String: ViewController] {\n        Dictionary(uniqueKeysWithValues: viewControllers.map { ($0.id, $0) })\n    }\n}\n\nextension StoryboardResource {\n    public struct UnifyResult {\n        public let storyboard: StoryboardResource\n        public let viewControllerResults: [String: StoryboardResource.ViewController.UnifyResult]\n        public let differentInitialViewController: Bool\n        public let differentDeploymentTargets: Bool\n        public let differentViewControllerIDs: Set<String>\n        public let differentReusables: Set<Reusable>\n\n        public func flatMap(_ transform: (StoryboardResource) -> UnifyResult) -> UnifyResult {\n            let r = transform(storyboard)\n\n            return UnifyResult(\n                storyboard: r.storyboard,\n                viewControllerResults: viewControllerResults.merging(r.viewControllerResults) { $0.unify($1) },\n                differentInitialViewController: differentInitialViewController || r.differentInitialViewController,\n                differentDeploymentTargets: differentDeploymentTargets || r.differentDeploymentTargets,\n                differentViewControllerIDs: differentViewControllerIDs.union(r.differentViewControllerIDs),\n                differentReusables: differentReusables.union(r.differentReusables)\n            )\n        }\n    }\n\n    public func unify(localizations: [StoryboardResource]) -> UnifyResult {\n        var result = UnifyResult(\n            storyboard: self,\n            viewControllerResults: [:],\n            differentInitialViewController: false,\n            differentDeploymentTargets: false,\n            differentViewControllerIDs: [],\n            differentReusables: []\n        )\n\n        for storyboard in localizations {\n            result = result.flatMap { $0.unify(storyboard) }\n        }\n\n        return result\n    }\n\n    public func unify(_ other: StoryboardResource) -> UnifyResult {\n        let lhsVcs = self.viewControllersById\n        let rhsVcs = other.viewControllersById\n\n        let unifiedViewControllers = lhsVcs.compactMap { (id, lhs) -> StoryboardResource.ViewController.UnifyResult? in\n            guard let rhs = rhsVcs[id] else { return nil }\n            return lhs.unify(rhs)\n        }\n\n        let vcs = unifiedViewControllers.compactMap { ur -> StoryboardResource.ViewController? in\n            if ur.differentTypes || ur.differentStoryboardIdentifiers { return nil }\n            return ur.viewcontroller\n        }\n\n        var result = self\n        result.viewControllers = vcs\n\n        // Merged used images/colors from both localizations, they all need to be validated\n        result.usedImageIdentifiers = Array(Set(self.usedImageIdentifiers).union(other.usedImageIdentifiers))\n        result.usedColorResources = Array(Set(self.usedColorResources).union(other.usedColorResources))\n\n        // Only keep reusables that exist in both localizations\n        result.reusables = self.reusables.filter { other.reusables.contains($0) }\n\n        // Keep other fields from self only, if they are different, that is recorded in UnifyResult\n\n        // Remove locale, this is a merger of both\n        result.locale = .none\n\n        let allVcs = self.viewControllers + other.viewControllers\n        let usedIds = Set(vcs.map(\\.id))\n        let skipped = allVcs.compactMap { vc -> String? in\n            usedIds.contains(vc.id) ? nil : vc.storyboardIdentifier\n        }\n\n        return UnifyResult(\n            storyboard: result,\n            viewControllerResults: Dictionary(uniqueKeysWithValues: unifiedViewControllers.map { ($0.viewcontroller.id, $0) }),\n            differentInitialViewController: initialViewControllerIdentifier != other.initialViewControllerIdentifier,\n            differentDeploymentTargets: deploymentTarget != other.deploymentTarget,\n            differentViewControllerIDs: Set(skipped),\n            differentReusables: Set(reusables).symmetricDifference(other.reusables)\n        )\n    }\n}\n\nextension StoryboardResource.ViewController {\n    public struct UnifyResult {\n        public let viewcontroller: StoryboardResource.ViewController\n        public let differentStoryboardIdentifiers: Bool\n        public let differentTypes: Bool\n        public let differentSegueIDs: Set<String>\n\n        func unify(_ other: Self) -> Self {\n            .init(\n                viewcontroller: viewcontroller,\n                differentStoryboardIdentifiers: differentStoryboardIdentifiers || other.differentStoryboardIdentifiers,\n                differentTypes: differentTypes || other.differentTypes,\n                differentSegueIDs: differentSegueIDs.union(other.differentSegueIDs)\n            )\n        }\n    }\n\n    public func unify(_ other: Self) -> UnifyResult {\n        let rhsSegues = Dictionary(grouping: other.segues, by: \\.identifier)\n\n        var result = self\n        result.segues = result.segues.filter { l in\n            guard let ss = rhsSegues[l.identifier], let r = ss.first else { return false }\n            return l.canUnify(r)\n        }\n\n        let usedIDs = Set(result.segues.map(\\.identifier))\n        let different = (self.segues + other.segues).filter { s in\n            !usedIDs.contains(s.identifier)\n        }\n\n        return UnifyResult(\n            viewcontroller: result,\n            differentStoryboardIdentifiers: storyboardIdentifier != other.storyboardIdentifier,\n            differentTypes: type != other.type,\n            differentSegueIDs: Set(different.map(\\.identifier))\n        )\n    }\n}\n\nprivate extension StoryboardResource.Segue {\n    func canUnify(_ other: Self) -> Bool {\n        self == other\n    }\n}\n"
  },
  {
    "path": "Sources/RswiftResources/StringResource.swift",
    "content": "//\n//  StringResource.swift\n//  \n//\n//  Created by Tom Lokhorst on 2022-07-24.\n//\n\nimport Foundation\n\npublic struct StringResource: Sendable {\n    public enum Source: Sendable {\n        case hosting(Bundle)\n        case selected(Bundle, Locale)\n        case none\n\n        public var bundle: Bundle? {\n            switch self {\n            case .hosting(let bundle): return bundle\n            case .selected(let bundle, _): return bundle\n            case .none: return nil\n            }\n        }\n    }\n\n    public let key: StaticString\n    public let tableName: String\n    public let source: Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource1<Arg1: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource2<Arg1: CVarArg, Arg2: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource3<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource4<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource5<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource6<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource7<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource8<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n\npublic struct StringResource9<Arg1: CVarArg, Arg2: CVarArg, Arg3: CVarArg, Arg4: CVarArg, Arg5: CVarArg, Arg6: CVarArg, Arg7: CVarArg, Arg8: CVarArg, Arg9: CVarArg>: Sendable {\n    public let key: StaticString\n    public let tableName: String\n    public let source: StringResource.Source\n    public let developmentValue: String?\n    public let comment: StaticString?\n\n    public init(key: StaticString, tableName: String, source: StringResource.Source, developmentValue: String?, comment: StaticString?) {\n        self.key = key\n        self.tableName = tableName\n        self.source = source\n        self.developmentValue = developmentValue\n        self.comment = comment\n    }\n}\n"
  },
  {
    "path": "Sources/rswift/App.swift",
    "content": "//\n//  App.swift\n//  rswift\n//\n//  Created by Tom Lokhorst on 2021-04-18.\n//\n\nimport ArgumentParser\nimport Foundation\nimport RswiftParsers\nimport XcodeEdit\n\n\n@main\nstruct App: ParsableCommand {\n    static let configuration = CommandConfiguration(\n        commandName: \"rswift\",\n        abstract: \"Generate static references for autocompleted resources like images, fonts and localized strings in Swift projects\",\n        version: Config.version,\n        subcommands: [Generate.self, ModifyXcodePackages.self]\n    )\n}\n\nenum InputType: String, ExpressibleByArgument {\n    case xcodeproj = \"xcodeproj\"\n    case inputFiles = \"input-files\"\n}\n\nstruct GlobalOptions: ParsableArguments {\n\n    @Option(help: \"The type of input for generation\")\n    var inputType: InputType = .xcodeproj\n\n    @Option(help: \"Only run specified generators, options: \\(generatorsString)\", transform: parseGenerators)\n    var generators: [ResourceType] = []\n\n    @Flag(help: \"Don't generate main `R` let\")\n    var omitMainLet = false\n\n    @Option(name: .customLong(\"import\", withSingleDash: false), help: \"Add extra modules as import in the generated file\")\n    var imports: [String] = []\n\n    @Option(help: \"The access level [public|internal] to use for the generated R-file\")\n    var accessLevel: AccessLevel = .internalLevel\n\n    @Option(help: \"Path to pattern file that describes files that should be ignored\")\n    var rswiftignore = \".rswiftignore\"\n\n    @Option(help: \"Paths of files for which resources should be generated\")\n    var inputFiles: [String] = []\n\n    @Option(help: \"Source of default bundle to use\")\n    var bundleSource: BundleSource = .finder\n\n    // MARK: Project specific - Environment variable overrides\n\n    @Option(help: \"Override environment variable \\(EnvironmentKeys.targetName)\")\n    var target: String?\n}\n\nprivate let generatorsString = ResourceType.allCases.map(\\.rawValue).joined(separator: \", \")\nprivate func parseGenerators(_ str: String) -> [ResourceType] {\n    str.components(separatedBy: \",\").map { ResourceType(rawValue: $0)! }\n}\n\nextension App {\n    struct Generate: ParsableCommand {\n        static let configuration = CommandConfiguration(abstract: \"Generates R.generated.swift file\")\n\n        @OptionGroup\n        var globals: GlobalOptions\n\n        @Option(help: \"Override environment variable \\(EnvironmentKeys.productFilePath)\")\n        var xcodeproj: String?\n\n        @Argument(help: \"Output path for the generated file\")\n        var outputPath: String\n\n        mutating func run() throws {\n            let processInfo = ProcessInfo.processInfo\n\n            let productModuleName = processInfo.environment[EnvironmentKeys.productModuleName]\n            let infoPlistFile = processInfo.environment[EnvironmentKeys.infoPlistFile]\n            let codeSignEntitlements = processInfo.environment[EnvironmentKeys.codeSignEntitlements]\n\n\n            // If no environment is provided, we're not running inside Xcode, fallback to names\n            let sourceTreeURLs = SourceTreeURLs(\n                builtProductsDirURL: URL(fileURLWithPath: processInfo.environment[EnvironmentKeys.builtProductsDir] ?? EnvironmentKeys.builtProductsDir),\n                developerDirURL: URL(fileURLWithPath: processInfo.environment[EnvironmentKeys.developerDir] ?? EnvironmentKeys.developerDir),\n                sourceRootURL: URL(fileURLWithPath: processInfo.environment[EnvironmentKeys.sourceRoot] ?? \".\"),\n                sdkRootURL: URL(fileURLWithPath: processInfo.environment[EnvironmentKeys.sdkRoot] ?? EnvironmentKeys.sdkRoot),\n                platformURL: URL(fileURLWithPath: processInfo.environment[EnvironmentKeys.platformDir] ?? EnvironmentKeys.platformDir)\n            )\n\n            let outputURL = URL(fileURLWithPath: outputPath)\n            let rswiftIgnoreURL = sourceTreeURLs.sourceRootURL\n                .appendingPathComponent(globals.rswiftignore, isDirectory: false)\n\n            let core = RswiftCore(\n                outputURL: outputURL,\n                generators: globals.generators.isEmpty ? ResourceType.allCases : globals.generators,\n                accessLevel: globals.accessLevel,\n                bundleSource: globals.bundleSource,\n                importModules: globals.imports,\n                productModuleName: productModuleName,\n                infoPlistFile: infoPlistFile.map(URL.init(fileURLWithPath:)),\n                codeSignEntitlements: codeSignEntitlements.map(URL.init(fileURLWithPath:)),\n                omitMainLet: globals.omitMainLet,\n                rswiftIgnoreURL: rswiftIgnoreURL,\n                sourceTreeURLs: sourceTreeURLs\n            )\n\n            do {\n                switch globals.inputType {\n                case .xcodeproj:\n                    let xcodeprojPath = try xcodeproj ?? ProcessInfo.processInfo\n                        .environmentVariable(name: EnvironmentKeys.productFilePath)\n                    let xcodeprojURL = URL(fileURLWithPath: xcodeprojPath)\n                    let targetName = try getTargetName(xcodeprojURL: xcodeprojURL)\n                    try core.generateFromXcodeproj(url: xcodeprojURL, targetName: targetName)\n\n                case .inputFiles:\n                    try core.generateFromFiles(inputFileURLs: globals.inputFiles.map(URL.init(fileURLWithPath:)))\n                }\n            } catch let error as ResourceParsingError {\n                throw ValidationError(error.description)\n            }\n        }\n\n        func getTargetName(xcodeprojURL: URL) throws -> String {\n            if let targetName = globals.target ?? ProcessInfo.processInfo\n                .environment[EnvironmentKeys.targetName] {\n                return targetName\n            }\n\n            do {\n                let xcodeproj = try Xcodeproj(url: xcodeprojURL, warning: { _ in })\n                let targets = xcodeproj.allTargets\n\n                if let target = targets.first, targets.count == 1 {\n                    return target.name\n                }\n\n                if targets.count > 0 {\n                    let lines = [\n                        \"Missing argument --target\",\n                        \"Available targets:\"\n                    ] + targets.map { \"- \\($0.name)\" }\n\n                    throw ValidationError(lines.joined(separator: \"\\n\"))\n                }\n\n                throw ValidationError(\"Missing argument --target\")\n            } catch {\n                throw ValidationError(\"Missing argument --target\")\n            }\n        }\n    }\n}\n\nextension App {\n    struct ModifyXcodePackages: ParsableCommand {\n        static let configuration = CommandConfiguration(abstract: \"Modifies Xcode project to fix package reference for plugins\")\n\n        @Option(help: \"Path to xcodeproj file\")\n        var xcodeproj: String\n\n        @Option(help: \"Targets for which to remove package reference\")\n        var target: [String] = []\n\n        mutating func run() throws {\n            let url = URL(fileURLWithPath: xcodeproj)\n            let file = try XCProjectFile(xcodeprojURL: url, ignoreReferenceErrors: true)\n\n            for target in file.project.targets.compactMap(\\.value) {\n                guard self.target.contains(target.name) else { continue }\n\n                for product in target.dependencies.compactMap(\\.value?.productRef?.value) {\n                    let plugins = [\"plugin:RswiftGenerateInternalResources\", \"plugin:RswiftGeneratePublicResources\"]\n                    if let name = product.productName, plugins.contains(name) {\n                        product.removePackage()\n                    }\n                }\n            }\n\n            try file.write(to: url)\n        }\n    }\n}\n\nstruct EnvironmentKeys {\n    static let action = \"ACTION\"\n\n    static let targetName = \"TARGET_NAME\"\n    static let infoPlistFile = \"INFOPLIST_FILE\"\n    static let productFilePath = \"PROJECT_FILE_PATH\"\n    static let productModuleName = \"PRODUCT_MODULE_NAME\"\n    static let codeSignEntitlements = \"CODE_SIGN_ENTITLEMENTS\"\n\n    static let builtProductsDir = SourceTreeFolder.buildProductsDir.rawValue\n    static let developerDir = SourceTreeFolder.developerDir.rawValue\n    static let platformDir = SourceTreeFolder.platformDir.rawValue\n    static let sdkRoot = SourceTreeFolder.sdkRoot.rawValue\n    static let sourceRoot = SourceTreeFolder.sourceRoot.rawValue\n}\n\nextension ProcessInfo {\n    func environmentVariable(name: String) throws -> String {\n        guard let value = self.environment[name] else { throw ValidationError(\"Missing argument \\(name)\") }\n        return value\n    }\n}\n"
  },
  {
    "path": "Sources/rswift/Config.swift",
    "content": "//\n//  Config.swift\n//  R.swift\n//\n//  Created by Tom Lokhorst on 2017-04-22.\n//\n\nimport Foundation\n\nstruct Config {\n    static let version = \"Unknown\"\n}\n"
  },
  {
    "path": "Sources/rswift/RswiftCore.swift",
    "content": "//\n//  RswiftCore.swift\n//  rswift\n//\n//  Created by Tom Lokhorst on 2021-04-16.\n//\n\nimport Foundation\nimport ArgumentParser\nimport XcodeEdit\nimport RswiftParsers\nimport RswiftResources\nimport RswiftGenerators\n\nextension ResourceType: ExpressibleByArgument {}\n\npublic enum AccessLevel: String, ExpressibleByArgument {\n    case publicLevel = \"public\"\n    case internalLevel = \"internal\"\n    case filePrivate = \"fileprivate\"\n    case privateLevel = \"private\"\n}\n\npublic enum BundleSource: String, ExpressibleByArgument {\n    case module\n    case finder\n}\n\npublic struct RswiftCore {\n    let outputURL: URL\n    let generators: [ResourceType]\n    let accessLevel: AccessLevel\n    let bundleSource: BundleSource\n    let importModules: [String]\n    let productModuleName: String?\n    let infoPlistFile: URL?\n    let codeSignEntitlements: URL?\n    let omitMainLet: Bool\n\n    let sourceTreeURLs: SourceTreeURLs\n\n    let rswiftIgnoreURL: URL\n\n    public init(\n        outputURL: URL,\n        generators: [ResourceType],\n        accessLevel: AccessLevel,\n        bundleSource: BundleSource,\n        importModules: [String],\n        productModuleName: String?,\n        infoPlistFile: URL?,\n        codeSignEntitlements: URL?,\n        omitMainLet: Bool,\n        rswiftIgnoreURL: URL,\n        sourceTreeURLs: SourceTreeURLs\n    ) {\n        self.outputURL = outputURL\n        self.generators = generators\n        self.accessLevel = accessLevel\n        self.bundleSource = bundleSource\n        self.importModules = importModules\n        self.productModuleName = productModuleName\n        self.infoPlistFile = infoPlistFile\n        self.codeSignEntitlements = codeSignEntitlements\n        self.omitMainLet = omitMainLet\n\n        self.rswiftIgnoreURL = rswiftIgnoreURL\n\n        self.sourceTreeURLs = sourceTreeURLs\n    }\n\n    public func generateFromXcodeproj(url xcodeprojURL: URL, targetName: String) throws {\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let xcodeproj = try Xcodeproj(url: xcodeprojURL, warning: warning)\n        let resources = try ProjectResources.parseXcodeproj(\n            xcodeproj: xcodeproj,\n            targetName: targetName,\n            rswiftIgnoreURL: rswiftIgnoreURL,\n            infoPlistFile: infoPlistFile,\n            codeSignEntitlements: codeSignEntitlements,\n            sourceTreeURLs: sourceTreeURLs,\n            parseFontsAsFiles: true,\n            parseImagesAsFiles: true,\n            resourceTypes: generators,\n            warning: warning\n        )\n\n        try generateFromProjectResources(resources: resources, developmentRegion: xcodeproj.developmentRegion, knownAssetTags: xcodeproj.knownAssetTags)\n    }\n\n    public func generateFromFiles(inputFileURLs urls: [URL]) throws {\n        let warning: (String) -> Void = { print(\"warning: [R.swift]\", $0) }\n\n        let resources = try ProjectResources.parseURLs(\n            urls: urls,\n            infoPlists: [],\n            codeSignEntitlements: [],\n            parseFontsAsFiles: true,\n            parseImagesAsFiles: true,\n            resourceTypes: generators,\n            warning: warning\n        )\n\n        try generateFromProjectResources(resources: resources, developmentRegion: nil, knownAssetTags: nil)\n    }\n\n    private func generateFromProjectResources(resources: ProjectResources, developmentRegion: String?, knownAssetTags: [String]?) throws {\n        let structName = SwiftIdentifier(rawValue: \"_R\")\n        let qualifiedName = structName\n\n        let segueStruct = Segue.generateStruct(\n            storyboards: resources.storyboards,\n            prefix: qualifiedName\n        )\n\n        let imageStruct = ImageResource.generateStruct(\n            catalogs: resources.assetCatalogs,\n            toplevel: resources.images,\n            prefix: qualifiedName\n        )\n        let colorStruct = ColorResource.generateStruct(\n            catalogs: resources.assetCatalogs,\n            prefix: qualifiedName\n        )\n        let dataStruct = DataResource.generateStruct(\n            catalogs: resources.assetCatalogs,\n            prefix: qualifiedName\n        )\n\n        let fileStruct = FileResource.generateStruct(\n            resources: resources.files,\n            prefix: qualifiedName\n        )\n\n        let idStruct = AccessibilityIdentifier.generateStruct(\n            nibs: resources.nibs,\n            storyboards: resources.storyboards,\n            prefix: qualifiedName\n        )\n\n        let fontStruct = FontResource.generateStruct(\n            resources: resources.fonts,\n            prefix: qualifiedName\n        )\n\n        let storyboardStruct = StoryboardResource.generateStruct(\n            storyboards: resources.storyboards,\n            prefix: qualifiedName\n        )\n\n        let infoStruct = PropertyListResource.generateInfoStruct(\n            resourceName: \"info\",\n            plists: resources.infoPlists,\n            prefix: qualifiedName\n        )\n\n        let entitlementsStruct = PropertyListResource.generateStruct(\n            resourceName: \"entitlements\",\n            plists: resources.codeSignEntitlements,\n            prefix: qualifiedName\n        )\n\n        let nibStruct = NibResource.generateStruct(\n            nibs: resources.nibs,\n            prefix: qualifiedName\n        )\n\n        let reuseIdentifierStruct = Reusable.generateStruct(\n            nibs: resources.nibs,\n            storyboards: resources.storyboards,\n            prefix: qualifiedName\n        )\n\n        let stringStruct = StringsTable.generateStruct(\n            tables: resources.strings,\n            developmentLanguage: developmentRegion,\n            prefix: qualifiedName\n        )\n\n        let projectStruct = XcodeProjectGenerator.generateProject(developmentRegion: developmentRegion, knownAssetTags: knownAssetTags)\n\n        let generateFont = generators.contains(.font) && !fontStruct.isEmpty\n        let generateNib = generators.contains(.nib) && !nibStruct.isEmpty\n        let generateStoryboard = generators.contains(.storyboard) && !storyboardStruct.isEmpty\n\n        let validateLines = [\n            generateFont ? \"try self.font.validate()\" : \"\",\n            generateNib ? \"try self.nib.validate()\" : \"\",\n            generateStoryboard ? \"try self.storyboard.validate()\" : \"\",\n        ]\n            .filter { $0 != \"\" }\n            .joined(separator: \"\\n\")\n\n        let validate = Function(\n            comments: [],\n            name: SwiftIdentifier(name: \"validate\"),\n            params: [],\n            returnThrows: true,\n            returnType: .init(module: .stdLib, rawName: \"Void\"),\n            valueCodeString: validateLines\n        )\n\n        var s = Struct(name: structName, additionalModuleReferences: [.rswiftResources]) {\n            Init.bundle\n\n            if generators.contains(.project), !projectStruct.isEmpty {\n                projectStruct\n            }\n\n            if generators.contains(.string), !stringStruct.isEmpty {\n                stringStruct.generateBundleVarGetterForString()\n                stringStruct.generateBundleFunctionForString(name: \"string\")\n                stringStruct.generateLocaleFunctionForString(name: \"string\")\n                stringStruct.generatePreferredLanguagesFunctionForString(name: \"string\")\n                stringStruct\n            }\n\n            if generators.contains(.data), !dataStruct.isEmpty {\n                dataStruct.generateBundleVarGetter(name: \"data\")\n                dataStruct.generateBundleFunction(name: \"data\")\n                dataStruct\n            }\n\n            if generators.contains(.color), !colorStruct.isEmpty {\n                colorStruct.generateBundleVarGetter(name: \"color\")\n                colorStruct.generateBundleFunction(name: \"color\")\n                colorStruct\n            }\n\n            if generators.contains(.image), !imageStruct.isEmpty {\n                imageStruct.generateBundleVarGetter(name: \"image\")\n                imageStruct.generateBundleFunction(name: \"image\")\n                imageStruct\n            }\n\n            if generators.contains(.info), !infoStruct.isEmpty {\n                infoStruct.generateBundleVarGetter(name: \"info\")\n                infoStruct.generateBundleFunction(name: \"info\")\n                infoStruct\n            }\n\n            if generators.contains(.entitlements), !entitlementsStruct.isEmpty {\n                entitlementsStruct.generateVarGetter()\n                entitlementsStruct\n            }\n\n            if generateFont {\n                fontStruct.generateBundleVarGetter(name: \"font\")\n                fontStruct.generateBundleFunction(name: \"font\")\n                fontStruct\n            }\n\n            if generators.contains(.file), !fileStruct.isEmpty {\n                fileStruct.generateBundleVarGetter(name: \"file\")\n                fileStruct.generateBundleFunction(name: \"file\")\n                fileStruct\n            }\n\n            if generators.contains(.segue), !segueStruct.isEmpty {\n                segueStruct.generateVarGetter()\n                segueStruct\n            }\n\n            if generators.contains(.id), !idStruct.isEmpty {\n                idStruct.generateVarGetter()\n                idStruct\n            }\n\n            if generateNib {\n                nibStruct.generateBundleVarGetter(name: \"nib\")\n                nibStruct.generateBundleFunction(name: \"nib\")\n                nibStruct\n            }\n\n            if generators.contains(.reuseIdentifier), !reuseIdentifierStruct.isEmpty {\n                reuseIdentifierStruct.generateVarGetter()\n                reuseIdentifierStruct\n            }\n\n            if generateStoryboard {\n                storyboardStruct.generateBundleVarGetter(name: \"storyboard\")\n                storyboardStruct.generateBundleFunction(name: \"storyboard\")\n                storyboardStruct\n            }\n\n            validate\n        }\n\n        if accessLevel == .publicLevel {\n            s.setAccessControl(.public)\n\n            s.markSendable()\n        }\n\n        let imports = Set(s.allModuleReferences.compactMap(\\.name))\n            .union(importModules)\n            .subtracting([productModuleName].compactMap { $0 })\n            .sorted()\n            .map { \"import \\($0)\" }\n            .joined(separator: \"\\n\")\n\n        let mainLet: String\n        switch bundleSource {\n        case .module:\n            mainLet = \"\\(accessLevel == .publicLevel ? \"public \" : \"\")let R = _R(bundle: Bundle.module)\"\n        case .finder:\n            mainLet = \"\"\"\n            private class BundleFinder {}\n            \\(accessLevel == .publicLevel ? \"public \" : \"\")let R = _R(bundle: Bundle(for: BundleFinder.self))\n            \"\"\"\n        }\n\n        let body = s.prettyPrint()\n\n        let header = \"\"\"\n        //\n        // This is a generated file, do not edit!\n        // Generated by R.swift, see https://github.com/mac-cain13/R.swift\n        //\n        \"\"\"\n\n        let parts = [header, imports, omitMainLet ? nil : mainLet, body].compactMap { $0 }\n        let code = parts.joined(separator: \"\\n\\n\")\n\n        try writeIfChanged(contents: code, toURL: outputURL)\n    }\n}\n\nprivate func writeIfChanged(contents: String, toURL outputURL: URL) throws {\n    let currentFileContents = try? String(contentsOf: outputURL, encoding: .utf8)\n    guard currentFileContents != contents else { return }\n    try contents.write(to: outputURL, atomically: false, encoding: .utf8)\n}\n"
  },
  {
    "path": "Tests/RswiftGeneratorsTests/MainTests.swift",
    "content": "//\n//  MainTests.swift\n//  R.swift\n//\n//  Created by Mathijs Kadijk on 28-09-15.\n//\n\nimport XCTest\n@testable import RswiftGenerators\n\nclass MainTests: XCTestCase {\n  override func setUp() {\n    super.setUp()\n  }\n  \n  override func tearDown() {\n    super.tearDown()\n  }\n\n  let swiftNameData = [\n    \"easy\": \"easy\",\n    \"easyAndSimple\": \"easyAndSimple\",\n    \"easy with some spaces\": \"easyWithSomeSpaces\",\n    \"(looks) easy\": \"looksEasy\",\n    \"looks-easy\": \"looksEasy\",\n    \"looks+like^some-kind*of%easy\": \"looksLikeSomeKindOfEasy\",\n    \"(looks) easy, but it's not really NeXT that easy!\": \"looksEasyButItSNotReallyNeXTThatEasy\",\n    \"easy 123 and done...\": \"easy123AndDone\",\n    \"123 easy!\": \"easy\",\n    \"123 456easy\": \"easy\",\n    \"123 😄\": \"😄\",\n    \"🇳🇱\": \"🇳🇱\",\n    \"🌂MakeItRain!\": \"🌂MakeItRain\",\n    \"PRFXMyClass\": \"prfxMyClass\",\n    \"NSSomeThing\": \"nsSomeThing\",\n    \"MyClass\": \"myClass\",\n    \"PRFX_MyClass\": \"prfx_MyClass\",\n    \"PRFX-myClass\": \"prfxMyClass\",\n    \"123NSSomeThing\": \"nsSomeThing\",\n    \"PR123FXMyClass\": \"pr123FXMyClass\"\n  ]\n  \n  func testSwiftNameSanitization() {\n    swiftNameData.forEach {\n      let sanitizedResult = SwiftIdentifier(name: $0.0, lowercaseStartingCharacters: true).value\n      XCTAssertEqual(sanitizedResult, $0.1)\n    }\n  }\n  \n  func testPerformanceSwiftNameSanitization() {\n    // This is an example of a performance test case.\n    self.measure {\n      (0...1000).forEach { _ in\n        let _ = SwiftIdentifier(name: \"(looks) easy, but it's not reallY that easy!\", lowercaseStartingCharacters: true)\n      }\n    }\n  }\n    \n}\n"
  },
  {
    "path": "Tests/RswiftParsersTests/GlobTests.swift",
    "content": "//\n//  Created by Eric Firestone on 3/22/16.\n//  Copyright © 2016 Square, Inc. All rights reserved.\n//  Released under the Apache v2 License.\n//\n//  Adapted from https://gist.github.com/blakemerryman/76312e1cbf8aec248167\n//  Adapted from https://gist.github.com/efirestone/ce01ae109e08772647eb061b3bb387c3\n\nimport XCTest\n@testable import RswiftParsers\n\nclass GlobTests : XCTestCase {\n  \n  let tmpFiles = [\"foo\", \"bar\", \"baz\", \"dir1/file1.ext\", \"dir1/dir2/dir3/file2.ext\", \"dir1/file1.extfoo\"]\n  var tmpDir = \"\"\n  \n  override func setUp() {\n    super.setUp()\n\n    self.tmpDir = newTmpDir()\n    \n    let flags = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH\n    mkdir(\"\\(tmpDir)/dir1/\", flags)\n    mkdir(\"\\(tmpDir)/dir1/dir2\", flags)\n    mkdir(\"\\(tmpDir)/dir1/dir2/dir3\", flags)\n    \n    for file in tmpFiles {\n      close(open(\"\\(tmpDir)/\\(file)\", O_CREAT))\n    }\n  }\n  \n  override func tearDown() {\n    for file in tmpFiles {\n      unlink(\"\\(tmpDir)/\\(file)\")\n    }\n    rmdir(\"\\(tmpDir)/dir1/dir2/dir3\")\n    rmdir(\"\\(tmpDir)/dir1/dir2\")\n    rmdir(\"\\(tmpDir)/dir1\")\n    rmdir(self.tmpDir)\n    \n    super.tearDown()\n  }\n\n  private func newTmpDir() -> String {\n    var tmpDirTmpl = \"/tmp/glob-test.XXXXX\".cString(using: .utf8)!\n    return String(validatingCString: mkdtemp(&tmpDirTmpl))!\n  }\n  \n  func testBraces() {\n    let pattern = \"\\(tmpDir)/ba{r,y,z}\"\n    let glob = Glob(pattern: pattern)\n    var contents = [String]()\n    for file in glob {\n      contents.append(file)\n    }\n    XCTAssertEqual(contents, [\"\\(tmpDir)/bar\", \"\\(tmpDir)/baz\"], \"matching with braces failed\")\n  }\n  \n  func testNothingMatches() {\n    let pattern = \"\\(tmpDir)/nothing\"\n    let glob = Glob(pattern: pattern)\n    var contents = [String]()\n    for file in glob {\n      contents.append(file)\n    }\n    XCTAssertEqual(contents, [], \"expected empty list of files\")\n  }\n  \n  func testDirectAccess() {\n    let pattern = \"\\(tmpDir)/ba{r,y,z}\"\n    let glob = Glob(pattern: pattern)\n    XCTAssertEqual(glob.paths, [\"\\(tmpDir)/bar\", \"\\(tmpDir)/baz\"], \"matching with braces failed\")\n  }\n  \n  func testIterateTwice() {\n    let pattern = \"\\(tmpDir)/ba{r,y,z}\"\n    let glob = Glob(pattern: pattern)\n    var contents1 = [String]()\n    var contents2 = [String]()\n    for file in glob {\n      contents1.append(file)\n    }\n    let filesAfterOnce = glob.paths\n    for file in glob {\n      contents2.append(file)\n    }\n    XCTAssertEqual(contents1, contents2, \"results for calling for-in twice are the same\")\n    XCTAssertEqual(glob.paths, filesAfterOnce, \"calling for-in twice doesn't only memoizes once\")\n  }\n  \n  func testIndexing() {\n    let pattern = \"\\(tmpDir)/ba{r,y,z}\"\n    let glob = Glob(pattern: pattern)\n    XCTAssertEqual(glob[0], \"\\(tmpDir)/bar\", \"indexing\")\n  }\n  \n  // MARK: - Globstar - Bash v3\n  \n  func testGlobstarBashV3NoSlash() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**\"\n    let pattern = \"\\(tmpDir)/**\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV3)\n    XCTAssertEqual(glob.paths, [\"\\(tmpDir)/bar\", \"\\(tmpDir)/baz\", \"\\(tmpDir)/dir1/\", \"\\(tmpDir)/foo\"])\n  }\n  \n  func testGlobstarBashV3WithSlash() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**/\"\n    let pattern = \"\\(tmpDir)/**/\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV3)\n    XCTAssertEqual(glob.paths, [\"\\(tmpDir)/dir1/\"])\n  }\n  \n  func testGlobstarBashV3WithSlashAndWildcard() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**/*\"\n    let pattern = \"\\(tmpDir)/**/*\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV3)\n    XCTAssertEqual(glob.paths, [\"\\(tmpDir)/dir1/dir2/\", \"\\(tmpDir)/dir1/file1.ext\", \"\\(tmpDir)/dir1/file1.extfoo\"])\n  }\n  \n  func testDoubleGlobstarBashV3() {\n    let pattern = \"\\(tmpDir)/**/dir2/**/*\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV3)\n    XCTAssertEqual(glob.paths, [\"\\(tmpDir)/dir1/dir2/dir3/file2.ext\"])\n  }\n  \n  // MARK: - Globstar - Bash v4\n  \n  func testGlobstarBashV4NoSlash() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**\"\n    let pattern = \"\\(tmpDir)/**\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV4)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/\",\n      \"\\(tmpDir)/bar\",\n      \"\\(tmpDir)/baz\",\n      \"\\(tmpDir)/dir1/\",\n      \"\\(tmpDir)/dir1/dir2/\",\n      \"\\(tmpDir)/dir1/dir2/dir3/\",\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      \"\\(tmpDir)/dir1/file1.ext\",\n      \"\\(tmpDir)/dir1/file1.extfoo\",\n      \"\\(tmpDir)/foo\"\n      ])\n  }\n  \n  func testGlobstarBashV4WithSlash() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**/\"\n    let pattern = \"\\(tmpDir)/**/\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV4)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/\",\n      \"\\(tmpDir)/dir1/\",\n      \"\\(tmpDir)/dir1/dir2/\",\n      \"\\(tmpDir)/dir1/dir2/dir3/\",\n      ])\n  }\n  \n  func testGlobstarBashV4WithSlashAndWildcard() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**/*\"\n    let pattern = \"\\(tmpDir)/**/*\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV4)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/bar\",\n      \"\\(tmpDir)/baz\",\n      \"\\(tmpDir)/dir1/\",\n      \"\\(tmpDir)/dir1/dir2/\",\n      \"\\(tmpDir)/dir1/dir2/dir3/\",\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      \"\\(tmpDir)/dir1/file1.ext\",\n      \"\\(tmpDir)/dir1/file1.extfoo\",\n      \"\\(tmpDir)/foo\",\n      ])\n  }\n  \n  func testDoubleGlobstarBashV4() {\n    let pattern = \"\\(tmpDir)/**/dir2/**/*\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV4)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/dir1/dir2/dir3/\",\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      ])\n  }\n  \n  func testDoubleGlobstarBashV4WithFileExtension() {\n    // Should be the equivalent of \"ls -d -1 /(tmpdir)/**/*.ext\"\n    // Should not find \"\\(tmpDir)/dir1/file1.extfoo\" which the file extension prefix is .ext\n    let pattern = \"\\(tmpDir)/**/*.ext\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorBashV4)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      \"\\(tmpDir)/dir1/file1.ext\"\n      ])\n  }\n  \n  // MARK: - Globstar - Gradle\n  \n  func testGlobstarGradleNoSlash() {\n    // Should be the equivalent of\n    // FileTree tree = project.fileTree((Object)'/tmp') {\n    //   include 'glob-test.7m0Lp/**'\n    // }\n    //\n    // Note that the sort order currently matches Bash and not Gradle\n    let pattern = \"\\(tmpDir)/**\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorGradle)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/bar\",\n      \"\\(tmpDir)/baz\",\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      \"\\(tmpDir)/dir1/file1.ext\",\n      \"\\(tmpDir)/dir1/file1.extfoo\",\n      \"\\(tmpDir)/foo\",\n      ])\n  }\n  \n  func testGlobstarGradleWithSlash() {\n    // Should be the equivalent of\n    // FileTree tree = project.fileTree((Object)'/tmp') {\n    //   include 'glob-test.7m0Lp/**/'\n    // }\n    //\n    // Note that the sort order currently matches Bash and not Gradle\n    let pattern = \"\\(tmpDir)/**/\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorGradle)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/bar\",\n      \"\\(tmpDir)/baz\",\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      \"\\(tmpDir)/dir1/file1.ext\",\n      \"\\(tmpDir)/dir1/file1.extfoo\",\n      \"\\(tmpDir)/foo\",\n      ])\n  }\n  \n  func testGlobstarGradleWithSlashAndWildcard() {\n    // Should be the equivalent of\n    // FileTree tree = project.fileTree((Object)'/tmp') {\n    //   include 'glob-test.7m0Lp/**/*'\n    // }\n    //\n    // Note that the sort order currently matches Bash and not Gradle\n    let pattern = \"\\(tmpDir)/**/*\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorGradle)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/bar\",\n      \"\\(tmpDir)/baz\",\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      \"\\(tmpDir)/dir1/file1.ext\",\n      \"\\(tmpDir)/dir1/file1.extfoo\",\n      \"\\(tmpDir)/foo\",\n      ])\n  }\n  \n  func testDoubleGlobstarGradle() {\n    // Should be the equivalent of\n    // FileTree tree = project.fileTree((Object)'/tmp') {\n    //   include 'glob-test.7m0Lp/**/dir2/**/*'\n    // }\n    //\n    // Note that the sort order currently matches Bash and not Gradle\n    let pattern = \"\\(tmpDir)/**/dir2/**/*\"\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorGradle)\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/dir1/dir2/dir3/file2.ext\",\n      ])\n  }\n\n  func testBlacklistedDirectories() {\n    let pattern = \"\\(tmpDir)/**/*\"\n\n    let glob = Glob(pattern: pattern, behavior: GlobBehaviorGradle, blacklistedDirectories: [\"dir1\"])\n\n    XCTAssertEqual(glob.paths, [\n      \"\\(tmpDir)/bar\",\n      \"\\(tmpDir)/baz\",\n      \"\\(tmpDir)/foo\",\n      ])\n  }\n}\n"
  },
  {
    "path": "Tests/RswiftParsersTests/NibParserDelegateTests.swift",
    "content": "//\n//  NibParserTests.swift\n//  RswiftCoreTests\n//\n//  Created by Rafael Nobre on 04/07/18.\n//\n\nimport XCTest\n@testable import RswiftResources\n@testable import RswiftParsers\n\nclass NibParserTests: XCTestCase {\n\n    let nibContents = \"\"\"\n    <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n    <document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"14269.14\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\">\n        <device id=\"retina4_7\" orientation=\"portrait\">\n            <adaptation id=\"fullscreen\"/>\n        </device>\n        <dependencies>\n            <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"14252.5\"/>\n            <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n        </dependencies>\n        <objects>\n            <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n            <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n            <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" preservesSuperviewLayoutMargins=\"YES\" selectionStyle=\"default\" indentationWidth=\"10\" reuseIdentifier=\"myCellIdentifier\" rowHeight=\"200\" id=\"ypE-6P-i0e\" customClass=\"MyCell\" customModule=\"MyTest\" customModuleProvider=\"target\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"200\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n                <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" preservesSuperviewLayoutMargins=\"YES\" insetsLayoutMarginsFromSafeArea=\"NO\" tableViewCell=\"ypE-6P-i0e\" id=\"aZO-BP-7IV\">\n                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"199.5\"/>\n                    <autoresizingMask key=\"autoresizingMask\"/>\n                    <subviews>\n                        <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Dtl-UW-NDc\">\n                            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"4\" height=\"199.5\"/>\n                            <color key=\"backgroundColor\" red=\"1\" green=\"0.24504831199999999\" blue=\"0.18311663910000001\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                            <constraints>\n                                <constraint firstAttribute=\"width\" constant=\"4\" id=\"Ky9-3Q-fhB\"/>\n                            </constraints>\n                        </view>\n                    </subviews>\n                    <constraints>\n                        <constraint firstAttribute=\"bottom\" secondItem=\"Dtl-UW-NDc\" secondAttribute=\"bottom\" id=\"9xG-7x-lbh\"/>\n                        <constraint firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"Dtl-UW-NDc\" secondAttribute=\"trailing\" id=\"i4D-F1-HfE\"/>\n                        <constraint firstItem=\"Dtl-UW-NDc\" firstAttribute=\"leading\" secondItem=\"aZO-BP-7IV\" secondAttribute=\"leading\" id=\"noH-OA-aot\"/>\n                        <constraint firstItem=\"Dtl-UW-NDc\" firstAttribute=\"top\" secondItem=\"aZO-BP-7IV\" secondAttribute=\"top\" id=\"ziA-27-u51\"/>\n                    </constraints>\n                </tableViewCellContentView>\n                <connections>\n                    <outlet property=\"signalView\" destination=\"Dtl-UW-NDc\" id=\"Tmc-Ei-6cd\"/>\n                </connections>\n                <point key=\"canvasLocation\" x=\"-14.5\" y=\"-160\"/>\n            </tableViewCell>\n        </objects>\n    </document>\n\n    \"\"\"\n  \n    func testTopLevelObjectsAreNotAffectedByColorTags() {\n        guard let data = nibContents.data(using: String.Encoding.utf8) else {\n            return XCTFail(\"Unable to create nibContents\")\n        }\n      \n        let parser = XMLParser(data: data)\n      \n        let parserDelegate = NibParserDelegate()\n        parser.delegate = parserDelegate\n      \n        guard parser.parse() else {\n          return XCTFail(\"Invalid XML\")\n        }\n        \n        XCTAssert(parserDelegate.rootViews.count == 1)\n        XCTAssert(parserDelegate.reusables.count == 1)\n    }\n\n    func testRootViewTypeIsCorrectlyExposed() {\n        guard let data = nibContents.data(using: String.Encoding.utf8) else {\n            return XCTFail(\"Unable to create nibContents\")\n        }\n        \n        let parser = XMLParser(data: data)\n        \n        let parserDelegate = NibParserDelegate()\n        parser.delegate = parserDelegate\n        \n        guard parser.parse() else {\n            return XCTFail(\"Invalid XML\")\n        }\n        \n        XCTAssert(parserDelegate.rootViews.first != TypeReference(module: .uiKit, rawName: \"UIView\"))\n    }\n}\n"
  }
]