Full Code of BalestraPatrick/Stryng for AI

master 8601b55251de cached
19 files
75.0 KB
22.9k tokens
1 requests
Download .txt
Repository: BalestraPatrick/Stryng
Branch: master
Commit: 8601b55251de
Files: 19
Total size: 75.0 KB

Directory structure:
gitextract_sjq88rjs/

├── .circleci/
│   └── config.yml
├── .gitignore
├── .swift-version
├── Configs/
│   ├── Stryng.plist
│   └── StryngTests.plist
├── LICENSE
├── Package.swift
├── README.md
├── Sources/
│   └── Stryng.swift
├── Stryng.podspec
├── Stryng.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           ├── Stryng-iOS.xcscheme
│           ├── Stryng-macOS.xcscheme
│           ├── Stryng-tvOS.xcscheme
│           └── Stryng-watchOS.xcscheme
└── Tests/
    ├── LinuxMain.swift
    └── StryngTests/
        └── StryngTests.swift

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
version: 2
jobs:
  build:
    macos:
      xcode: "10.0.0"

    steps:
      - checkout

      # Build the app and run tests
      - run:
          name: Build and run tests
          command: fastlane scan
          environment:
            SCAN_DEVICE: iPhone X
            SCAN_SCHEME: Stryng-iOS

      # Collect XML test results data to show in the UI,
      # and save the same XML files under test-results folder
      # in the Artifacts tab
      - store_test_results:
          path: test_output/report.xml
      - store_artifacts:
          path: /tmp/test-results
          destination: scan-test-results
      - store_artifacts:
          path: ~/Library/Logs/scan
          destination: scan-logs

================================================
FILE: .gitignore
================================================
## Build generated
build/
DerivedData

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata

## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa


================================================
FILE: .swift-version
================================================
4.2

================================================
FILE: Configs/Stryng.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>FMWK</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>$(CURRENT_PROJECT_VERSION)</string>
	<key>NSHumanReadableCopyright</key>
	<string>Copyright © 2017 Patrick Balestra. All rights reserved.</string>
	<key>NSPrincipalClass</key>
	<string></string>
</dict>
</plist>


================================================
FILE: Configs/StryngTests.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
</dict>
</plist>


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2017 Patrick Balestra

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



================================================
FILE: Package.swift
================================================
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "Stryng",
    products: [
        // Products define the executables and libraries produced by a package, and make them visible to other packages.
        .library(
            name: "Stryng",
            targets: ["Stryng"]
        ),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages which this package depends on.
        .target(
            name: "Stryng",
            dependencies: [],
            path: "Sources"
        ),
        .testTarget(
            name: "StryngTests",
            dependencies: ["Stryng"],
            path: "Tests"
        ),
    ]
)


================================================
FILE: README.md
================================================
<p align="center"><img src="header.png"/></p>

<p align="center">
    <a href="https://circleci.com/gh/BalestraPatrick/Stryng">
        <img src="https://circleci.com/gh/BalestraPatrick/Stryng/tree/master.svg?style=svg" alt="Circle CI"/>
    </a>
    <a href="https://github.com/Carthage/Carthage">
        <img src="https://img.shields.io/badge/carthage-compatible-4BC51D.svg?style=flat" alt="Carthage" />
    </a>
    <a href="http://cocoapods.org/pods/Stryng">
        <img src="https://img.shields.io/cocoapods/l/Stryng.svg?style=flat" alt="License" />
    </a>
    <a href="http://cocoapods.org/pods/Stryng">
        <img src="https://img.shields.io/cocoapods/p/Stryng.svg?style=flat" alt="Platform" />
    </a>
    <a href="https://twitter.com/BalestraPatrick">
        <img src="https://img.shields.io/badge/contact-@BalestraPatrick-yellow.svg?style=flat" alt="Twitter: @BalestraPatrick" />
    </a>
</p>

# Stryng
`Stryng` is designed to make it easier to work with strings by using the common and easy to remember subscript syntax and accessing characters and ranges with `Int` indices.

Swift's strings management is one of the most painful feature of the language. Sure, it's great to have Unicode correctness and efficiency, but this comes at a cost: too much verbosity and complexity.

## Examples

Retrieve a single character at a specific position.

```swift
let string = "Example"
// With Stryng
string[1] // "x"
// Without
string[string.index(string.startIndex, offsetBy: 1)] // "x"
```

Retrieve the substring up to a specific index.

```swift
let string = "Example"
// With Stryng
string[..<2] // "Ex"
// Without
string[..<string.index(string.startIndex, offsetBy: 2)] // "Ex"
```

Retrieve the substring between two indices.

```swift
let string = "Example"
// With Stryng
string[1..<6] // "xampl"
// Without
string[string.index(string.startIndex, offsetBy: 1)..<string.index(string.startIndex, offsetBy: 6)] // "Ex"
```

Retrieve positions of a all substring occurences.

```swift
let string = "Example Example"
let occurences = string["xa"] // Returns a [Range<String.Index>] containing all positions of the subtring.
```

Convert a `Substring` to a `String`.

```swift
let example = "Example"
example[1...5].string // Returns a `String?` instead of a `Substring?`
```

## Usage
This is an up to date list of the supported subscripts. Take a look at [`StryngTests.swift`](https://github.com/BalestraPatrick/Stryng/blob/master/Tests/StryngTests/StryngTests.swift)  if you want to see some more real code examples.

```swift
// String[1]
public subscript(index: Int) -> Character?

// String[0..<1]
public subscript(range: Range<Int>) -> Substring?

// String[0...1]
public subscript(range: ClosedRange<Int>) -> Substring?

// String[..<1]
public subscript(value: PartialRangeUpTo<Int>) -> Substring?

// String[...1]
public subscript(value: PartialRangeThrough<Int>) -> Substring?

// String[1...]
public subscript(value: PartialRangeFrom<Int>) -> Substring?

// String["substring"]
public subscript(string: String) -> [Range<String.Index>]

// String["begin"..."end"]
public subscript(range: ClosedRange<String>) -> [ClosedRange<String.Index>]

// String["begin"..<"end"]
public subscript(range: Range<String>) -> [Range<String.Index>]

// String[Character("a")]
public subscript(character: Character) -> [String.Index]

// String["begin"...]
public subscript(range: PartialRangeFrom<String>) -> PartialRangeFrom<String.Index>?

// String[..."end"]
public subscript(range: PartialRangeThrough<String>) -> PartialRangeThrough<String.Index>?
```

## Installation

### Cocoapods

To install via [Cocoapods](http://cocoapods.org/), add the following line to your Podfile:

```ruby
pod 'Stryng'
```

### Swift Package Manager

To install via the [Swift Package Manager](https://swift.org/package-manager/), add the following line to the `dependencies` array in your `Package.swift` file:

```swift
.package(url: "https://github.com/BalestraPatrick/Stryng.git", from: "0.4.1")
```

Then, still in your `Package.swift`, add `"Stryng"` to your *target's* `dependencies` array.

Finally, in your terminal, run the following command to update your dependencies:

```bash
$ swift package update
```

## Disclosure
Yes, string traversal in Swift can be slow. The reason why these subscripts don't exist in the standard library is that some people think that it hides the performance implications of traversing a string. Traversing a string from the `startIndex` until the `endIndex` has complexity O(n). 
If you need to get a character at a specific index, in one way or another you will have to traverse the string, but why would you need 3 lines of code instead of 1 to do that if you know what you're doing?

This is why Stryng is here to help you.

## Contribute
We'd love your help. 
Head over to the [issues](https://github.com/BalestraPatrick/Stryng/issues) with your feedback. 
Bonus points if you open a [Pull request](https://github.com/BalestraPatrick/Stryng/pulls) with a failing test for a bug or a new feature! ⭐️

## Author

I'm [Patrick Balestra](http://www.patrickbalestra.com).

Email: [me@patrickbalestra.com](mailto:me@patrickbalestra.com)

Twitter: [@BalestraPatrick](http://twitter.com/BalestraPatrick).

## License

`Stryng` is available under the MIT license. See the [LICENSE](LICENSE) file for more info.



================================================
FILE: Sources/Stryng.swift
================================================
//
//  Stryng.swift
//  Stryng
//
//  Created by Patrick Balestra on 12/2/17.
//  Copyright © 2017 Stryng. All rights reserved.
//

import Foundation

public extension String {

    // String[1]
    public subscript(index: Int) -> Character? {
        guard !self.isEmpty, let stringIndex = self.index(startIndex, offsetBy: index, limitedBy: self.index(before: endIndex)) else { return nil }
        return self[stringIndex]
    }

    // String[0..<1]
    public subscript(range: Range<Int>) -> Substring? {
        guard let left = indexOffset(by: range.lowerBound) else { return nil }
        guard let right = index(left, offsetBy: range.upperBound - range.lowerBound, 
                                limitedBy: endIndex) else { return nil }
        return self[left..<right]
    }

    // String[0...1]
    public subscript(range: ClosedRange<Int>) -> Substring? {
        if range.upperBound < 0 {
            guard abs(range.lowerBound) <= count else { return nil }
            return self[(count - abs(range.lowerBound))...]
        }
        guard let left = indexOffset(by: range.lowerBound) else { return nil }
        guard let right = index(left, offsetBy: range.upperBound - range.lowerBound, limitedBy: endIndex) else { return nil }
        return self[left...right]
    }

    // String[..<1]
    public subscript(value: PartialRangeUpTo<Int>) -> Substring? {
        if value.upperBound < 0 {
            guard abs(value.upperBound) <= count else { return nil }
            return self[..<(count - abs(value.upperBound))]
        }
        guard let right = indexOffset(by: value.upperBound) else { return nil }
        return self[..<right]
    }

    // String[...1]
    public subscript(value: PartialRangeThrough<Int>) -> Substring? {
        guard let right = self.indexOffset(by: value.upperBound) else { return nil }
        return self[...right]
    }

    // String[1...]
    public subscript(value: PartialRangeFrom<Int>) -> Substring? {
        guard let left = self.indexOffset(by: value.lowerBound) else { return nil }
        return self[left...]
    }

    // String["substring"]
    public subscript(string: String) -> [Range<String.Index>] {
        var occurences = [Range<String.Index>]()
        var initialLeftBound = startIndex
        while initialLeftBound < endIndex {
            guard let range = self.range(of: string, options: [], range: initialLeftBound..<endIndex, locale: nil) else { break }
            occurences.append(range)
            initialLeftBound = range.upperBound
        }
        return occurences
    }

    // String["begin"..."end"]
    public subscript(range: ClosedRange<String>) -> [ClosedRange<String.Index>] {
        var occurences = [ClosedRange<String.Index>]()
        var initialLeftBound = startIndex
        while initialLeftBound < endIndex {
            guard let beginRange = self.range(of: range.lowerBound, options: [], range: initialLeftBound..<endIndex, locale: nil) else { break }
            guard let endRange = self.range(of: range.upperBound, options: [], range: beginRange.upperBound..<endIndex, locale: nil) else { break }
            occurences.append(beginRange.lowerBound...endRange.upperBound)
            initialLeftBound = endRange.upperBound
        }
        return occurences
    }

    // String["begin"..<"end"]
    public subscript(range: Range<String>) -> [Range<String.Index>] {
        var occurences = [Range<String.Index>]()
        var initialLeftBound = startIndex
        while initialLeftBound < endIndex {
            guard let beginRange = self.range(of: range.lowerBound, options: [], range: initialLeftBound..<endIndex, locale: nil) else { break }
            guard let endRange = self.range(of: range.upperBound, options: [], range: beginRange.upperBound..<endIndex, locale: nil) else { break }
            occurences.append(beginRange.upperBound..<endRange.lowerBound)
            initialLeftBound = endRange.upperBound
        }
        return occurences
    }

    // String[Character("a")]
    public subscript(character: Character) -> [String.Index] {
        var occurences = [String.Index]()
        var initialLeftBound = startIndex
        while initialLeftBound < endIndex {
            guard let beginRange = self.range(of: String(character), options: [], range: initialLeftBound..<endIndex, locale: nil) else { break }
            occurences.append(beginRange.lowerBound)
            initialLeftBound = beginRange.upperBound
        }
        return occurences
    }

    // String["begin"...]
    public subscript(range: PartialRangeFrom<String>) -> PartialRangeFrom<String.Index>? {
        guard self.indexOffset(by: range.lowerBound.count) != nil else { return nil }
        guard let beginRange = self.range(of: range.lowerBound, options: [], range: startIndex..<endIndex, locale: nil) else { return nil }
        return beginRange.upperBound...
    }

    // String[..."end"]
    public subscript(range: PartialRangeThrough<String>) -> PartialRangeThrough<String.Index>? {
        guard self.indexOffset(by: range.upperBound.count) != nil else { return nil }
        guard let endRange = self.range(of: range.upperBound, options: [], range: startIndex..<endIndex, locale: nil) else { return nil }
        return ...endRange.lowerBound
    }
}

public extension Substring {

    var string: String {
        return String(self)
    }
}

public extension Optional where Wrapped == Substring {

    var string: String? {
        guard let substring = self else { return nil }
        return String(substring)
    }
}

extension String {

    // String + 1
    func indexOffset(by distance: Int) -> String.Index? {
        return index(startIndex, offsetBy: distance, limitedBy: endIndex)
    }
}


================================================
FILE: Stryng.podspec
================================================
Pod::Spec.new do |s|
  s.name         = "Stryng"
  s.version      = "0.4"
  s.summary      = "Stop crying when accessing Swift Strings."
  s.description  = <<-DESC
    Stryng is designed to make it easier to work with strings by using the common and easy to remember subscript syntax and accessing characters and ranges with Int indices.
  DESC
  s.homepage     = "https://github.com/BalestraPatrick/Stryng"
  s.license      = { :type => "MIT", :file => "LICENSE" }
  s.author             = { "Patrick Balestra" => "me@patrickbalestra.com" }
  s.social_media_url   = ""
  s.ios.deployment_target = "8.0"
  s.osx.deployment_target = "10.9"
  s.watchos.deployment_target = "2.0"
  s.tvos.deployment_target = "9.0"
  s.source       = { :git => "https://github.com/BalestraPatrick/Stryng.git", :tag => s.version.to_s }
  s.source_files  = "Sources/**/*"
  s.frameworks  = "Foundation"
end


================================================
FILE: Stryng.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 47;
	objects = {

/* Begin PBXBuildFile section */
		52D6D9871BEFF229002C0205 /* Stryng.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* Stryng.framework */; };
		8933C7851EB5B820000D00A4 /* Stryng.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7841EB5B820000D00A4 /* Stryng.swift */; };
		8933C7861EB5B820000D00A4 /* Stryng.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7841EB5B820000D00A4 /* Stryng.swift */; };
		8933C7871EB5B820000D00A4 /* Stryng.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7841EB5B820000D00A4 /* Stryng.swift */; };
		8933C7881EB5B820000D00A4 /* Stryng.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7841EB5B820000D00A4 /* Stryng.swift */; };
		8933C78E1EB5B82C000D00A4 /* StryngTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* StryngTests.swift */; };
		8933C78F1EB5B82C000D00A4 /* StryngTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* StryngTests.swift */; };
		8933C7901EB5B82D000D00A4 /* StryngTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* StryngTests.swift */; };
		AEE9F81D212F19F60003A83C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE9F81C212F19F60003A83C /* Foundation.framework */; };
		AEE9F81F212F19FC0003A83C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE9F81E212F19FC0003A83C /* Foundation.framework */; };
		AEE9F821212F1A020003A83C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE9F820212F1A020003A83C /* Foundation.framework */; };
		AEE9F823212F1A090003A83C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AEE9F822212F1A090003A83C /* Foundation.framework */; };
		DD7502881C68FEDE006590AF /* Stryng.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6DA0F1BF000BD002C0205 /* Stryng.framework */; };
		DD7502921C690C7A006590AF /* Stryng.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D9F01BEFFFBE002C0205 /* Stryng.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 52D6D9731BEFF229002C0205 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 52D6D97B1BEFF229002C0205;
			remoteInfo = Stryng;
		};
		DD7502801C68FCFC006590AF /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 52D6D9731BEFF229002C0205 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 52D6DA0E1BF000BD002C0205;
			remoteInfo = "Stryng-macOS";
		};
		DD7502931C690C7A006590AF /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 52D6D9731BEFF229002C0205 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 52D6D9EF1BEFFFBE002C0205;
			remoteInfo = "Stryng-tvOS";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		52D6D97C1BEFF229002C0205 /* Stryng.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Stryng.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		52D6D9861BEFF229002C0205 /* Stryng-iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Stryng-iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
		52D6D9E21BEFFF6E002C0205 /* Stryng.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Stryng.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		52D6D9F01BEFFFBE002C0205 /* Stryng.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Stryng.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		52D6DA0F1BF000BD002C0205 /* Stryng.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Stryng.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		8933C7841EB5B820000D00A4 /* Stryng.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stryng.swift; sourceTree = "<group>"; };
		8933C7891EB5B82A000D00A4 /* StryngTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StryngTests.swift; sourceTree = "<group>"; };
		AD2FAA261CD0B6D800659CF4 /* Stryng.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Stryng.plist; sourceTree = "<group>"; };
		AD2FAA281CD0B6E100659CF4 /* StryngTests.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = StryngTests.plist; sourceTree = "<group>"; };
		AEE9F81C212F19F60003A83C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		AEE9F81E212F19FC0003A83C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
		AEE9F820212F1A020003A83C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS5.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
		AEE9F822212F1A090003A83C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
		DD75027A1C68FCFC006590AF /* Stryng-macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Stryng-macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
		DD75028D1C690C7A006590AF /* Stryng-tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Stryng-tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		52D6D9781BEFF229002C0205 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AEE9F81D212F19F60003A83C /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9831BEFF229002C0205 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				52D6D9871BEFF229002C0205 /* Stryng.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9DE1BEFFF6E002C0205 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AEE9F821212F1A020003A83C /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9EC1BEFFFBE002C0205 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AEE9F823212F1A090003A83C /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6DA0B1BF000BD002C0205 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AEE9F81F212F19FC0003A83C /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD7502771C68FCFC006590AF /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DD7502881C68FEDE006590AF /* Stryng.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD75028A1C690C7A006590AF /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DD7502921C690C7A006590AF /* Stryng.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		52D6D9721BEFF229002C0205 = {
			isa = PBXGroup;
			children = (
				8933C7811EB5B7E0000D00A4 /* Sources */,
				8933C7831EB5B7EB000D00A4 /* Tests */,
				52D6D99C1BEFF38C002C0205 /* Configs */,
				52D6D97D1BEFF229002C0205 /* Products */,
				AEE9F81B212F19F60003A83C /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		52D6D97D1BEFF229002C0205 /* Products */ = {
			isa = PBXGroup;
			children = (
				52D6D97C1BEFF229002C0205 /* Stryng.framework */,
				52D6D9861BEFF229002C0205 /* Stryng-iOS Tests.xctest */,
				52D6D9E21BEFFF6E002C0205 /* Stryng.framework */,
				52D6D9F01BEFFFBE002C0205 /* Stryng.framework */,
				52D6DA0F1BF000BD002C0205 /* Stryng.framework */,
				DD75027A1C68FCFC006590AF /* Stryng-macOS Tests.xctest */,
				DD75028D1C690C7A006590AF /* Stryng-tvOS Tests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		52D6D99C1BEFF38C002C0205 /* Configs */ = {
			isa = PBXGroup;
			children = (
				DD7502721C68FC1B006590AF /* Frameworks */,
				DD7502731C68FC20006590AF /* Tests */,
			);
			path = Configs;
			sourceTree = "<group>";
		};
		8933C7811EB5B7E0000D00A4 /* Sources */ = {
			isa = PBXGroup;
			children = (
				8933C7841EB5B820000D00A4 /* Stryng.swift */,
			);
			path = Sources;
			sourceTree = "<group>";
		};
		8933C7831EB5B7EB000D00A4 /* Tests */ = {
			isa = PBXGroup;
			children = (
				8933C7891EB5B82A000D00A4 /* StryngTests.swift */,
			);
			name = Tests;
			path = Tests/StryngTests;
			sourceTree = "<group>";
		};
		AEE9F81B212F19F60003A83C /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				AEE9F822212F1A090003A83C /* Foundation.framework */,
				AEE9F820212F1A020003A83C /* Foundation.framework */,
				AEE9F81E212F19FC0003A83C /* Foundation.framework */,
				AEE9F81C212F19F60003A83C /* Foundation.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DD7502721C68FC1B006590AF /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				AD2FAA261CD0B6D800659CF4 /* Stryng.plist */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DD7502731C68FC20006590AF /* Tests */ = {
			isa = PBXGroup;
			children = (
				AD2FAA281CD0B6E100659CF4 /* StryngTests.plist */,
			);
			name = Tests;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		52D6D9791BEFF229002C0205 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9DF1BEFFF6E002C0205 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9ED1BEFFFBE002C0205 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6DA0C1BF000BD002C0205 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		52D6D97B1BEFF229002C0205 /* Stryng-iOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 52D6D9901BEFF229002C0205 /* Build configuration list for PBXNativeTarget "Stryng-iOS" */;
			buildPhases = (
				52D6D9771BEFF229002C0205 /* Sources */,
				52D6D9781BEFF229002C0205 /* Frameworks */,
				52D6D9791BEFF229002C0205 /* Headers */,
				52D6D97A1BEFF229002C0205 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Stryng-iOS";
			productName = Stryng;
			productReference = 52D6D97C1BEFF229002C0205 /* Stryng.framework */;
			productType = "com.apple.product-type.framework";
		};
		52D6D9851BEFF229002C0205 /* Stryng-iOS Tests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 52D6D9931BEFF229002C0205 /* Build configuration list for PBXNativeTarget "Stryng-iOS Tests" */;
			buildPhases = (
				52D6D9821BEFF229002C0205 /* Sources */,
				52D6D9831BEFF229002C0205 /* Frameworks */,
				52D6D9841BEFF229002C0205 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				52D6D9891BEFF229002C0205 /* PBXTargetDependency */,
			);
			name = "Stryng-iOS Tests";
			productName = StryngTests;
			productReference = 52D6D9861BEFF229002C0205 /* Stryng-iOS Tests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		52D6D9E11BEFFF6E002C0205 /* Stryng-watchOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 52D6D9E71BEFFF6E002C0205 /* Build configuration list for PBXNativeTarget "Stryng-watchOS" */;
			buildPhases = (
				52D6D9DD1BEFFF6E002C0205 /* Sources */,
				52D6D9DE1BEFFF6E002C0205 /* Frameworks */,
				52D6D9DF1BEFFF6E002C0205 /* Headers */,
				52D6D9E01BEFFF6E002C0205 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Stryng-watchOS";
			productName = "Stryng-watchOS";
			productReference = 52D6D9E21BEFFF6E002C0205 /* Stryng.framework */;
			productType = "com.apple.product-type.framework";
		};
		52D6D9EF1BEFFFBE002C0205 /* Stryng-tvOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 52D6DA011BEFFFBE002C0205 /* Build configuration list for PBXNativeTarget "Stryng-tvOS" */;
			buildPhases = (
				52D6D9EB1BEFFFBE002C0205 /* Sources */,
				52D6D9EC1BEFFFBE002C0205 /* Frameworks */,
				52D6D9ED1BEFFFBE002C0205 /* Headers */,
				52D6D9EE1BEFFFBE002C0205 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Stryng-tvOS";
			productName = "Stryng-tvOS";
			productReference = 52D6D9F01BEFFFBE002C0205 /* Stryng.framework */;
			productType = "com.apple.product-type.framework";
		};
		52D6DA0E1BF000BD002C0205 /* Stryng-macOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 52D6DA201BF000BD002C0205 /* Build configuration list for PBXNativeTarget "Stryng-macOS" */;
			buildPhases = (
				52D6DA0A1BF000BD002C0205 /* Sources */,
				52D6DA0B1BF000BD002C0205 /* Frameworks */,
				52D6DA0C1BF000BD002C0205 /* Headers */,
				52D6DA0D1BF000BD002C0205 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Stryng-macOS";
			productName = "Stryng-macOS";
			productReference = 52D6DA0F1BF000BD002C0205 /* Stryng.framework */;
			productType = "com.apple.product-type.framework";
		};
		DD7502791C68FCFC006590AF /* Stryng-macOS Tests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DD7502821C68FCFC006590AF /* Build configuration list for PBXNativeTarget "Stryng-macOS Tests" */;
			buildPhases = (
				DD7502761C68FCFC006590AF /* Sources */,
				DD7502771C68FCFC006590AF /* Frameworks */,
				DD7502781C68FCFC006590AF /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				DD7502811C68FCFC006590AF /* PBXTargetDependency */,
			);
			name = "Stryng-macOS Tests";
			productName = "Stryng-OS Tests";
			productReference = DD75027A1C68FCFC006590AF /* Stryng-macOS Tests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		DD75028C1C690C7A006590AF /* Stryng-tvOS Tests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DD7502951C690C7A006590AF /* Build configuration list for PBXNativeTarget "Stryng-tvOS Tests" */;
			buildPhases = (
				DD7502891C690C7A006590AF /* Sources */,
				DD75028A1C690C7A006590AF /* Frameworks */,
				DD75028B1C690C7A006590AF /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				DD7502941C690C7A006590AF /* PBXTargetDependency */,
			);
			name = "Stryng-tvOS Tests";
			productName = "Stryng-tvOS Tests";
			productReference = DD75028D1C690C7A006590AF /* Stryng-tvOS Tests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		52D6D9731BEFF229002C0205 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0720;
				LastUpgradeCheck = 1000;
				ORGANIZATIONNAME = Stryng;
				TargetAttributes = {
					52D6D97B1BEFF229002C0205 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 1000;
					};
					52D6D9851BEFF229002C0205 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 1000;
					};
					52D6D9E11BEFFF6E002C0205 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 0800;
					};
					52D6D9EF1BEFFFBE002C0205 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 0800;
					};
					52D6DA0E1BF000BD002C0205 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 0800;
					};
					DD7502791C68FCFC006590AF = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0800;
					};
					DD75028C1C690C7A006590AF = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0800;
					};
				};
			};
			buildConfigurationList = 52D6D9761BEFF229002C0205 /* Build configuration list for PBXProject "Stryng" */;
			compatibilityVersion = "Xcode 6.3";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 52D6D9721BEFF229002C0205;
			productRefGroup = 52D6D97D1BEFF229002C0205 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				52D6D97B1BEFF229002C0205 /* Stryng-iOS */,
				52D6DA0E1BF000BD002C0205 /* Stryng-macOS */,
				52D6D9E11BEFFF6E002C0205 /* Stryng-watchOS */,
				52D6D9EF1BEFFFBE002C0205 /* Stryng-tvOS */,
				52D6D9851BEFF229002C0205 /* Stryng-iOS Tests */,
				DD7502791C68FCFC006590AF /* Stryng-macOS Tests */,
				DD75028C1C690C7A006590AF /* Stryng-tvOS Tests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		52D6D97A1BEFF229002C0205 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9841BEFF229002C0205 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9E01BEFFF6E002C0205 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9EE1BEFFFBE002C0205 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6DA0D1BF000BD002C0205 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD7502781C68FCFC006590AF /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD75028B1C690C7A006590AF /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		52D6D9771BEFF229002C0205 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C7851EB5B820000D00A4 /* Stryng.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9821BEFF229002C0205 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C7901EB5B82D000D00A4 /* StryngTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9DD1BEFFF6E002C0205 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C7871EB5B820000D00A4 /* Stryng.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6D9EB1BEFFFBE002C0205 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C7881EB5B820000D00A4 /* Stryng.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		52D6DA0A1BF000BD002C0205 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C7861EB5B820000D00A4 /* Stryng.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD7502761C68FCFC006590AF /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C78F1EB5B82C000D00A4 /* StryngTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DD7502891C690C7A006590AF /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8933C78E1EB5B82C000D00A4 /* StryngTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		52D6D9891BEFF229002C0205 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 52D6D97B1BEFF229002C0205 /* Stryng-iOS */;
			targetProxy = 52D6D9881BEFF229002C0205 /* PBXContainerItemProxy */;
		};
		DD7502811C68FCFC006590AF /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 52D6DA0E1BF000BD002C0205 /* Stryng-macOS */;
			targetProxy = DD7502801C68FCFC006590AF /* PBXContainerItemProxy */;
		};
		DD7502941C690C7A006590AF /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 52D6D9EF1BEFFFBE002C0205 /* Stryng-tvOS */;
			targetProxy = DD7502931C690C7A006590AF /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		52D6D98E1BEFF229002C0205 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = "1,2";
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		52D6D98F1BEFF229002C0205 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		52D6D9911BEFF229002C0205 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				CLANG_ENABLE_MODULES = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				ONLY_ACTIVE_ARCH = NO;
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-iOS";
				PRODUCT_NAME = Stryng;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 4.2;
			};
			name = Debug;
		};
		52D6D9921BEFF229002C0205 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				CLANG_ENABLE_MODULES = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-iOS";
				PRODUCT_NAME = Stryng;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
			};
			name = Release;
		};
		52D6D9941BEFF229002C0205 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				INFOPLIST_FILE = Configs/StryngTests.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-iOS-Tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 4.2;
			};
			name = Debug;
		};
		52D6D9951BEFF229002C0205 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				INFOPLIST_FILE = Configs/StryngTests.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-iOS-Tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
			};
			name = Release;
		};
		52D6D9E81BEFFF6E002C0205 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-watchOS";
				PRODUCT_NAME = Stryng;
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 4.2;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Debug;
		};
		52D6D9E91BEFFF6E002C0205 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-watchOS";
				PRODUCT_NAME = Stryng;
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Release;
		};
		52D6DA021BEFFFBE002C0205 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-tvOS";
				PRODUCT_NAME = Stryng;
				SDKROOT = appletvos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 4.2;
				TARGETED_DEVICE_FAMILY = 3;
				TVOS_DEPLOYMENT_TARGET = 9.0;
			};
			name = Debug;
		};
		52D6DA031BEFFFBE002C0205 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-tvOS";
				PRODUCT_NAME = Stryng;
				SDKROOT = appletvos;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
				TARGETED_DEVICE_FAMILY = 3;
				TVOS_DEPLOYMENT_TARGET = 9.0;
			};
			name = Release;
		};
		52D6DA211BF000BD002C0205 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				FRAMEWORK_VERSION = A;
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.10;
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-macOS";
				PRODUCT_NAME = Stryng;
				SDKROOT = macosx;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 4.2;
			};
			name = Debug;
		};
		52D6DA221BF000BD002C0205 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				FRAMEWORK_VERSION = A;
				INFOPLIST_FILE = Configs/Stryng.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.10;
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-macOS";
				PRODUCT_NAME = Stryng;
				SDKROOT = macosx;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
			};
			name = Release;
		};
		DD7502831C68FCFC006590AF /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = Configs/StryngTests.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-macOS-Tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.2;
			};
			name = Debug;
		};
		DD7502841C68FCFC006590AF /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = Configs/StryngTests.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-macOS-Tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
			};
			name = Release;
		};
		DD7502961C690C7A006590AF /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = Configs/StryngTests.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-tvOS-Tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 4.2;
				TVOS_DEPLOYMENT_TARGET = 9.1;
			};
			name = Debug;
		};
		DD7502971C690C7A006590AF /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = Configs/StryngTests.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = "com.Stryng.Stryng-tvOS-Tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 4.2;
				TVOS_DEPLOYMENT_TARGET = 9.1;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		52D6D9761BEFF229002C0205 /* Build configuration list for PBXProject "Stryng" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				52D6D98E1BEFF229002C0205 /* Debug */,
				52D6D98F1BEFF229002C0205 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		52D6D9901BEFF229002C0205 /* Build configuration list for PBXNativeTarget "Stryng-iOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				52D6D9911BEFF229002C0205 /* Debug */,
				52D6D9921BEFF229002C0205 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		52D6D9931BEFF229002C0205 /* Build configuration list for PBXNativeTarget "Stryng-iOS Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				52D6D9941BEFF229002C0205 /* Debug */,
				52D6D9951BEFF229002C0205 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		52D6D9E71BEFFF6E002C0205 /* Build configuration list for PBXNativeTarget "Stryng-watchOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				52D6D9E81BEFFF6E002C0205 /* Debug */,
				52D6D9E91BEFFF6E002C0205 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		52D6DA011BEFFFBE002C0205 /* Build configuration list for PBXNativeTarget "Stryng-tvOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				52D6DA021BEFFFBE002C0205 /* Debug */,
				52D6DA031BEFFFBE002C0205 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		52D6DA201BF000BD002C0205 /* Build configuration list for PBXNativeTarget "Stryng-macOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				52D6DA211BF000BD002C0205 /* Debug */,
				52D6DA221BF000BD002C0205 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DD7502821C68FCFC006590AF /* Build configuration list for PBXNativeTarget "Stryng-macOS Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DD7502831C68FCFC006590AF /* Debug */,
				DD7502841C68FCFC006590AF /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DD7502951C690C7A006590AF /* Build configuration list for PBXNativeTarget "Stryng-tvOS Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DD7502961C690C7A006590AF /* Debug */,
				DD7502971C690C7A006590AF /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 52D6D9731BEFF229002C0205 /* Project object */;
}


================================================
FILE: Stryng.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:">
   </FileRef>
</Workspace>


================================================
FILE: Stryng.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDEDidComputeMac32BitWarning</key>
	<true/>
</dict>
</plist>


================================================
FILE: Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-iOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1000"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
               BuildableName = "Stryng.framework"
               BlueprintName = "Stryng-iOS"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      codeCoverageEnabled = "YES"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
         <TestableReference
            skipped = "NO">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "52D6D9851BEFF229002C0205"
               BuildableName = "Stryng-iOS Tests.xctest"
               BlueprintName = "Stryng-iOS Tests"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </TestableReference>
      </Testables>
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-iOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-iOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D97B1BEFF229002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-iOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-macOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1000"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
               BuildableName = "Stryng.framework"
               BlueprintName = "Stryng-macOS"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      codeCoverageEnabled = "YES"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
         <TestableReference
            skipped = "NO">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "DD7502791C68FCFC006590AF"
               BuildableName = "Stryng-macOS Tests.xctest"
               BlueprintName = "Stryng-macOS Tests"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </TestableReference>
      </Testables>
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-macOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-macOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6DA0E1BF000BD002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-macOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-tvOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1000"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
               BuildableName = "Stryng.framework"
               BlueprintName = "Stryng-tvOS"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      codeCoverageEnabled = "YES"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
         <TestableReference
            skipped = "NO">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "DD75028C1C690C7A006590AF"
               BuildableName = "Stryng-tvOS Tests.xctest"
               BlueprintName = "Stryng-tvOS Tests"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </TestableReference>
      </Testables>
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-tvOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-tvOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D9EF1BEFFFBE002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-tvOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-watchOS.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1000"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "52D6D9E11BEFFF6E002C0205"
               BuildableName = "Stryng.framework"
               BlueprintName = "Stryng-watchOS"
               ReferencedContainer = "container:Stryng.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      codeCoverageEnabled = "YES"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
      </Testables>
      <AdditionalOptions>
      </AdditionalOptions>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D9E11BEFFF6E002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-watchOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <AdditionalOptions>
      </AdditionalOptions>
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "52D6D9E11BEFFF6E002C0205"
            BuildableName = "Stryng.framework"
            BlueprintName = "Stryng-watchOS"
            ReferencedContainer = "container:Stryng.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: Tests/LinuxMain.swift
================================================
import XCTest
@testable import StryngTests

XCTMain([
    testCase(StryngTests.allTests),
])


================================================
FILE: Tests/StryngTests/StryngTests.swift
================================================
//
//  StryngTests.swift
//  Stryng
//
//  Created by Patrick Balestra on 12/2/17.
//  Copyright © 2017 Stryng. All rights reserved.
//

import Foundation
import XCTest
import Stryng

class StryngTests: XCTestCase {

    func testIndex() {
        let example = "Example"
        XCTAssertEqual(example[1], "x")
    }

    func testEmptyStringIndexOutOfBounds() {
        let example = ""
        XCTAssertNil(example[0])
        XCTAssertNil(example[1])
    }

    func testIndexOutOfBounds() {
        let example = "Example"
        XCTAssertNil(example[7])
        XCTAssertNil(example[8])
    }

    func testRange() {
        let example = "Example"
        XCTAssertEqual(example[0..<2], "Ex")
    }

    func testRangeEmpty() {
        let example = "Example"
        XCTAssertEqual(example[0..<0], "")
    }

    func testRangeOutOfBounds() {
        let example = "Example"
        XCTAssertNil(example[10..<12])
        XCTAssertNil(example[0..<12])
    }
    
    func testRangeNegative() {
        let example = "Example"
        XCTAssertEqual(example[..<(-1)], "Exampl")
        XCTAssertEqual(example[..<(-3)], "Exam")
    }

    func testClosedRangeEmoji() {
        let example = "👨‍👩‍👧‍👧"
        XCTAssertEqual(example[0...0], "👨‍👩‍👧‍👧")
    }

    func testClosedRangeOutOfBounds() {
        let example = "Example"
        XCTAssertNil(example[0...8])
        XCTAssertNil(example[10...11])

    }
    
    func testClosedRangeNegative() {
        let example = "Example"
        XCTAssertEqual(example[-2...(-1)], "le")
        XCTAssertEqual(example[-4...(-1)], "mple")
        XCTAssertNil(example[-10...(-1)])
    }

    func testPartialRangeUpTo() {
        let example = "Example"
        let result = example[..<1]
        XCTAssertEqual(result, "E")
    }

    func testPartialRangeUpToOutOfBounds() {
        let example = "Example"
        let result = example[..<8]
        XCTAssertNil(result)
        
    }

    func testPartialRangeThroughTo() {
        let example = "Example"
        let result = example[...1]
        XCTAssertEqual(result, "Ex")
    }

    func testPartialRangeThroughToOutOfBounds() {
        let example = "Example"
        let result = example[...8]
        XCTAssertNil(result)
    }

    func testPartialRangeFrom() {
        let example = "Example"
        let result = example[1...]
        XCTAssertEqual(result, "xample")
    }

    func testPartialRangeFromOutOfBounds() {
        let example = "Example"
        let result = example[10...]
        XCTAssertNil(result)
    }

    func testSubstringOccurence() {
        let example = "Example"
        let occurence = example["xa"].first
        let left = example.distance(from: example.startIndex, to: occurence!.lowerBound)
        let right = example.distance(from: example.startIndex, to: occurence!.upperBound)
        XCTAssertEqual(left, 1)
        XCTAssertEqual(right, 3)
        XCTAssertEqual(example[left..<right], "xa")
    }

    func testSingleCharacterOccurence() {
        let example = "Example Example"
        let occurences = example[Character("a")]
        XCTAssertEqual(occurences.count, 2)
        XCTAssertEqual(example[occurences[0]], "a")
        XCTAssertEqual(example[occurences[1]], "a")
    }

    func testSubstringOccurences() {
        let example = "Example Example"
        let occurences = example["xa"]
        XCTAssertEqual(occurences.count, 2)
        do {
            let left = example.distance(from: example.startIndex, to: occurences[0].lowerBound)
            let right = example.distance(from: example.startIndex, to: occurences[0].upperBound)
            XCTAssertEqual(left, 1)
            XCTAssertEqual(right, 3)
            XCTAssertEqual(example[left..<right], "xa")
        }
        do {
            let left = example.distance(from: example.startIndex, to: occurences[1].lowerBound)
            let right = example.distance(from: example.startIndex, to: occurences[1].upperBound)
            XCTAssertEqual(left, 9)
            XCTAssertEqual(right, 11)
            XCTAssertEqual(example[left..<right], "xa")
        }
    }

    func testStringsClosedRange() {
        let example = "Example Example"
        let occurences = example["E"..."e"]
        XCTAssertEqual(occurences.count, 2)
        do {
            let left = example.distance(from: example.startIndex, to: occurences[0].lowerBound)
            let right = example.distance(from: example.startIndex, to: occurences[0].upperBound)
            XCTAssertEqual(left, 0)
            XCTAssertEqual(right, 7)
            XCTAssertEqual(example[left..<right], "Example")
        }
        do {
            let left = example.distance(from: example.startIndex, to: occurences[1].lowerBound)
            let right = example.distance(from: example.startIndex, to: occurences[1].upperBound)
            XCTAssertEqual(left, 8)
            XCTAssertEqual(right, 15)
            XCTAssertEqual(example[left..<right], "Example")
        }
    }

    func testStringsRange() {
        let example = "Example Example"
        let occurences = example["E"..<"e"]
        XCTAssertEqual(occurences.count, 2)
        do {
            let left = example.distance(from: example.startIndex, to: occurences[0].lowerBound)
            let right = example.distance(from: example.startIndex, to: occurences[0].upperBound)
            XCTAssertEqual(left, 1)
            XCTAssertEqual(right, 6)
            XCTAssertEqual(example[left..<right], "xampl")
        }
        do {
            let left = example.distance(from: example.startIndex, to: occurences[1].lowerBound)
            let right = example.distance(from: example.startIndex, to: occurences[1].upperBound)
            XCTAssertEqual(left, 9)
            XCTAssertEqual(right, 14)
            XCTAssertEqual(example[left..<right], "xampl")
        }
    }

    func testStringPartialRangeFrom() {
        let example = "Example Example"
        let occurence = example["Example "...]!
        let left = example.distance(from: example.startIndex, to: occurence.lowerBound)
        XCTAssertEqual(left, 8)
        XCTAssertEqual(example[left...], "Example")
    }

    func testStringRangeThroughTo() {
        let example = "Example Example"
        let occurence = example[..." Example"]!
        let right = example.distance(from: example.startIndex, to: occurence.upperBound)
        XCTAssertEqual(right, 7)
        XCTAssertEqual(example[..<right], "Example")
    }
    
    static var allTests = [
        ("testIndex", testIndex),
        ("testRange", testRange),
        ("testRangeEmpty", testRangeEmpty),
        ("testRangeOutOfBounds", testRangeOutOfBounds),
        ("testClosedRangeEmoji", testClosedRangeEmoji),
        ("testClosedRangeOutOfBounds", testClosedRangeOutOfBounds),
        ("testPartialRangeUpTo", testPartialRangeUpTo),
        ("testPartialRangeUpToOutOfBounds", testPartialRangeUpToOutOfBounds),
        ("testPartialRangeThroughTo", testPartialRangeThroughTo),
        ("testPartialRangeThroughToOutOfBounds", testPartialRangeThroughToOutOfBounds),
        ("testPartialRangeFrom", testPartialRangeFrom),
        ("testPartialRangeFromOutOfBounds", testPartialRangeFromOutOfBounds),
        ("testSingleCharacterOccurence", testSingleCharacterOccurence),
        ("testSubstringOccurence", testSubstringOccurence),
        ("testSubstringOccurences", testSubstringOccurences),
        ("testStringsClosedRange", testStringsClosedRange),
        ("testStringsRange", testStringsRange),
        ("testStringPartialRangeFrom", testStringPartialRangeFrom)
    ]
}
Download .txt
gitextract_sjq88rjs/

├── .circleci/
│   └── config.yml
├── .gitignore
├── .swift-version
├── Configs/
│   ├── Stryng.plist
│   └── StryngTests.plist
├── LICENSE
├── Package.swift
├── README.md
├── Sources/
│   └── Stryng.swift
├── Stryng.podspec
├── Stryng.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           ├── Stryng-iOS.xcscheme
│           ├── Stryng-macOS.xcscheme
│           ├── Stryng-tvOS.xcscheme
│           └── Stryng-watchOS.xcscheme
└── Tests/
    ├── LinuxMain.swift
    └── StryngTests/
        └── StryngTests.swift
Condensed preview — 19 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (84K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 709,
    "preview": "version: 2\njobs:\n  build:\n    macos:\n      xcode: \"10.0.0\"\n\n    steps:\n      - checkout\n\n      # Build the app and run t"
  },
  {
    "path": ".gitignore",
    "chars": 296,
    "preview": "## Build generated\nbuild/\nDerivedData\n\n## Various settings\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2"
  },
  {
    "path": ".swift-version",
    "chars": 3,
    "preview": "4.2"
  },
  {
    "path": "Configs/Stryng.plist",
    "chars": 917,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Configs/StryngTests.plist",
    "chars": 733,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "LICENSE",
    "chars": 1084,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2017 Patrick Balestra\n\nPermission is hereby granted, free of charge, to any person "
  },
  {
    "path": "Package.swift",
    "chars": 1090,
    "preview": "// swift-tools-version:4.0\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
  },
  {
    "path": "README.md",
    "chars": 5342,
    "preview": "<p align=\"center\"><img src=\"header.png\"/></p>\n\n<p align=\"center\">\n    <a href=\"https://circleci.com/gh/BalestraPatrick/S"
  },
  {
    "path": "Sources/Stryng.swift",
    "chars": 5731,
    "preview": "//\n//  Stryng.swift\n//  Stryng\n//\n//  Created by Patrick Balestra on 12/2/17.\n//  Copyright © 2017 Stryng. All rights re"
  },
  {
    "path": "Stryng.podspec",
    "chars": 885,
    "preview": "Pod::Spec.new do |s|\n  s.name         = \"Stryng\"\n  s.version      = \"0.4\"\n  s.summary      = \"Stop crying when accessing"
  },
  {
    "path": "Stryng.xcodeproj/project.pbxproj",
    "chars": 37954,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 47;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "Stryng.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "Stryng.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-iOS.xcscheme",
    "chars": 3688,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1000\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-macOS.xcscheme",
    "chars": 3700,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1000\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-tvOS.xcscheme",
    "chars": 3694,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1000\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "Stryng.xcodeproj/xcshareddata/xcschemes/Stryng-watchOS.xcscheme",
    "chars": 2899,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1000\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "Tests/LinuxMain.swift",
    "chars": 93,
    "preview": "import XCTest\n@testable import StryngTests\n\nXCTMain([\n    testCase(StryngTests.allTests),\n])\n"
  },
  {
    "path": "Tests/StryngTests/StryngTests.swift",
    "chars": 7576,
    "preview": "//\n//  StryngTests.swift\n//  Stryng\n//\n//  Created by Patrick Balestra on 12/2/17.\n//  Copyright © 2017 Stryng. All righ"
  }
]

About this extraction

This page contains the full source code of the BalestraPatrick/Stryng GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 19 files (75.0 KB), approximately 22.9k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!