diff --git a/.gitignore b/.gitignore index fd4001b83..9f3083fff 100755 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,7 @@ playground.xcworkspace # Add this line if you want to avoid checking in source code from Carthage dependencies. # Carthage/Checkouts -Carthage/Build +#Carthage/Build # fastlane # @@ -66,5 +66,5 @@ fastlane/Preview.html fastlane/screenshots fastlane/test_output API_keys.plist -web3swiftTests/key.json -web3swiftTests/Resources/key.json + +.DS_Store diff --git a/.travis.yml b/.travis.yml index 57843fe36..a685cc1a9 100755 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,11 @@ xcode_project: web3swift.xcworkspace xcode_scheme: web3swift-iOS xcode_destination: platform=iOS Simulator, OS=12.2, name=iPhone X before_install: - - gem install cocoapods --pre - - pod install --repo-update + - brew install carthage || true + - brew outdated carthage || brew upgrade carthage +before_script: + - carthage bootstrap --platform iOS --no-use-binaries --cache-builds script: - - xcodebuild -scheme web3swift-iOS -workspace web3swift.xcworkspace -sdk iphonesimulator build test + - xcodebuild -scheme web3swift -project web3swift.xcodeproj -sdk iphonesimulator build test after_success: - bash <(curl -s https://codecov.io/bash) diff --git a/Cartfile b/Cartfile new file mode 100755 index 000000000..d76dd3096 --- /dev/null +++ b/Cartfile @@ -0,0 +1,4 @@ +github "mxcl/PromiseKit" ~> 6.8.4 +github "attaswift/BigInt" ~> 3.1 +github "daltoniam/Starscream" ~> 3.1.0 +github "krzyzanowskim/CryptoSwift" ~> 1.0.0 diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100755 index 000000000..b73115f9b --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1,5 @@ +github "attaswift/BigInt" "v3.1.0" +github "attaswift/SipHash" "v1.2.2" +github "daltoniam/Starscream" "3.1.0" +github "krzyzanowskim/CryptoSwift" "1.0.0" +github "mxcl/PromiseKit" "6.8.4" diff --git a/Carthage/Checkouts/BigInt/.codecov.yml b/Carthage/Checkouts/BigInt/.codecov.yml new file mode 100644 index 000000000..3432d06ad --- /dev/null +++ b/Carthage/Checkouts/BigInt/.codecov.yml @@ -0,0 +1,14 @@ +ignore: +- "/tests/*" +comment: + layout: "header, diff" + behavior: default + require_changes: no +coverage: + status: + project: + default: + target: auto + threshold: null + base: auto + paths: "sources/*" diff --git a/Carthage/Checkouts/BigInt/.gitignore b/Carthage/Checkouts/BigInt/.gitignore new file mode 100644 index 000000000..59f40b169 --- /dev/null +++ b/Carthage/Checkouts/BigInt/.gitignore @@ -0,0 +1,6 @@ +/Carthage/Build +/.build +/Packages +xcuserdata +/Package.pins +/Package.resolved diff --git a/Carthage/Checkouts/BigInt/.gitmodules b/Carthage/Checkouts/BigInt/.gitmodules new file mode 100644 index 000000000..ce321b13a --- /dev/null +++ b/Carthage/Checkouts/BigInt/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Carthage/Checkouts/SipHash"] + path = Carthage/Checkouts/SipHash + url = https://github.com/attaswift/SipHash.git diff --git a/Carthage/Checkouts/BigInt/.swift-version b/Carthage/Checkouts/BigInt/.swift-version new file mode 100644 index 000000000..5186d0706 --- /dev/null +++ b/Carthage/Checkouts/BigInt/.swift-version @@ -0,0 +1 @@ +4.0 diff --git a/Carthage/Checkouts/BigInt/.travis.yml b/Carthage/Checkouts/BigInt/.travis.yml new file mode 100644 index 000000000..5cbed3eb2 --- /dev/null +++ b/Carthage/Checkouts/BigInt/.travis.yml @@ -0,0 +1,10 @@ +language: objective-c +osx_image: xcode9.3 +script: +- swift build +- swift test +- xcrun xcodebuild -workspace BigInt.xcworkspace -scheme BigInt-macOS test +- xcrun xcodebuild -workspace BigInt.xcworkspace -scheme BigInt-iOS +- xcrun xcodebuild -workspace BigInt.xcworkspace -scheme BigInt-watchOS +- xcrun xcodebuild -workspace BigInt.xcworkspace -scheme BigInt-tvOS +after_success: bash <(curl -s https://codecov.io/bash) diff --git a/Carthage/Checkouts/BigInt/BigInt.podspec b/Carthage/Checkouts/BigInt/BigInt.podspec new file mode 100644 index 000000000..5c61ba13a --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.podspec @@ -0,0 +1,18 @@ + +Pod::Spec.new do |spec| + spec.name = 'BigInt' + spec.version = '3.1.0' + spec.ios.deployment_target = "8.0" + spec.osx.deployment_target = "10.9" + spec.tvos.deployment_target = "9.0" + spec.watchos.deployment_target = "2.0" + spec.license = { :type => 'MIT', :file => 'LICENSE.md' } + spec.summary = 'Arbitrary-precision arithmetic in pure Swift' + spec.homepage = 'https://github.com/attaswift/BigInt' + spec.author = 'Károly Lőrentey' + spec.source = { :git => 'https://github.com/attaswift/BigInt.git', :tag => 'v' + String(spec.version) } + spec.source_files = 'sources/*.swift' + spec.social_media_url = 'https://twitter.com/lorentey' + spec.documentation_url = 'http://attaswift.github.io/BigInt/' + spec.dependency 'SipHash', '~> 1.2' +end diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/project.pbxproj b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/project.pbxproj new file mode 100644 index 000000000..bc30af782 --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/project.pbxproj @@ -0,0 +1,1324 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXBuildFile section */ + BB241C441DDB70600067F917 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C301DDB70600067F917 /* Addition.swift */; }; + BB241C451DDB70600067F917 /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C311DDB70600067F917 /* Bitwise Ops.swift */; }; + BB241C461DDB70600067F917 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C321DDB70600067F917 /* Comparable.swift */; }; + BB241C471DDB70600067F917 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C331DDB70600067F917 /* Data Conversion.swift */; }; + BB241C481DDB70600067F917 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C341DDB70600067F917 /* Division.swift */; }; + BB241C491DDB70600067F917 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C351DDB70600067F917 /* Exponentiation.swift */; }; + BB241C4A1DDB70600067F917 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C361DDB70600067F917 /* GCD.swift */; }; + BB241C4B1DDB70600067F917 /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C371DDB70600067F917 /* Hashable.swift */; }; + BB241C4C1DDB70600067F917 /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C381DDB70600067F917 /* Multiplication.swift */; }; + BB241C4D1DDB70600067F917 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C391DDB70600067F917 /* Prime Test.swift */; }; + BB241C4E1DDB70600067F917 /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3A1DDB70600067F917 /* String Conversion.swift */; }; + BB241C4F1DDB70600067F917 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3B1DDB70600067F917 /* Random.swift */; }; + BB241C501DDB70600067F917 /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3C1DDB70600067F917 /* Shifts.swift */; }; + BB241C511DDB70600067F917 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3D1DDB70600067F917 /* Square Root.swift */; }; + BB241C521DDB70600067F917 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3E1DDB70600067F917 /* Subtraction.swift */; }; + BB241C531DDB70600067F917 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3F1DDB70600067F917 /* BigUInt.swift */; }; + BB241C651DDB70B00067F917 /* BigInt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AD41C8F88F20050DDA9 /* BigInt.framework */; }; + BB241C6F1DDB71910067F917 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3F1DDB70600067F917 /* BigUInt.swift */; }; + BB241C701DDB71910067F917 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C321DDB70600067F917 /* Comparable.swift */; }; + BB241C711DDB71910067F917 /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C371DDB70600067F917 /* Hashable.swift */; }; + BB241C721DDB71910067F917 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C331DDB70600067F917 /* Data Conversion.swift */; }; + BB241C731DDB71910067F917 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C301DDB70600067F917 /* Addition.swift */; }; + BB241C741DDB71910067F917 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3E1DDB70600067F917 /* Subtraction.swift */; }; + BB241C751DDB71910067F917 /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C381DDB70600067F917 /* Multiplication.swift */; }; + BB241C761DDB71910067F917 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C341DDB70600067F917 /* Division.swift */; }; + BB241C771DDB71910067F917 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C351DDB70600067F917 /* Exponentiation.swift */; }; + BB241C781DDB71910067F917 /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C311DDB70600067F917 /* Bitwise Ops.swift */; }; + BB241C791DDB71910067F917 /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3C1DDB70600067F917 /* Shifts.swift */; }; + BB241C7A1DDB71910067F917 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3D1DDB70600067F917 /* Square Root.swift */; }; + BB241C7B1DDB71910067F917 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C361DDB70600067F917 /* GCD.swift */; }; + BB241C7C1DDB71910067F917 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C391DDB70600067F917 /* Prime Test.swift */; }; + BB241C7D1DDB71910067F917 /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3A1DDB70600067F917 /* String Conversion.swift */; }; + BB241C7E1DDB71910067F917 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3B1DDB70600067F917 /* Random.swift */; }; + BB241C831DDB71920067F917 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3F1DDB70600067F917 /* BigUInt.swift */; }; + BB241C841DDB71920067F917 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C321DDB70600067F917 /* Comparable.swift */; }; + BB241C851DDB71920067F917 /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C371DDB70600067F917 /* Hashable.swift */; }; + BB241C861DDB71920067F917 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C331DDB70600067F917 /* Data Conversion.swift */; }; + BB241C871DDB71920067F917 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C301DDB70600067F917 /* Addition.swift */; }; + BB241C881DDB71920067F917 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3E1DDB70600067F917 /* Subtraction.swift */; }; + BB241C891DDB71920067F917 /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C381DDB70600067F917 /* Multiplication.swift */; }; + BB241C8A1DDB71920067F917 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C341DDB70600067F917 /* Division.swift */; }; + BB241C8B1DDB71920067F917 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C351DDB70600067F917 /* Exponentiation.swift */; }; + BB241C8C1DDB71920067F917 /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C311DDB70600067F917 /* Bitwise Ops.swift */; }; + BB241C8D1DDB71920067F917 /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3C1DDB70600067F917 /* Shifts.swift */; }; + BB241C8E1DDB71920067F917 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3D1DDB70600067F917 /* Square Root.swift */; }; + BB241C8F1DDB71920067F917 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C361DDB70600067F917 /* GCD.swift */; }; + BB241C901DDB71920067F917 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C391DDB70600067F917 /* Prime Test.swift */; }; + BB241C911DDB71920067F917 /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3A1DDB70600067F917 /* String Conversion.swift */; }; + BB241C921DDB71920067F917 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3B1DDB70600067F917 /* Random.swift */; }; + BB241C971DDB71920067F917 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3F1DDB70600067F917 /* BigUInt.swift */; }; + BB241C981DDB71920067F917 /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C321DDB70600067F917 /* Comparable.swift */; }; + BB241C991DDB71920067F917 /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C371DDB70600067F917 /* Hashable.swift */; }; + BB241C9A1DDB71920067F917 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C331DDB70600067F917 /* Data Conversion.swift */; }; + BB241C9B1DDB71920067F917 /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C301DDB70600067F917 /* Addition.swift */; }; + BB241C9C1DDB71920067F917 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3E1DDB70600067F917 /* Subtraction.swift */; }; + BB241C9D1DDB71920067F917 /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C381DDB70600067F917 /* Multiplication.swift */; }; + BB241C9E1DDB71920067F917 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C341DDB70600067F917 /* Division.swift */; }; + BB241C9F1DDB71920067F917 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C351DDB70600067F917 /* Exponentiation.swift */; }; + BB241CA01DDB71920067F917 /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C311DDB70600067F917 /* Bitwise Ops.swift */; }; + BB241CA11DDB71920067F917 /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3C1DDB70600067F917 /* Shifts.swift */; }; + BB241CA21DDB71920067F917 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3D1DDB70600067F917 /* Square Root.swift */; }; + BB241CA31DDB71920067F917 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C361DDB70600067F917 /* GCD.swift */; }; + BB241CA41DDB71920067F917 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C391DDB70600067F917 /* Prime Test.swift */; }; + BB241CA51DDB71920067F917 /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3A1DDB70600067F917 /* String Conversion.swift */; }; + BB241CA61DDB71920067F917 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C3B1DDB70600067F917 /* Random.swift */; }; + BB241CBB1DDB71A50067F917 /* ProfileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C5A1DDB70690067F917 /* ProfileTests.swift */; }; + BB241CC51DDB71A60067F917 /* ProfileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C5A1DDB70690067F917 /* ProfileTests.swift */; }; + BB241CCD1DDB71DB0067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CCC1DDB71DB0067F917 /* SipHash.framework */; }; + BB241CCF1DDB71E30067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CCE1DDB71E30067F917 /* SipHash.framework */; }; + BB241CD11DDB71EA0067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CD01DDB71EA0067F917 /* SipHash.framework */; }; + BB241CD31DDB71F20067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CD21DDB71F20067F917 /* SipHash.framework */; }; + BB241CD41DDB78920067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CCE1DDB71E30067F917 /* SipHash.framework */; }; + BB241CD61DDB789D0067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CD51DDB789D0067F917 /* SipHash.framework */; }; + BB241CD81DDB78A30067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CD71DDB78A30067F917 /* SipHash.framework */; }; + BB241CD91DDB78AA0067F917 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB241CCE1DDB71E30067F917 /* SipHash.framework */; }; + BB241CDC1DDB79E20067F917 /* BigUIntTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C571DDB70690067F917 /* BigUIntTests.swift */; }; + BB241CE41DDB79E30067F917 /* BigUIntTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C571DDB70690067F917 /* BigUIntTests.swift */; }; + BB4273F61F24AFCC00065766 /* Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4273F41F24AFC800065766 /* Tools.swift */; }; + BB4273F71F24AFCD00065766 /* Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4273F41F24AFC800065766 /* Tools.swift */; }; + BB4273F81F24AFCD00065766 /* Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4273F41F24AFC800065766 /* Tools.swift */; }; + BB4273F91F24AFCE00065766 /* Tools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4273F41F24AFC800065766 /* Tools.swift */; }; + BB64CD611F1D65D000C1B077 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C2F1DDB70600067F917 /* BigInt.swift */; }; + BB9889A51F3E5C3100014740 /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A41F3E5C3100014740 /* Strideable.swift */; }; + BB9889A61F3E5C3100014740 /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A41F3E5C3100014740 /* Strideable.swift */; }; + BB9889A71F3E5C3100014740 /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A41F3E5C3100014740 /* Strideable.swift */; }; + BB9889A81F3E5C3100014740 /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A41F3E5C3100014740 /* Strideable.swift */; }; + BB9889AA1F3E5CC600014740 /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A91F3E5CC600014740 /* Integer Conversion.swift */; }; + BB9889AB1F3E5CC600014740 /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A91F3E5CC600014740 /* Integer Conversion.swift */; }; + BB9889AC1F3E5CC600014740 /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A91F3E5CC600014740 /* Integer Conversion.swift */; }; + BB9889AD1F3E5CC600014740 /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9889A91F3E5CC600014740 /* Integer Conversion.swift */; }; + BB99168F1F32610700CCFDDC /* BigIntTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C561DDB70690067F917 /* BigIntTests.swift */; }; + BB9916901F32610A00CCFDDC /* BigUIntTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C571DDB70690067F917 /* BigUIntTests.swift */; }; + BB9916911F33C32000CCFDDC /* WordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEAE4DC1F28C37800F4E329 /* WordTests.swift */; }; + BBABCDD21F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD11F3E17A8009CA8BC /* Floating Point Conversion.swift */; }; + BBABCDD31F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD11F3E17A8009CA8BC /* Floating Point Conversion.swift */; }; + BBABCDD41F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD11F3E17A8009CA8BC /* Floating Point Conversion.swift */; }; + BBABCDD51F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD11F3E17A8009CA8BC /* Floating Point Conversion.swift */; }; + BBABCDD71F3E2038009CA8BC /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD61F3E2038009CA8BC /* Words and Bits.swift */; }; + BBABCDD81F3E2038009CA8BC /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD61F3E2038009CA8BC /* Words and Bits.swift */; }; + BBABCDD91F3E2038009CA8BC /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD61F3E2038009CA8BC /* Words and Bits.swift */; }; + BBABCDDA1F3E2038009CA8BC /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBABCDD61F3E2038009CA8BC /* Words and Bits.swift */; }; + BBB55ABD1C8F80020050DDA9 /* BigInt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AB21C8F80020050DDA9 /* BigInt.framework */; }; + BBB55ADE1C8F88F20050DDA9 /* BigInt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AD41C8F88F20050DDA9 /* BigInt.framework */; }; + BBB55B081C8F8CBC0050DDA9 /* BigInt.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AFE1C8F8CBB0050DDA9 /* BigInt.framework */; }; + BBC944371F24C25A00ED6C30 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C2F1DDB70600067F917 /* BigInt.swift */; }; + BBC944381F24C25B00ED6C30 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C2F1DDB70600067F917 /* BigInt.swift */; }; + BBC944391F24C25C00ED6C30 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C2F1DDB70600067F917 /* BigInt.swift */; }; + BBC9443A1F24C27E00ED6C30 /* BigIntTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C561DDB70690067F917 /* BigIntTests.swift */; }; + BBC9443C1F24C27F00ED6C30 /* BigIntTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C561DDB70690067F917 /* BigIntTests.swift */; }; + BBE4CA4E1F3DA5AB0062A281 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE4CA4D1F3DA5AB0062A281 /* Codable.swift */; }; + BBE4CA4F1F3DAD380062A281 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE4CA4D1F3DA5AB0062A281 /* Codable.swift */; }; + BBE4CA501F3DAD390062A281 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE4CA4D1F3DA5AB0062A281 /* Codable.swift */; }; + BBE4CA511F3DAD390062A281 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE4CA4D1F3DA5AB0062A281 /* Codable.swift */; }; + BBEAE4DD1F28C37800F4E329 /* WordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEAE4DC1F28C37800F4E329 /* WordTests.swift */; }; + BBEAE4DF1F28C37800F4E329 /* WordTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBEAE4DC1F28C37800F4E329 /* WordTests.swift */; }; + BBF16BD51F2BA51B00402089 /* ProfileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241C5A1DDB70690067F917 /* ProfileTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + BB241C621DDB70B00067F917 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AD31C8F88F20050DDA9; + remoteInfo = BigInt; + }; + BBB55ABE1C8F80020050DDA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AB11C8F80020050DDA9; + remoteInfo = BigInt; + }; + BBB55ADF1C8F88F20050DDA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AD31C8F88F20050DDA9; + remoteInfo = BigInt; + }; + BBB55B091C8F8CBC0050DDA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AFD1C8F8CBB0050DDA9; + remoteInfo = BigInt; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + BB241BC51DD9F6490067F917 /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; + BB241BC71DD9F7D60067F917 /* BigInt.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = BigInt.podspec; sourceTree = ""; }; + BB241C2F1DDB70600067F917 /* BigInt.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BigInt.swift; sourceTree = ""; }; + BB241C301DDB70600067F917 /* Addition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Addition.swift; sourceTree = ""; }; + BB241C311DDB70600067F917 /* Bitwise Ops.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Bitwise Ops.swift"; sourceTree = ""; }; + BB241C321DDB70600067F917 /* Comparable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Comparable.swift; sourceTree = ""; }; + BB241C331DDB70600067F917 /* Data Conversion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data Conversion.swift"; sourceTree = ""; }; + BB241C341DDB70600067F917 /* Division.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Division.swift; sourceTree = ""; }; + BB241C351DDB70600067F917 /* Exponentiation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Exponentiation.swift; sourceTree = ""; }; + BB241C361DDB70600067F917 /* GCD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GCD.swift; sourceTree = ""; }; + BB241C371DDB70600067F917 /* Hashable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Hashable.swift; sourceTree = ""; }; + BB241C381DDB70600067F917 /* Multiplication.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Multiplication.swift; sourceTree = ""; }; + BB241C391DDB70600067F917 /* Prime Test.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Prime Test.swift"; sourceTree = ""; }; + BB241C3A1DDB70600067F917 /* String Conversion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String Conversion.swift"; sourceTree = ""; }; + BB241C3B1DDB70600067F917 /* Random.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Random.swift; sourceTree = ""; }; + BB241C3C1DDB70600067F917 /* Shifts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Shifts.swift; sourceTree = ""; }; + BB241C3D1DDB70600067F917 /* Square Root.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Square Root.swift"; sourceTree = ""; }; + BB241C3E1DDB70600067F917 /* Subtraction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subtraction.swift; sourceTree = ""; }; + BB241C3F1DDB70600067F917 /* BigUInt.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BigUInt.swift; sourceTree = ""; }; + BB241C561DDB70690067F917 /* BigIntTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BigIntTests.swift; sourceTree = ""; }; + BB241C571DDB70690067F917 /* BigUIntTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BigUIntTests.swift; sourceTree = ""; }; + BB241C5A1DDB70690067F917 /* ProfileTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProfileTests.swift; sourceTree = ""; }; + BB241C6A1DDB70B00067F917 /* BigInt Benchmark.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BigInt Benchmark.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BB241CCC1DDB71DB0067F917 /* SipHash.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SipHash.framework; path = "Carthage/Checkouts/SipHash/build/Debug-iphoneos/SipHash.framework"; sourceTree = ""; }; + BB241CCE1DDB71E30067F917 /* SipHash.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SipHash.framework; path = "../../Library/Developer/Xcode/DerivedData/BigInt-aibydghxjcolwocpvmpgshvylvps/Build/Products/Debug/SipHash.framework"; sourceTree = ""; }; + BB241CD01DDB71EA0067F917 /* SipHash.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SipHash.framework; path = "Carthage/Checkouts/SipHash/build/Debug-watchos/SipHash.framework"; sourceTree = ""; }; + BB241CD21DDB71F20067F917 /* SipHash.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SipHash.framework; path = "Carthage/Checkouts/SipHash/build/Debug-appletvos/SipHash.framework"; sourceTree = ""; }; + BB241CD51DDB789D0067F917 /* SipHash.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SipHash.framework; path = "Carthage/Checkouts/SipHash/build/Debug-iphoneos/SipHash.framework"; sourceTree = ""; }; + BB241CD71DDB78A30067F917 /* SipHash.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SipHash.framework; path = "Carthage/Checkouts/SipHash/build/Debug-appletvos/SipHash.framework"; sourceTree = ""; }; + BB241CE81DDB7B620067F917 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; }; + BB241CE91DDB7B620067F917 /* Demo.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Demo.playground; sourceTree = ""; }; + BB241CEA1DDB7B620067F917 /* generate-docs.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "generate-docs.sh"; sourceTree = ""; }; + BB241CEB1DDB7B620067F917 /* Cartfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cartfile; sourceTree = ""; }; + BB241CF01DDB84210067F917 /* .codecov.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .codecov.yml; sourceTree = ""; }; + BB4273F41F24AFC800065766 /* Tools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tools.swift; sourceTree = ""; }; + BB9889A41F3E5C3100014740 /* Strideable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Strideable.swift; sourceTree = ""; }; + BB9889A91F3E5CC600014740 /* Integer Conversion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Integer Conversion.swift"; sourceTree = ""; }; + BBABCDD11F3E17A8009CA8BC /* Floating Point Conversion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Floating Point Conversion.swift"; sourceTree = ""; }; + BBABCDD61F3E2038009CA8BC /* Words and Bits.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Words and Bits.swift"; sourceTree = ""; }; + BBB55AB21C8F80020050DDA9 /* BigInt.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BigInt.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AB71C8F80020050DDA9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BBB55ABC1C8F80020050DDA9 /* BigInt-Test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BigInt-Test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AC31C8F80020050DDA9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BBB55ACC1C8F80660050DDA9 /* version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = version.xcconfig; sourceTree = ""; }; + BBB55AD41C8F88F20050DDA9 /* BigInt.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BigInt.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55ADD1C8F88F20050DDA9 /* BigInt-Test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BigInt-Test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AF11C8F8BE00050DDA9 /* BigInt.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BigInt.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AFE1C8F8CBB0050DDA9 /* BigInt.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BigInt.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55B071C8F8CBB0050DDA9 /* BigInt-Test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "BigInt-Test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55B1C1C8F90F60050DDA9 /* .travis.yml */ = {isa = PBXFileReference; lastKnownFileType = text; path = .travis.yml; sourceTree = ""; }; + BBB55B1D1C8F9E850050DDA9 /* LICENSE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE.md; sourceTree = ""; }; + BBB55B1E1C8F9E920050DDA9 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + BBE4CA4D1F3DA5AB0062A281 /* Codable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Codable.swift; sourceTree = ""; }; + BBEAE4DC1F28C37800F4E329 /* WordTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordTests.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BB241C641DDB70B00067F917 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CD91DDB78AA0067F917 /* SipHash.framework in Frameworks */, + BB241C651DDB70B00067F917 /* BigInt.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AAE1C8F80020050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CCD1DDB71DB0067F917 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AB91C8F80020050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CD61DDB789D0067F917 /* SipHash.framework in Frameworks */, + BBB55ABD1C8F80020050DDA9 /* BigInt.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD01C8F88F20050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CCF1DDB71E30067F917 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ADA1C8F88F20050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CD41DDB78920067F917 /* SipHash.framework in Frameworks */, + BBB55ADE1C8F88F20050DDA9 /* BigInt.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AED1C8F8BE00050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CD11DDB71EA0067F917 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AFA1C8F8CBB0050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CD31DDB71F20067F917 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55B041C8F8CBB0050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CD81DDB78A30067F917 /* SipHash.framework in Frameworks */, + BBB55B081C8F8CBC0050DDA9 /* BigInt.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + BB241CCB1DDB71DB0067F917 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BB241CD71DDB78A30067F917 /* SipHash.framework */, + BB241CD51DDB789D0067F917 /* SipHash.framework */, + BB241CD21DDB71F20067F917 /* SipHash.framework */, + BB241CD01DDB71EA0067F917 /* SipHash.framework */, + BB241CCE1DDB71E30067F917 /* SipHash.framework */, + BB241CCC1DDB71DB0067F917 /* SipHash.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + BBB55AA81C8F80020050DDA9 = { + isa = PBXGroup; + children = ( + BBB55B1E1C8F9E920050DDA9 /* README.md */, + BBB55B1D1C8F9E850050DDA9 /* LICENSE.md */, + BB241CE81DDB7B620067F917 /* CHANGELOG.md */, + BB241BC51DD9F6490067F917 /* Package.swift */, + BB241BC71DD9F7D60067F917 /* BigInt.podspec */, + BB241CEB1DDB7B620067F917 /* Cartfile */, + BBB55B1C1C8F90F60050DDA9 /* .travis.yml */, + BB241CF01DDB84210067F917 /* .codecov.yml */, + BBB55ACC1C8F80660050DDA9 /* version.xcconfig */, + BB241CEA1DDB7B620067F917 /* generate-docs.sh */, + BB241CE91DDB7B620067F917 /* Demo.playground */, + BBB55AB41C8F80020050DDA9 /* Sources */, + BBB55AC01C8F80020050DDA9 /* Tests */, + BBB55AB31C8F80020050DDA9 /* Products */, + BB241CCB1DDB71DB0067F917 /* Frameworks */, + ); + sourceTree = ""; + }; + BBB55AB31C8F80020050DDA9 /* Products */ = { + isa = PBXGroup; + children = ( + BBB55AB21C8F80020050DDA9 /* BigInt.framework */, + BBB55ABC1C8F80020050DDA9 /* BigInt-Test.xctest */, + BBB55AD41C8F88F20050DDA9 /* BigInt.framework */, + BBB55ADD1C8F88F20050DDA9 /* BigInt-Test.xctest */, + BBB55AF11C8F8BE00050DDA9 /* BigInt.framework */, + BBB55AFE1C8F8CBB0050DDA9 /* BigInt.framework */, + BBB55B071C8F8CBB0050DDA9 /* BigInt-Test.xctest */, + BB241C6A1DDB70B00067F917 /* BigInt Benchmark.xctest */, + ); + name = Products; + sourceTree = ""; + }; + BBB55AB41C8F80020050DDA9 /* Sources */ = { + isa = PBXGroup; + children = ( + BB241C3F1DDB70600067F917 /* BigUInt.swift */, + BB241C2F1DDB70600067F917 /* BigInt.swift */, + BBABCDD61F3E2038009CA8BC /* Words and Bits.swift */, + BB9889A91F3E5CC600014740 /* Integer Conversion.swift */, + BBABCDD11F3E17A8009CA8BC /* Floating Point Conversion.swift */, + BB241C3A1DDB70600067F917 /* String Conversion.swift */, + BB241C331DDB70600067F917 /* Data Conversion.swift */, + BB241C321DDB70600067F917 /* Comparable.swift */, + BB241C371DDB70600067F917 /* Hashable.swift */, + BBE4CA4D1F3DA5AB0062A281 /* Codable.swift */, + BB241C301DDB70600067F917 /* Addition.swift */, + BB241C3E1DDB70600067F917 /* Subtraction.swift */, + BB9889A41F3E5C3100014740 /* Strideable.swift */, + BB241C381DDB70600067F917 /* Multiplication.swift */, + BB241C341DDB70600067F917 /* Division.swift */, + BB241C351DDB70600067F917 /* Exponentiation.swift */, + BB241C311DDB70600067F917 /* Bitwise Ops.swift */, + BB241C3C1DDB70600067F917 /* Shifts.swift */, + BB241C3D1DDB70600067F917 /* Square Root.swift */, + BB241C361DDB70600067F917 /* GCD.swift */, + BB241C391DDB70600067F917 /* Prime Test.swift */, + BB241C3B1DDB70600067F917 /* Random.swift */, + BBB55AB71C8F80020050DDA9 /* Info.plist */, + ); + name = Sources; + path = sources; + sourceTree = ""; + }; + BBB55AC01C8F80020050DDA9 /* Tests */ = { + isa = PBXGroup; + children = ( + BB241C561DDB70690067F917 /* BigIntTests.swift */, + BB241C571DDB70690067F917 /* BigUIntTests.swift */, + BBEAE4DC1F28C37800F4E329 /* WordTests.swift */, + BB241C5A1DDB70690067F917 /* ProfileTests.swift */, + BB4273F41F24AFC800065766 /* Tools.swift */, + BBB55AC31C8F80020050DDA9 /* Info.plist */, + ); + name = Tests; + path = tests/BigIntTests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + BBB55AAF1C8F80020050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD11C8F88F20050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AEE1C8F8BE00050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AFB1C8F8CBB0050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + BB241C601DDB70B00067F917 /* BigInt Benchmark */ = { + isa = PBXNativeTarget; + buildConfigurationList = BB241C671DDB70B00067F917 /* Build configuration list for PBXNativeTarget "BigInt Benchmark" */; + buildPhases = ( + BB241C631DDB70B00067F917 /* Sources */, + BB241C641DDB70B00067F917 /* Frameworks */, + BB241C661DDB70B00067F917 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BB241C611DDB70B00067F917 /* PBXTargetDependency */, + ); + name = "BigInt Benchmark"; + productName = BigIntTests; + productReference = BB241C6A1DDB70B00067F917 /* BigInt Benchmark.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + BBB55AB11C8F80020050DDA9 /* BigInt-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AC61C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-iOS" */; + buildPhases = ( + BBB55AAD1C8F80020050DDA9 /* Sources */, + BBB55AAE1C8F80020050DDA9 /* Frameworks */, + BBB55AAF1C8F80020050DDA9 /* Headers */, + BBB55AB01C8F80020050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "BigInt-iOS"; + productName = BigInt; + productReference = BBB55AB21C8F80020050DDA9 /* BigInt.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55ABB1C8F80020050DDA9 /* BigInt iOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AC91C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "BigInt iOS Tests" */; + buildPhases = ( + BBB55AB81C8F80020050DDA9 /* Sources */, + BBB55AB91C8F80020050DDA9 /* Frameworks */, + BBB55ABA1C8F80020050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BBB55ABF1C8F80020050DDA9 /* PBXTargetDependency */, + ); + name = "BigInt iOS Tests"; + productName = BigIntTests; + productReference = BBB55ABC1C8F80020050DDA9 /* BigInt-Test.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + BBB55AD31C8F88F20050DDA9 /* BigInt-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AE51C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-macOS" */; + buildPhases = ( + BBB55ACF1C8F88F20050DDA9 /* Sources */, + BBB55AD01C8F88F20050DDA9 /* Frameworks */, + BBB55AD11C8F88F20050DDA9 /* Headers */, + BBB55AD21C8F88F20050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "BigInt-macOS"; + productName = BigInt; + productReference = BBB55AD41C8F88F20050DDA9 /* BigInt.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55ADC1C8F88F20050DDA9 /* BigInt macOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AE81C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "BigInt macOS Tests" */; + buildPhases = ( + BBB55AD91C8F88F20050DDA9 /* Sources */, + BBB55ADA1C8F88F20050DDA9 /* Frameworks */, + BBB55ADB1C8F88F20050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BBB55AE01C8F88F20050DDA9 /* PBXTargetDependency */, + ); + name = "BigInt macOS Tests"; + productName = BigIntTests; + productReference = BBB55ADD1C8F88F20050DDA9 /* BigInt-Test.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + BBB55AF01C8F8BE00050DDA9 /* BigInt-watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AF61C8F8BE00050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-watchOS" */; + buildPhases = ( + BBB55AEC1C8F8BE00050DDA9 /* Sources */, + BBB55AED1C8F8BE00050DDA9 /* Frameworks */, + BBB55AEE1C8F8BE00050DDA9 /* Headers */, + BBB55AEF1C8F8BE00050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "BigInt-watchOS"; + productName = BigInt; + productReference = BBB55AF11C8F8BE00050DDA9 /* BigInt.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55AFD1C8F8CBB0050DDA9 /* BigInt-tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55B0F1C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-tvOS" */; + buildPhases = ( + BBB55AF91C8F8CBB0050DDA9 /* Sources */, + BBB55AFA1C8F8CBB0050DDA9 /* Frameworks */, + BBB55AFB1C8F8CBB0050DDA9 /* Headers */, + BBB55AFC1C8F8CBB0050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "BigInt-tvOS"; + productName = BigInt; + productReference = BBB55AFE1C8F8CBB0050DDA9 /* BigInt.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55B061C8F8CBB0050DDA9 /* BigInt tvOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55B121C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "BigInt tvOS Tests" */; + buildPhases = ( + BBB55B031C8F8CBB0050DDA9 /* Sources */, + BBB55B041C8F8CBB0050DDA9 /* Frameworks */, + BBB55B051C8F8CBB0050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BBB55B0A1C8F8CBC0050DDA9 /* PBXTargetDependency */, + ); + name = "BigInt tvOS Tests"; + productName = BigIntTests; + productReference = BBB55B071C8F8CBB0050DDA9 /* BigInt-Test.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BBB55AA91C8F80020050DDA9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0900; + ORGANIZATIONNAME = "Károly Lőrentey"; + TargetAttributes = { + BBB55AB11C8F80020050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0810; + }; + BBB55ABB1C8F80020050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0800; + }; + BBB55AD31C8F88F20050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0900; + }; + BBB55ADC1C8F88F20050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0900; + }; + BBB55AF01C8F8BE00050DDA9 = { + CreatedOnToolsVersion = 7.3; + }; + BBB55AFD1C8F8CBB0050DDA9 = { + CreatedOnToolsVersion = 7.3; + }; + BBB55B061C8F8CBB0050DDA9 = { + CreatedOnToolsVersion = 7.3; + }; + }; + }; + buildConfigurationList = BBB55AAC1C8F80020050DDA9 /* Build configuration list for PBXProject "BigInt" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = BBB55AA81C8F80020050DDA9; + productRefGroup = BBB55AB31C8F80020050DDA9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BBB55AB11C8F80020050DDA9 /* BigInt-iOS */, + BBB55AD31C8F88F20050DDA9 /* BigInt-macOS */, + BBB55AF01C8F8BE00050DDA9 /* BigInt-watchOS */, + BBB55AFD1C8F8CBB0050DDA9 /* BigInt-tvOS */, + BBB55ABB1C8F80020050DDA9 /* BigInt iOS Tests */, + BBB55ADC1C8F88F20050DDA9 /* BigInt macOS Tests */, + BBB55B061C8F8CBB0050DDA9 /* BigInt tvOS Tests */, + BB241C601DDB70B00067F917 /* BigInt Benchmark */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BB241C661DDB70B00067F917 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AB01C8F80020050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ABA1C8F80020050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD21C8F88F20050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ADB1C8F88F20050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AEF1C8F8BE00050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AFC1C8F8CBB0050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55B051C8F8CBB0050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BB241C631DDB70B00067F917 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB4273F91F24AFCE00065766 /* Tools.swift in Sources */, + BBF16BD51F2BA51B00402089 /* ProfileTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AAD1C8F80020050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241C441DDB70600067F917 /* Addition.swift in Sources */, + BB241C531DDB70600067F917 /* BigUInt.swift in Sources */, + BB241C4F1DDB70600067F917 /* Random.swift in Sources */, + BBABCDD71F3E2038009CA8BC /* Words and Bits.swift in Sources */, + BBC944391F24C25C00ED6C30 /* BigInt.swift in Sources */, + BB241C4D1DDB70600067F917 /* Prime Test.swift in Sources */, + BBABCDD21F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */, + BB241C4B1DDB70600067F917 /* Hashable.swift in Sources */, + BB241C4A1DDB70600067F917 /* GCD.swift in Sources */, + BB9889AA1F3E5CC600014740 /* Integer Conversion.swift in Sources */, + BB241C4E1DDB70600067F917 /* String Conversion.swift in Sources */, + BB241C481DDB70600067F917 /* Division.swift in Sources */, + BB241C501DDB70600067F917 /* Shifts.swift in Sources */, + BB241C521DDB70600067F917 /* Subtraction.swift in Sources */, + BB241C4C1DDB70600067F917 /* Multiplication.swift in Sources */, + BB9889A51F3E5C3100014740 /* Strideable.swift in Sources */, + BB241C511DDB70600067F917 /* Square Root.swift in Sources */, + BB241C471DDB70600067F917 /* Data Conversion.swift in Sources */, + BB241C461DDB70600067F917 /* Comparable.swift in Sources */, + BBE4CA4E1F3DA5AB0062A281 /* Codable.swift in Sources */, + BB241C491DDB70600067F917 /* Exponentiation.swift in Sources */, + BB241C451DDB70600067F917 /* Bitwise Ops.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AB81C8F80020050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BBC9443A1F24C27E00ED6C30 /* BigIntTests.swift in Sources */, + BB241CBB1DDB71A50067F917 /* ProfileTests.swift in Sources */, + BB4273F61F24AFCC00065766 /* Tools.swift in Sources */, + BBEAE4DD1F28C37800F4E329 /* WordTests.swift in Sources */, + BB241CE41DDB79E30067F917 /* BigUIntTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ACF1C8F88F20050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241C8C1DDB71920067F917 /* Bitwise Ops.swift in Sources */, + BB241C921DDB71920067F917 /* Random.swift in Sources */, + BB241C901DDB71920067F917 /* Prime Test.swift in Sources */, + BBABCDD81F3E2038009CA8BC /* Words and Bits.swift in Sources */, + BB64CD611F1D65D000C1B077 /* BigInt.swift in Sources */, + BB241C851DDB71920067F917 /* Hashable.swift in Sources */, + BBABCDD31F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */, + BB241C881DDB71920067F917 /* Subtraction.swift in Sources */, + BB241C8A1DDB71920067F917 /* Division.swift in Sources */, + BB9889AB1F3E5CC600014740 /* Integer Conversion.swift in Sources */, + BB241C831DDB71920067F917 /* BigUInt.swift in Sources */, + BB241C841DDB71920067F917 /* Comparable.swift in Sources */, + BB241C911DDB71920067F917 /* String Conversion.swift in Sources */, + BB241C861DDB71920067F917 /* Data Conversion.swift in Sources */, + BB241C891DDB71920067F917 /* Multiplication.swift in Sources */, + BB9889A61F3E5C3100014740 /* Strideable.swift in Sources */, + BB241C8D1DDB71920067F917 /* Shifts.swift in Sources */, + BB241C8F1DDB71920067F917 /* GCD.swift in Sources */, + BB241C8E1DDB71920067F917 /* Square Root.swift in Sources */, + BBE4CA4F1F3DAD380062A281 /* Codable.swift in Sources */, + BB241C8B1DDB71920067F917 /* Exponentiation.swift in Sources */, + BB241C871DDB71920067F917 /* Addition.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD91C8F88F20050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB4273F71F24AFCD00065766 /* Tools.swift in Sources */, + BB9916911F33C32000CCFDDC /* WordTests.swift in Sources */, + BB9916901F32610A00CCFDDC /* BigUIntTests.swift in Sources */, + BB99168F1F32610700CCFDDC /* BigIntTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AEC1C8F8BE00050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241C781DDB71910067F917 /* Bitwise Ops.swift in Sources */, + BB241C7E1DDB71910067F917 /* Random.swift in Sources */, + BB241C7C1DDB71910067F917 /* Prime Test.swift in Sources */, + BBABCDD91F3E2038009CA8BC /* Words and Bits.swift in Sources */, + BBC944371F24C25A00ED6C30 /* BigInt.swift in Sources */, + BB241C711DDB71910067F917 /* Hashable.swift in Sources */, + BBABCDD41F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */, + BB241C741DDB71910067F917 /* Subtraction.swift in Sources */, + BB241C761DDB71910067F917 /* Division.swift in Sources */, + BB9889AC1F3E5CC600014740 /* Integer Conversion.swift in Sources */, + BB241C6F1DDB71910067F917 /* BigUInt.swift in Sources */, + BB241C701DDB71910067F917 /* Comparable.swift in Sources */, + BB241C7D1DDB71910067F917 /* String Conversion.swift in Sources */, + BB241C721DDB71910067F917 /* Data Conversion.swift in Sources */, + BB241C751DDB71910067F917 /* Multiplication.swift in Sources */, + BB9889A71F3E5C3100014740 /* Strideable.swift in Sources */, + BB241C791DDB71910067F917 /* Shifts.swift in Sources */, + BB241C7B1DDB71910067F917 /* GCD.swift in Sources */, + BB241C7A1DDB71910067F917 /* Square Root.swift in Sources */, + BBE4CA501F3DAD390062A281 /* Codable.swift in Sources */, + BB241C771DDB71910067F917 /* Exponentiation.swift in Sources */, + BB241C731DDB71910067F917 /* Addition.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AF91C8F8CBB0050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241CA01DDB71920067F917 /* Bitwise Ops.swift in Sources */, + BB241CA61DDB71920067F917 /* Random.swift in Sources */, + BB241CA41DDB71920067F917 /* Prime Test.swift in Sources */, + BBABCDDA1F3E2038009CA8BC /* Words and Bits.swift in Sources */, + BBC944381F24C25B00ED6C30 /* BigInt.swift in Sources */, + BB241C991DDB71920067F917 /* Hashable.swift in Sources */, + BBABCDD51F3E17A8009CA8BC /* Floating Point Conversion.swift in Sources */, + BB241C9C1DDB71920067F917 /* Subtraction.swift in Sources */, + BB241C9E1DDB71920067F917 /* Division.swift in Sources */, + BB9889AD1F3E5CC600014740 /* Integer Conversion.swift in Sources */, + BB241C971DDB71920067F917 /* BigUInt.swift in Sources */, + BB241C981DDB71920067F917 /* Comparable.swift in Sources */, + BB241CA51DDB71920067F917 /* String Conversion.swift in Sources */, + BB241C9A1DDB71920067F917 /* Data Conversion.swift in Sources */, + BB241C9D1DDB71920067F917 /* Multiplication.swift in Sources */, + BB9889A81F3E5C3100014740 /* Strideable.swift in Sources */, + BB241CA11DDB71920067F917 /* Shifts.swift in Sources */, + BB241CA31DDB71920067F917 /* GCD.swift in Sources */, + BB241CA21DDB71920067F917 /* Square Root.swift in Sources */, + BBE4CA511F3DAD390062A281 /* Codable.swift in Sources */, + BB241C9F1DDB71920067F917 /* Exponentiation.swift in Sources */, + BB241C9B1DDB71920067F917 /* Addition.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55B031C8F8CBB0050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BBC9443C1F24C27F00ED6C30 /* BigIntTests.swift in Sources */, + BB241CC51DDB71A60067F917 /* ProfileTests.swift in Sources */, + BB4273F81F24AFCD00065766 /* Tools.swift in Sources */, + BBEAE4DF1F28C37800F4E329 /* WordTests.swift in Sources */, + BB241CDC1DDB79E20067F917 /* BigUIntTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + BB241C611DDB70B00067F917 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AD31C8F88F20050DDA9 /* BigInt-macOS */; + targetProxy = BB241C621DDB70B00067F917 /* PBXContainerItemProxy */; + }; + BBB55ABF1C8F80020050DDA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AB11C8F80020050DDA9 /* BigInt-iOS */; + targetProxy = BBB55ABE1C8F80020050DDA9 /* PBXContainerItemProxy */; + }; + BBB55AE01C8F88F20050DDA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AD31C8F88F20050DDA9 /* BigInt-macOS */; + targetProxy = BBB55ADF1C8F88F20050DDA9 /* PBXContainerItemProxy */; + }; + BBB55B0A1C8F8CBC0050DDA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AFD1C8F8CBB0050DDA9 /* BigInt-tvOS */; + targetProxy = BBB55B091C8F8CBC0050DDA9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + BB241C681DDB70B00067F917 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + BB241C691DDB70B00067F917 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Release; + }; + BBB55AC41C8F80020050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BBB55ACC1C8F80660050DDA9 /* version.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_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_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; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(BUILD_NUMBER)"; + DEBUG_INFORMATION_FORMAT = dwarf; + DYLIB_COMPATIBILITY_VERSION = "$(BUILD_NUMBER)"; + DYLIB_CURRENT_VERSION = "$(BUILD_NUMBER)"; + 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; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_SWIFT_FLAGS = "-DDebug"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + BBB55AC51C8F80020050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BBB55ACC1C8F80660050DDA9 /* version.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_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_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; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(BUILD_NUMBER)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_COMPATIBILITY_VERSION = "$(BUILD_NUMBER)"; + DYLIB_CURRENT_VERSION = "$(BUILD_NUMBER)"; + 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; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_SWIFT_FLAGS = "-DProfile"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BBB55AC71C8F80020050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + BBB55AC81C8F80020050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + BBB55ACA1C8F80020050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + INFOPLIST_FILE = Tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = iphoneos; + }; + name = Debug; + }; + BBB55ACB1C8F80020050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + INFOPLIST_FILE = Tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = iphoneos; + }; + name = Release; + }; + BBB55AE61C8F88F20050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + BBB55AE71C8F88F20050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + BBB55AE91C8F88F20050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = macosx; + }; + name = Debug; + }; + BBB55AEA1C8F88F20050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = macosx; + }; + name = Release; + }; + BBB55AF71C8F8BE00050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 4; + }; + name = Debug; + }; + BBB55AF81C8F8BE00050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = Release; + }; + BBB55B101C8F8CBC0050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Debug; + }; + BBB55B111C8F8CBC0050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Sources/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Release; + }; + BBB55B131C8F8CBC0050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = appletvos; + }; + name = Debug; + }; + BBB55B141C8F8CBC0050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = Tests/BigIntTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = appletvos; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + BB241C671DDB70B00067F917 /* Build configuration list for PBXNativeTarget "BigInt Benchmark" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BB241C681DDB70B00067F917 /* Debug */, + BB241C691DDB70B00067F917 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AAC1C8F80020050DDA9 /* Build configuration list for PBXProject "BigInt" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AC41C8F80020050DDA9 /* Debug */, + BBB55AC51C8F80020050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AC61C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AC71C8F80020050DDA9 /* Debug */, + BBB55AC81C8F80020050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AC91C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "BigInt iOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55ACA1C8F80020050DDA9 /* Debug */, + BBB55ACB1C8F80020050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AE51C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AE61C8F88F20050DDA9 /* Debug */, + BBB55AE71C8F88F20050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AE81C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "BigInt macOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AE91C8F88F20050DDA9 /* Debug */, + BBB55AEA1C8F88F20050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AF61C8F8BE00050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AF71C8F8BE00050DDA9 /* Debug */, + BBB55AF81C8F8BE00050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55B0F1C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "BigInt-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55B101C8F8CBC0050DDA9 /* Debug */, + BBB55B111C8F8CBC0050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55B121C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "BigInt tvOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55B131C8F8CBC0050DDA9 /* Debug */, + BBB55B141C8F8CBC0050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BBB55AA91C8F80020050DDA9 /* Project object */; +} diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..0713bb13e --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/3714311D-5102-4569-B213-8DC87DC6C2F3.plist b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/3714311D-5102-4569-B213-8DC87DC6C2F3.plist new file mode 100644 index 000000000..096fe76f8 --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/3714311D-5102-4569-B213-8DC87DC6C2F3.plist @@ -0,0 +1,92 @@ + + + + + classNames + + ProfileTests + + testBalancedMultiplication() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.41604 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testDivision() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.70161 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testFibonacciAddition() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 2.3569 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testGCD() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 1.801 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testMersennePrimes() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 4.184 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testModularExponentiation() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 2.1938 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testMultiplicationByDigit() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.91891 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + testSquareRoot() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.48118 + baselineIntegrationDisplayName + 2016-11-15 18:19:04 + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/3B06D4DF-FC61-43AE-8115-CA5059B5AB1B.plist b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/3B06D4DF-FC61-43AE-8115-CA5059B5AB1B.plist new file mode 100644 index 000000000..d1b347466 --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/3B06D4DF-FC61-43AE-8115-CA5059B5AB1B.plist @@ -0,0 +1,92 @@ + + + + + classNames + + ProfileTests + + testBalancedMultiplication() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.31603 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testDivision() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.60765 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testFibonacciAddition() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 2.0927 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testGCD() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 1.3631 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testMersennePrimes() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 3.4959 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testModularExponentiation() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 1.7139 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testMultiplicationByDigit() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.60397 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + testSquareRoot() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.40256 + baselineIntegrationDisplayName + Jun 21, 2017, 5:03:36 PM + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/E75E9014-DB8C-4424-B05B-83660CCFB7ED.plist b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/E75E9014-DB8C-4424-B05B-83660CCFB7ED.plist new file mode 100644 index 000000000..bf59955f7 --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/E75E9014-DB8C-4424-B05B-83660CCFB7ED.plist @@ -0,0 +1,122 @@ + + + + + classNames + + ProfileTests + + testBalancedFactorial() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.33337 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testDivision() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.59507 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testDivisionOfFactorial() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 3.6987 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testFactorial() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.66551 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testFibonacciAddition() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 2.0881 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testGCD() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 1.3696 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testMersennePrimes() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 3.71 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testModularExponentiation() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 1.8318 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testPrintingFactorial() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.95106 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testReadingFactorial() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.48879 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + testSquareRoot() + + com.apple.XCTPerformanceMetric_WallClockTime + + baselineAverage + 0.45393 + baselineIntegrationDisplayName + Jul 23, 2017, 12:47:59 + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/Info.plist b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/Info.plist new file mode 100644 index 000000000..3d624f11a --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcbaselines/BB241C601DDB70B00067F917.xcbaseline/Info.plist @@ -0,0 +1,57 @@ + + + + + runDestinationsByUUID + + 3714311D-5102-4569-B213-8DC87DC6C2F3 + + localComputer + + busSpeedInMHz + 100 + cpuCount + 1 + cpuKind + Intel Core i7 + cpuSpeedInMHz + 2600 + logicalCPUCoresPerPackage + 8 + modelCode + MacBookPro10,1 + physicalCPUCoresPerPackage + 4 + platformIdentifier + com.apple.platform.macosx + + targetArchitecture + x86_64 + + E75E9014-DB8C-4424-B05B-83660CCFB7ED + + localComputer + + busSpeedInMHz + 100 + cpuCount + 1 + cpuKind + Intel Core i7 + cpuSpeedInMHz + 2900 + logicalCPUCoresPerPackage + 8 + modelCode + MacBookPro14,3 + physicalCPUCoresPerPackage + 4 + platformIdentifier + com.apple.platform.macosx + + targetArchitecture + x86_64 + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt Benchmark.xcscheme b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt Benchmark.xcscheme new file mode 100644 index 000000000..a764a4bb9 --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt Benchmark.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-iOS.xcscheme b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-iOS.xcscheme new file mode 100644 index 000000000..6e91a80bf --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-iOS.xcscheme @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-macOS.xcscheme b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-macOS.xcscheme new file mode 100644 index 000000000..0204bfade --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-macOS.xcscheme @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-tvOS.xcscheme b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-tvOS.xcscheme new file mode 100644 index 000000000..1f361515d --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-tvOS.xcscheme @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-watchOS.xcscheme b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-watchOS.xcscheme new file mode 100644 index 000000000..b252bdcea --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcodeproj/xcshareddata/xcschemes/BigInt-watchOS.xcscheme @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/BigInt.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/BigInt/BigInt.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..f9fc2790d --- /dev/null +++ b/Carthage/Checkouts/BigInt/BigInt.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Carthage/Checkouts/BigInt/CHANGELOG.md b/Carthage/Checkouts/BigInt/CHANGELOG.md new file mode 100644 index 000000000..7512909be --- /dev/null +++ b/Carthage/Checkouts/BigInt/CHANGELOG.md @@ -0,0 +1,181 @@ +# 3.1.0 (2018-06-08) + +This release contains the following changes: + +- Swift 4.1 compatibility for Linux and macOS +- Fix warnings for Swift 4.1 + +There were no functional changes. + +# 3.0.2 (2017-12-25) + +This release contains the following packaging fix: + +- Fixed product definitions in Package.swift not to create a duplicate library. (Issue #37) + +There were no functional changes. + +# 3.0.1 (2017-10-10) + +This release contains the following bug fixes: + +- Issue #27 — changing scope of `BigUInt` methods `kind` and `storage` to be `fileprivate` +- Making `subscript` method of `BigUInt` public + +# 3.0.0 (2017-09-07) + +This is a major release upgrading BigInt to the new integer protocols introduced in Swift 4 as part of [SE-0104, Protocol-oriented integers][se-0104]. + +[se-0104]: https://github.com/apple/swift-evolution/blob/master/proposals/0104-improved-integers.md + +- Adopting the new protocols involved major, breaking changes throughout the API. These aren't individually listed here. +- The `BigUInt` struct now provides inline storage for big integers that fit inside two words. This optimization speeds up conversions from built-in fixed-width integer types, amongst other frequent operations. +- `BigInt` and `BigUInt` implements the new `Codable` protocol. In both cases, values are encoded in an unkeyed container starting with a string indicating the sign (`"+"` or `"-"`), followed by a sequence of 64-bit unsigned integers representing component words, from least to most significant. +- New method: `BigInt.modulo`, contributed by @FabioTacke. +- `BigUInt` does not implement `Collection` in this release. The collection of words is available in the standard read-only `words` property. Direct public access to collection methods have been removed; if you have been manipulating big integers using collection methods, you need to rewrite your code. If you have a usecase that isn't covered by the public API, please submit a PR adding the missing functionality. (Public read-write access to the underlying storage inside `BigUInt` will not be restored, though.) + +BigInt is now part of the Attaswift project. The bundle identifiers in the supplied Xcode project have been updated accordingly. + +Note that the URL for the package's Git repository has changed; please update your references. + +# 2.2.0 (2017-06-20) + +This release contains the following changes: + +- `BigUInt.randomIntegerLessThan(_:)` was renamed to `BigUInt.randomInteger(lessThan:)` to match Swift 3 naming conventions. (The old name is still available for compatibility.) +- The `ShiftOperations` protocol was merged into `BigDigit` and removed. It was previously public by accident. (Issue #9) +- `BigInt.modulus(_:,_:)` is a new static method that returns the nonnegative modulus value of its two arguments. (PR #19 by @FabioTacke) + + +# 2.1.2 (2017-02-03) + +This release contains the following bugfix: + +- Issue #12: The iOS target in the supplied Xcode project file no longer copies extraneous files + as resources into the framework bundle. The set of such files included generate-docs.sh, which + led to App Store rejections for apps that build BigInt using the project file. + (Thanks to @arrrnas and @wuftymerguftyguff) + +No source-level changes were made. + +# 2.1.1 (2016-11-23) + +This release restores support for iOS 8.0 and macOS 10.9. + +# 2.1.0 (2016-11-15) + +This release contains the following changes: + +- BigInt now uses the SipHash hashing algorithm instead of implementing its own hashing. +- The `SipHash` package has been added as a required dependency. I suggest you use a dependency manager. +- Minimum deployment targets have been bumped to iOS 9.0 and macOS 10.0 to match those of `SipHash`. +- BigInt now requires Swift 3.0.1, included in Xcode 8.1. +- The Xcode project file has been regenerated from scratch, with new names for targets and schemes. +- The bundle identifiers of frameworks generated from the Xcode project file have been changed to `hu.lorentey.BigInt.`. + +# 2.0.1 (2016-11-08) + +This release contains the following bugfixes: + +- The Swift version number is now correctly set in all targets (PR #7 by @mAu888). +- BigInt now builds on Linux (PR #5 by @ratranqu). +- Building BigInt with the Swift Package Manager bundled with Swift 3.0.1 works correctly. + +Additionally, Foundation imports that weren't actually needed were removed from sources. + +# 2.0.0 (2016-09-20) + +This release updates the project for Swift 3.0, including adapting the API to the new naming conventions. + +Further changes: + +- The behavior of `BigUInt.gcd` when one of the arguments is zero has been fixed; the result in this case is now equal to the other argument. +- `BigInt` now conforms to `Strideable`, `IntegerArithmetic`, `SignedNumber` and `AbsoluteValuable`. +- `BigUInt` now conforms to `Strideable`, `IntegerArithmetic` and `BitwiseOperations`. + +# 1.3.0 (2016-03-23) + +This release updates the project to require Swift 2.2 and Xcode 7.3. There have been no other changes. + +# 1.2.3 (2016-01-12) + +This release adds experimental support for the Swift Package Manager and Swift 2.2. +There were no source-level changes. + +# 1.2.2 (2016-01-08) + +This release fixes version numbers embedded in build products. + +# 1.2.1 (2016-01-07) + +This release simply removes the stray LICENSE.md file from iOS builds. + + +# 1.2.0 (2016-01-06) + +With this release, BigInt supports watchOS and tvOS in addition to OS X and iOS. Deployment targets are as follows: + +- OS X 10.9 +- iOS 8 +- watchOS 2 +- tvOS 9 + +BigInt 1.2.0 also features support for both Carthage and CocoaPods deployments. + + +# 1.1.0 (2016-01-06) + +`BigInt` now contains enough functionality to pretend it's a respectable big integer lib. Some of the new additions since 1.0.0: + +- Conversion to/from `NSData` +- Vanilla exponentiation +- Algorithm to find the multiplicative inverse of an integer in modulo arithmetic +- An implementation of the Miller-Rabin primality test +- Support for generating random big integers +- Better support for playgrounds in Xcode +- Documentation for all public API +- Fun new calculation samples + + +# 1.0.0 (2016-01-04) + +This is the first release of the BigInt module, providing arbitrary precision integer arithmetic operations +in pure Swift. + +Two big integer types are included: `BigUInt` and `BigInt`, the latter being the signed variant. +Both of these are Swift structs with copy-on-write value semantics, and they can be used much +like any other integer type. + +The library provides implementations for some of the most frequently useful functions on +big integers, including + +- All functionality from `Comparable` and `Hashable` +- The full set of arithmetic operators: `+`, `-`, `*`, `/`, `%`, `+=`, `-=`, `*=`, `/=`, `%=` +- Addition and subtraction have variants that allow for shifting the digits of the second +operand on the fly. +- Unsigned subtraction will trap when the result would be negative. (There are variants +that return an overflow flag.) +- Multiplication uses brute force for numbers up to 1024 digits, then switches to Karatsuba's recursive method. +(This limit is configurable, see `BigUInt.directMultiplicationLimit`.) +A fused multiply-add method is also available. +- Division uses Knuth's Algorithm D, with its 3/2 digits wide quotient approximation. +It will trap when the divisor is zero. `BigUInt.divmod` returns the quotient and +remainder at once; this is faster than calculating them separately. +- Bitwise operators: `~`, `|`, `&`, `^`, `|=`, `&=`, `^=`, plus the following read-only properties: +- `width`: the minimum number of bits required to store the integer, +- `trailingZeroBitCount`: the number of trailing zero bits in the binary representation, +- `leadingZeroBitCount`: the number of leading zero bits (when the last digit isn't full), +- Shift operators: `>>`, `<<`, `>>=`, `<<=` +- Left shifts need to allocate memory to extend the digit array, so it's probably not a good idea +to left shift a `BigUInt` by 2^50 bits. +- Radix conversion between `String`s and big integers up to base 36 (using repeated divisions). +- Big integers use this to implement `StringLiteralConvertible` (in base 10). +- `sqrt(n)`: The square root of an integer (using Newton's method) +- `BigUInt.gcd(n, m)`: The greatest common divisor of two integers (Stein's algorithm) +- `BigUInt.powmod(base, exponent, modulus)`: Modular exponentiation (right-to-left binary method): + +The implementations are intended to be reasonably efficient, but they are unlikely to be +competitive with GMP at all, even when I happened to implement an algorithm with same asymptotic +behavior as GMP. (I haven't performed a comparison benchmark, though.) + +The library has 100% unit test coverage. diff --git a/Carthage/Checkouts/BigInt/Cartfile b/Carthage/Checkouts/BigInt/Cartfile new file mode 100644 index 000000000..8d3ec5677 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Cartfile @@ -0,0 +1 @@ +github "attaswift/SipHash" ~> 1.2 diff --git a/Carthage/Checkouts/BigInt/Cartfile.resolved b/Carthage/Checkouts/BigInt/Cartfile.resolved new file mode 100644 index 000000000..5f8f0b97a --- /dev/null +++ b/Carthage/Checkouts/BigInt/Cartfile.resolved @@ -0,0 +1 @@ +github "attaswift/SipHash" "v1.2.0" diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.codecov.yml b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.codecov.yml new file mode 100644 index 000000000..3432d06ad --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.codecov.yml @@ -0,0 +1,14 @@ +ignore: +- "/tests/*" +comment: + layout: "header, diff" + behavior: default + require_changes: no +coverage: + status: + project: + default: + target: auto + threshold: null + base: auto + paths: "sources/*" diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.gitignore b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.gitignore new file mode 100644 index 000000000..df7824894 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.gitignore @@ -0,0 +1,3 @@ +/.build +/Carthage/Build +xcuserdata diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.swift-version b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.swift-version new file mode 100644 index 000000000..389f7740e --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.swift-version @@ -0,0 +1 @@ +4.0 \ No newline at end of file diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.travis.yml b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.travis.yml new file mode 100644 index 000000000..c804fa4bf --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/.travis.yml @@ -0,0 +1,9 @@ +language: objective-c +osx_image: xcode9 +script: +- xcrun xcodebuild -project SipHash.xcodeproj -scheme SipHash-macOS test +- xcrun xcodebuild -project SipHash.xcodeproj -scheme SipHash-iOS +- xcrun xcodebuild -project SipHash.xcodeproj -scheme SipHash-watchOS +- xcrun xcodebuild -project SipHash.xcodeproj -scheme SipHash-tvOS +- swift test +after_success: bash <(curl -s https://codecov.io/bash) diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/CHANGELOG.md b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/CHANGELOG.md new file mode 100644 index 000000000..f8b0b2e14 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/CHANGELOG.md @@ -0,0 +1,34 @@ +# Version 1.2.0 (2017-09-07) + +This release contains the following changes: + +* The package requires Swift 4. +* `SipHasher` now has a method for appending slices of `UnsafeRawBufferPointer`s. +* In the supplied Xcode project, bundle identifiers have been updated. The new ones start with `org.attaswift.`. + +Note that the URL for the package's Git repository has changed; please update your references. + +# Version 1.1.2 (2017-05-05) + +This release contains the following change: + +* Removed all remaining use of @inline(__always) attributes. + +# Version 1.1.1 (2017-02-07) + +This release contains the following change: + +* A Swift 3.1 compilation issue about SipHash's (ab)use of @inline(__always) was fixed. + +# Version 1.1.0 (2016-11-23) + +This release contains the following changes: + +* `SipHasher` now supports appending optional values directly. +* The deployment target for Carthage and standalone builds was set back to iOS 8.0 and macOS 10.9, + the earliest possible OS versions for Swift frameworks. This change does not affect CocoaPod builds, which + already had the same settings. + +# Version 1.0.0 (2016-11-15) + +This is the initial release of SipHash. diff --git a/Example/web3swiftBrowser/Pods/SipHash/LICENSE.md b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/LICENSE.md similarity index 100% rename from Example/web3swiftBrowser/Pods/SipHash/LICENSE.md rename to Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/LICENSE.md diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/Package.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/Package.swift new file mode 100644 index 000000000..8d5b078a8 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/Package.swift @@ -0,0 +1,23 @@ +// swift-tools-version:4.0 +// +// Package.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-11-14. +// Copyright © 2016-2017 Károly Lőrentey. +// + +import PackageDescription + +let package = Package( + name: "SipHash", + products: [ + .library(name: "SipHash", type: .dynamic, targets: ["SipHash"]) + ], + dependencies: [], + targets: [ + .target(name: "SipHash", dependencies: [], path: "SipHash"), + .testTarget(name: "SipHashTests", dependencies: ["SipHash"], path: "SipHashTests") + ], + swiftLanguageVersions: [4] +) diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/README.md b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/README.md new file mode 100644 index 000000000..a9c69297e --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/README.md @@ -0,0 +1,163 @@ +# SipHash + +[![Swift 4.0](https://img.shields.io/badge/Swift-4-blue.svg)](https://swift.org) +[![License](https://img.shields.io/badge/licence-MIT-blue.svg)](https://github.com/attaswift/SipHash/blob/master/LICENSE.md) +[![Platform](https://img.shields.io/badge/platforms-macOS%20∙%20iOS%20∙%20watchOS%20∙%20tvOS%20∙%20Linux-blue.svg)](https://developer.apple.com/platforms/) + +[![Build Status](https://travis-ci.org/attaswift/SipHash.svg?branch=master)](https://travis-ci.org/attaswift/SipHash) +[![Code Coverage](https://codecov.io/github/attaswift/SipHash/coverage.svg?branch=master)](https://codecov.io/github/attaswift/SipHash?branch=master) +[![Documented](https://img.shields.io/cocoapods/metrics/doc-percent/SipHash.svg)](http://attaswift.github.io/SipHash) + +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg)](https://github.com/Carthage/Carthage) +[![CocoaPod Version](https://img.shields.io/cocoapods/v/SipHash.svg)](http://cocoapods.org/pods/SipHash) + +`SipHash` is a pure Swift implementation of the [SipHash] hashing algorithm designed by +Jean-Philippe Aumasson and Daniel J. Bernstein in 2012: + +[SipHash]: https://131002.net/siphash + +> SipHash is a family of pseudorandom functions (a.k.a. keyed hash functions) optimized for speed on short messages. +> +> Target applications include network traffic authentication and defense against hash-flooding DoS attacks. +> +> SipHash is secure, fast, and simple (for real): +> - SipHash is simpler and faster than previous cryptographic algorithms (e.g. MACs based on universal hashing) +> - SipHash is competitive in performance with insecure non-cryptographic algorithms (e.g. MurmurHash) +> +> -- [131002.net][SipHash] + +SipHash has a variety of flavors; this package implements the one called SipHash-2-4. + +Note that the Swift Standard Library [already includes an implementation][stdlib] of SipHash-2-4 and SipHash-1-3; +however, the APIs are currently private and not available for use outside of stdlib. This package provides an +independent implementation that's available for use in third-party code. + +[stdlib]: https://github.com/apple/swift/blob/master/stdlib/public/core/SipHash.swift.gyb + +The current release of SipHash requires Swift 4. + +## Sample Code + +```swift +import SipHash + +// `SipHashable` is like `Hashable`, but simpler. +struct Book: SipHashable { + let title: String + let pageCount: Int + + // You need to implement this method instead of `hashValue`. + func appendHashes(to hasher: inout SipHasher) { + // Simply append the fields you want to include in the hash. + hasher.append(title) + hasher.append(pageCount) + } + + static func ==(left: Book, right: Book) -> Bool { + return left.title == right.title && left.pageCount == right.pageCount + } +} + +// You can now use Books in sets or as dictionary keys. +let book = Book(title: "The Colour of Magic", pageCount: 206) +let books: Set = [book] + + +// If you prefer to do so, you may also create & use hashers directly. +var hasher = SipHasher() +hasher.add(book) +hasher.add(42) +// Finalizing the hasher extracts the hash value and invalidates it. +let hash = hasher.finalize() +``` + +## Why Would I Use SipHash? + +Writing a good implementation of `hashValue` is hard, even if we just need to combine the values of a couple of fields. +We need to come up with a deterministic function that blends the field values well, producing a fixed-width +result without too many collisions on typical inputs. But how many collisions are "too many"? Do we even know what +our "typical inputs" look like? For me, the answer to both of these questions is usually "I have absolutely no idea", +and I bet you have the same problem. + +Thus, verifying that our `hashValue` implementations work well is an exercise in frustration. + +We need to somehow check the properties of the hash function by looking at its behavior given various inputs. +It is easy enough to write tests for the requirement that equal values have equal `hashValues`. +But verifying that the hash has few collisions requires making some assumptions on the +statistical properties of "typical" inputs -- and even if we'd be somehow confident enough to do that, writing the code +to do it is way too complicated. + +Instead of rolling your own ad-hoc hash function, why not just use an algorithm designed specifically to blend data +into a hash? Using a standardized algorithm means we don't need to worry about collision behavior any more: if the +algorithm was designed well, we'll always have good results. + +The SipHash algorithm is a particularly good choice for hashing. It implements a 64-bit cryptographic +message-authentication code (MAC) with a 256-bit internal state initialized from a 128-bit secret key that's (typically) +randomly generated for each execution of the binary. +SipHash is designed to protect against hash collision attacks, while remaining simple to use and fast. +It is already used by Perl, Python, Ruby, Rust, and even Swift itself -- which is why the documentation of `Hashable` +explicitly warns that the value returned by `hashValue` may be different across executions. + +The standard library already implements SipHash, but the implementation is private. (It is technically available +for use, but it is not formally part of the stdlib API, and it is subject to change/removal across even point releases.) +I expect a refactored version of stdlib's SipHash will become available as public API in a future Swift release. +But while we're waiting for that, this package provides an alternative implementation that is available today. + +## Is this code full of bugs? + +Indubitably. Please report all bugs you find! + +The package has 100% unit test coverage. Unfortunately this doesn't tell you much about its reliability in practice. + +The test suite verifies that the package generates values that match the test vectors supplied by SipHash's original +authors, which makes me reasonably confident that this package implements SipHash correctly. +Obviously, your mileage may vary. + +## Reference docs + +[Nicely formatted reference docs][docs] are available courtesy of [Jazzy]. + +[docs]: https://attaswift.github.io/SipHash/ +[Jazzy]: https://github.com/realm/jazzy + +## Installation + +### CocoaPods + +If you use CocoaPods, you can start using `SipHash` by including it as a dependency in your `Podfile`: + +``` +pod 'SipHash', '~> 1.2' +``` + +### Carthage + +For Carthage, add the following line to your `Cartfile`: + +``` +github "attaswift/SipHash" ~> 1.2 +``` + +### Swift Package Manager + +For Swift Package Manager, add `SipHash` to the dependencies list inside your `Package.swift` file: + +``` +import PackageDescription + +let package = Package( + name: "MyPackage", + dependencies: [ + .Package(url: "https://github.com/attaswift/SipHash.git", from: "1.2.0") + ] +) +``` + +### Standalone Development + +If you don't use a dependency manager, you need to clone this repo somewhere near your project, and add a reference to `SipHash.xcodeproj` to your project's `xcworkspace`. You can put the clone of SipHash wherever you like on disk, but it is a good idea to set it up as a submodule of your app's top-level Git repository. + +To link your application binary with SipHash, just add `SipHash.framework` from the SipHash project to the Embedded Binaries section of your app target's General page in Xcode. As long as the SipHash project file is referenced in your workspace, this framework will be listed in the "Choose items to add" sheet that opens when you click on the "+" button of your target's Embedded Binaries list. + +There is no need to do any additional setup beyond adding the framework targets to Embedded Binaries. + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.podspec b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.podspec new file mode 100644 index 000000000..e8403da21 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.podspec @@ -0,0 +1,16 @@ +Pod::Spec.new do |spec| + spec.name = 'SipHash' + spec.version = '1.2.0' + spec.ios.deployment_target = "8.0" + spec.osx.deployment_target = "10.9" + spec.tvos.deployment_target = "9.0" + spec.watchos.deployment_target = "2.0" + spec.summary = 'Simple and secure hashing in Swift with the SipHash algorithm' + spec.author = 'Károly Lőrentey' + spec.homepage = 'https://github.com/attaswift/SipHash' + spec.license = { :type => 'MIT', :file => 'LICENSE.md' } + spec.source = { :git => 'https://github.com/attaswift/SipHash.git', :tag => 'v' + String(spec.version) } + spec.source_files = 'SipHash/*.swift' + spec.social_media_url = 'https://twitter.com/lorentey' + spec.documentation_url = 'http://attaswift.github.io/SipHash/' +end diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/project.pbxproj b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/project.pbxproj new file mode 100644 index 000000000..fca92eb3e --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/project.pbxproj @@ -0,0 +1,1003 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + BB241BDB1DDA302F0067F917 /* Primitive Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD71DDA302F0067F917 /* Primitive Types.swift */; }; + BB241BDC1DDA302F0067F917 /* RandomUInt64.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD81DDA302F0067F917 /* RandomUInt64.swift */; }; + BB241BDD1DDA302F0067F917 /* SipHasher.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD91DDA302F0067F917 /* SipHasher.swift */; }; + BB241BDE1DDA302F0067F917 /* SipHashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BDA1DDA302F0067F917 /* SipHashable.swift */; }; + BB241BDF1DDA33620067F917 /* SipHasher.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD91DDA302F0067F917 /* SipHasher.swift */; }; + BB241BE01DDA33620067F917 /* SipHashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BDA1DDA302F0067F917 /* SipHashable.swift */; }; + BB241BE11DDA33620067F917 /* RandomUInt64.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD81DDA302F0067F917 /* RandomUInt64.swift */; }; + BB241BE21DDA33620067F917 /* Primitive Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD71DDA302F0067F917 /* Primitive Types.swift */; }; + BB241BE31DDA33620067F917 /* SipHasher.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD91DDA302F0067F917 /* SipHasher.swift */; }; + BB241BE41DDA33620067F917 /* SipHashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BDA1DDA302F0067F917 /* SipHashable.swift */; }; + BB241BE51DDA33620067F917 /* RandomUInt64.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD81DDA302F0067F917 /* RandomUInt64.swift */; }; + BB241BE61DDA33620067F917 /* Primitive Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD71DDA302F0067F917 /* Primitive Types.swift */; }; + BB241BE71DDA33630067F917 /* SipHasher.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD91DDA302F0067F917 /* SipHasher.swift */; }; + BB241BE81DDA33630067F917 /* SipHashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BDA1DDA302F0067F917 /* SipHashable.swift */; }; + BB241BE91DDA33630067F917 /* RandomUInt64.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD81DDA302F0067F917 /* RandomUInt64.swift */; }; + BB241BEA1DDA33630067F917 /* Primitive Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BD71DDA302F0067F917 /* Primitive Types.swift */; }; + BB241BEC1DDA67140067F917 /* SipHashableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BEB1DDA67140067F917 /* SipHashableTests.swift */; }; + BB241BED1DDA67140067F917 /* SipHashableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BEB1DDA67140067F917 /* SipHashableTests.swift */; }; + BB241BEE1DDA67140067F917 /* SipHashableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BEB1DDA67140067F917 /* SipHashableTests.swift */; }; + BB241BF01DDA6AF00067F917 /* PrimitiveTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BEF1DDA6AF00067F917 /* PrimitiveTypeTests.swift */; }; + BB241BF11DDA6AF00067F917 /* PrimitiveTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BEF1DDA6AF00067F917 /* PrimitiveTypeTests.swift */; }; + BB241BF21DDA6AF00067F917 /* PrimitiveTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB241BEF1DDA6AF00067F917 /* PrimitiveTypeTests.swift */; }; + BB241BF41DDA8CBB0067F917 /* generate-docs.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB241BF31DDA8CBB0067F917 /* generate-docs.sh */; }; + BB241BF51DDA8CBB0067F917 /* generate-docs.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB241BF31DDA8CBB0067F917 /* generate-docs.sh */; }; + BB241BF61DDA8CBB0067F917 /* generate-docs.sh in Resources */ = {isa = PBXBuildFile; fileRef = BB241BF31DDA8CBB0067F917 /* generate-docs.sh */; }; + BB241BF81DDA8CEE0067F917 /* .codecov.yml in Resources */ = {isa = PBXBuildFile; fileRef = BB241BF71DDA8CEE0067F917 /* .codecov.yml */; }; + BB241BF91DDA8CEE0067F917 /* .codecov.yml in Resources */ = {isa = PBXBuildFile; fileRef = BB241BF71DDA8CEE0067F917 /* .codecov.yml */; }; + BB241BFA1DDA8CEE0067F917 /* .codecov.yml in Resources */ = {isa = PBXBuildFile; fileRef = BB241BF71DDA8CEE0067F917 /* .codecov.yml */; }; + BBB55ABD1C8F80020050DDA9 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AB21C8F80020050DDA9 /* SipHash.framework */; }; + BBB55AC21C8F80020050DDA9 /* SipHashTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB55AC11C8F80020050DDA9 /* SipHashTests.swift */; }; + BBB55ADE1C8F88F20050DDA9 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AD41C8F88F20050DDA9 /* SipHash.framework */; }; + BBB55B081C8F8CBC0050DDA9 /* SipHash.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBB55AFE1C8F8CBB0050DDA9 /* SipHash.framework */; }; + BBB55B151C8F8FE70050DDA9 /* SipHashTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB55AC11C8F80020050DDA9 /* SipHashTests.swift */; }; + BBB55B161C8F8FE80050DDA9 /* SipHashTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB55AC11C8F80020050DDA9 /* SipHashTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + BBB55ABE1C8F80020050DDA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AB11C8F80020050DDA9; + remoteInfo = SipHash; + }; + BBB55ADF1C8F88F20050DDA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AD31C8F88F20050DDA9; + remoteInfo = SipHash; + }; + BBB55B091C8F8CBC0050DDA9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BBB55AA91C8F80020050DDA9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BBB55AFD1C8F8CBB0050DDA9; + remoteInfo = SipHash; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + BB241BC51DD9F6490067F917 /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; + BB241BC71DD9F7D60067F917 /* SipHash.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = SipHash.podspec; sourceTree = ""; }; + BB241BD71DDA302F0067F917 /* Primitive Types.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Primitive Types.swift"; sourceTree = ""; }; + BB241BD81DDA302F0067F917 /* RandomUInt64.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RandomUInt64.swift; sourceTree = ""; }; + BB241BD91DDA302F0067F917 /* SipHasher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SipHasher.swift; sourceTree = ""; }; + BB241BDA1DDA302F0067F917 /* SipHashable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SipHashable.swift; sourceTree = ""; }; + BB241BEB1DDA67140067F917 /* SipHashableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SipHashableTests.swift; sourceTree = ""; }; + BB241BEF1DDA6AF00067F917 /* PrimitiveTypeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrimitiveTypeTests.swift; sourceTree = ""; }; + BB241BF31DDA8CBB0067F917 /* generate-docs.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "generate-docs.sh"; sourceTree = ""; }; + BB241BF71DDA8CEE0067F917 /* .codecov.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .codecov.yml; sourceTree = ""; }; + BB241BFB1DDB49210067F917 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; }; + BBB55AB21C8F80020050DDA9 /* SipHash.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SipHash.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AB71C8F80020050DDA9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BBB55ABC1C8F80020050DDA9 /* SipHash-Test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SipHash-Test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AC11C8F80020050DDA9 /* SipHashTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SipHashTests.swift; sourceTree = ""; }; + BBB55AC31C8F80020050DDA9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BBB55ACC1C8F80660050DDA9 /* version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = version.xcconfig; sourceTree = ""; }; + BBB55AD41C8F88F20050DDA9 /* SipHash.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SipHash.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55ADD1C8F88F20050DDA9 /* SipHash-Test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SipHash-Test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AF11C8F8BE00050DDA9 /* SipHash.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SipHash.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55AFE1C8F8CBB0050DDA9 /* SipHash.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SipHash.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55B071C8F8CBB0050DDA9 /* SipHash-Test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SipHash-Test.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + BBB55B1C1C8F90F60050DDA9 /* .travis.yml */ = {isa = PBXFileReference; lastKnownFileType = text; path = .travis.yml; sourceTree = ""; }; + BBB55B1D1C8F9E850050DDA9 /* LICENSE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE.md; sourceTree = ""; }; + BBB55B1E1C8F9E920050DDA9 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BBB55AAE1C8F80020050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AB91C8F80020050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBB55ABD1C8F80020050DDA9 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD01C8F88F20050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ADA1C8F88F20050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBB55ADE1C8F88F20050DDA9 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AED1C8F8BE00050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AFA1C8F8CBB0050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55B041C8F8CBB0050DDA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BBB55B081C8F8CBC0050DDA9 /* SipHash.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + BBB55AA81C8F80020050DDA9 = { + isa = PBXGroup; + children = ( + BBB55B1E1C8F9E920050DDA9 /* README.md */, + BB241BFB1DDB49210067F917 /* CHANGELOG.md */, + BBB55B1D1C8F9E850050DDA9 /* LICENSE.md */, + BB241BC51DD9F6490067F917 /* Package.swift */, + BB241BC71DD9F7D60067F917 /* SipHash.podspec */, + BBB55B1C1C8F90F60050DDA9 /* .travis.yml */, + BB241BF71DDA8CEE0067F917 /* .codecov.yml */, + BB241BF31DDA8CBB0067F917 /* generate-docs.sh */, + BBB55ACC1C8F80660050DDA9 /* version.xcconfig */, + BBB55AB41C8F80020050DDA9 /* SipHash */, + BBB55AC01C8F80020050DDA9 /* SipHashTests */, + BBB55AB31C8F80020050DDA9 /* Products */, + ); + sourceTree = ""; + }; + BBB55AB31C8F80020050DDA9 /* Products */ = { + isa = PBXGroup; + children = ( + BBB55AB21C8F80020050DDA9 /* SipHash.framework */, + BBB55ABC1C8F80020050DDA9 /* SipHash-Test.xctest */, + BBB55AD41C8F88F20050DDA9 /* SipHash.framework */, + BBB55ADD1C8F88F20050DDA9 /* SipHash-Test.xctest */, + BBB55AF11C8F8BE00050DDA9 /* SipHash.framework */, + BBB55AFE1C8F8CBB0050DDA9 /* SipHash.framework */, + BBB55B071C8F8CBB0050DDA9 /* SipHash-Test.xctest */, + ); + name = Products; + sourceTree = ""; + }; + BBB55AB41C8F80020050DDA9 /* SipHash */ = { + isa = PBXGroup; + children = ( + BB241BD91DDA302F0067F917 /* SipHasher.swift */, + BB241BDA1DDA302F0067F917 /* SipHashable.swift */, + BB241BD81DDA302F0067F917 /* RandomUInt64.swift */, + BB241BD71DDA302F0067F917 /* Primitive Types.swift */, + BBB55AB71C8F80020050DDA9 /* Info.plist */, + ); + path = SipHash; + sourceTree = ""; + }; + BBB55AC01C8F80020050DDA9 /* SipHashTests */ = { + isa = PBXGroup; + children = ( + BBB55AC11C8F80020050DDA9 /* SipHashTests.swift */, + BB241BEB1DDA67140067F917 /* SipHashableTests.swift */, + BB241BEF1DDA6AF00067F917 /* PrimitiveTypeTests.swift */, + BBB55AC31C8F80020050DDA9 /* Info.plist */, + ); + path = SipHashTests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + BBB55AAF1C8F80020050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD11C8F88F20050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AEE1C8F8BE00050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AFB1C8F8CBB0050DDA9 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + BBB55AB11C8F80020050DDA9 /* iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AC61C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "iOS" */; + buildPhases = ( + BBB55AAD1C8F80020050DDA9 /* Sources */, + BBB55AAE1C8F80020050DDA9 /* Frameworks */, + BBB55AAF1C8F80020050DDA9 /* Headers */, + BBB55AB01C8F80020050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iOS; + productName = SipHash; + productReference = BBB55AB21C8F80020050DDA9 /* SipHash.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55ABB1C8F80020050DDA9 /* iOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AC91C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "iOS Tests" */; + buildPhases = ( + BBB55AB81C8F80020050DDA9 /* Sources */, + BBB55AB91C8F80020050DDA9 /* Frameworks */, + BBB55ABA1C8F80020050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BBB55ABF1C8F80020050DDA9 /* PBXTargetDependency */, + ); + name = "iOS Tests"; + productName = SipHashTests; + productReference = BBB55ABC1C8F80020050DDA9 /* SipHash-Test.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + BBB55AD31C8F88F20050DDA9 /* macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AE51C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "macOS" */; + buildPhases = ( + BBB55ACF1C8F88F20050DDA9 /* Sources */, + BBB55AD01C8F88F20050DDA9 /* Frameworks */, + BBB55AD11C8F88F20050DDA9 /* Headers */, + BBB55AD21C8F88F20050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = macOS; + productName = SipHash; + productReference = BBB55AD41C8F88F20050DDA9 /* SipHash.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55ADC1C8F88F20050DDA9 /* macOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AE81C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "macOS Tests" */; + buildPhases = ( + BBB55AD91C8F88F20050DDA9 /* Sources */, + BBB55ADA1C8F88F20050DDA9 /* Frameworks */, + BBB55ADB1C8F88F20050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BBB55AE01C8F88F20050DDA9 /* PBXTargetDependency */, + ); + name = "macOS Tests"; + productName = SipHashTests; + productReference = BBB55ADD1C8F88F20050DDA9 /* SipHash-Test.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + BBB55AF01C8F8BE00050DDA9 /* watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55AF61C8F8BE00050DDA9 /* Build configuration list for PBXNativeTarget "watchOS" */; + buildPhases = ( + BBB55AEC1C8F8BE00050DDA9 /* Sources */, + BBB55AED1C8F8BE00050DDA9 /* Frameworks */, + BBB55AEE1C8F8BE00050DDA9 /* Headers */, + BBB55AEF1C8F8BE00050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = watchOS; + productName = SipHash; + productReference = BBB55AF11C8F8BE00050DDA9 /* SipHash.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55AFD1C8F8CBB0050DDA9 /* tvOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55B0F1C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "tvOS" */; + buildPhases = ( + BBB55AF91C8F8CBB0050DDA9 /* Sources */, + BBB55AFA1C8F8CBB0050DDA9 /* Frameworks */, + BBB55AFB1C8F8CBB0050DDA9 /* Headers */, + BBB55AFC1C8F8CBB0050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tvOS; + productName = SipHash; + productReference = BBB55AFE1C8F8CBB0050DDA9 /* SipHash.framework */; + productType = "com.apple.product-type.framework"; + }; + BBB55B061C8F8CBB0050DDA9 /* tvOS Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BBB55B121C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "tvOS Tests" */; + buildPhases = ( + BBB55B031C8F8CBB0050DDA9 /* Sources */, + BBB55B041C8F8CBB0050DDA9 /* Frameworks */, + BBB55B051C8F8CBB0050DDA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BBB55B0A1C8F8CBC0050DDA9 /* PBXTargetDependency */, + ); + name = "tvOS Tests"; + productName = SipHashTests; + productReference = BBB55B071C8F8CBB0050DDA9 /* SipHash-Test.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BBB55AA91C8F80020050DDA9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0900; + ORGANIZATIONNAME = "Károly Lőrentey"; + TargetAttributes = { + BBB55AB11C8F80020050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0810; + }; + BBB55ABB1C8F80020050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0800; + }; + BBB55AD31C8F88F20050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0900; + ProvisioningStyle = Automatic; + }; + BBB55ADC1C8F88F20050DDA9 = { + CreatedOnToolsVersion = 7.3; + LastSwiftMigration = 0900; + }; + BBB55AF01C8F8BE00050DDA9 = { + CreatedOnToolsVersion = 7.3; + }; + BBB55AFD1C8F8CBB0050DDA9 = { + CreatedOnToolsVersion = 7.3; + }; + BBB55B061C8F8CBB0050DDA9 = { + CreatedOnToolsVersion = 7.3; + }; + }; + }; + buildConfigurationList = BBB55AAC1C8F80020050DDA9 /* Build configuration list for PBXProject "SipHash" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = BBB55AA81C8F80020050DDA9; + productRefGroup = BBB55AB31C8F80020050DDA9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BBB55AB11C8F80020050DDA9 /* iOS */, + BBB55AD31C8F88F20050DDA9 /* macOS */, + BBB55AF01C8F8BE00050DDA9 /* watchOS */, + BBB55AFD1C8F8CBB0050DDA9 /* tvOS */, + BBB55ABB1C8F80020050DDA9 /* iOS Tests */, + BBB55ADC1C8F88F20050DDA9 /* macOS Tests */, + BBB55B061C8F8CBB0050DDA9 /* tvOS Tests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BBB55AB01C8F80020050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ABA1C8F80020050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BF81DDA8CEE0067F917 /* .codecov.yml in Resources */, + BB241BF41DDA8CBB0067F917 /* generate-docs.sh in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD21C8F88F20050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ADB1C8F88F20050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BF91DDA8CEE0067F917 /* .codecov.yml in Resources */, + BB241BF51DDA8CBB0067F917 /* generate-docs.sh in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AEF1C8F8BE00050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AFC1C8F8CBB0050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55B051C8F8CBB0050DDA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BFA1DDA8CEE0067F917 /* .codecov.yml in Resources */, + BB241BF61DDA8CBB0067F917 /* generate-docs.sh in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BBB55AAD1C8F80020050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BDE1DDA302F0067F917 /* SipHashable.swift in Sources */, + BB241BDD1DDA302F0067F917 /* SipHasher.swift in Sources */, + BB241BDC1DDA302F0067F917 /* RandomUInt64.swift in Sources */, + BB241BDB1DDA302F0067F917 /* Primitive Types.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AB81C8F80020050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BEC1DDA67140067F917 /* SipHashableTests.swift in Sources */, + BBB55AC21C8F80020050DDA9 /* SipHashTests.swift in Sources */, + BB241BF01DDA6AF00067F917 /* PrimitiveTypeTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55ACF1C8F88F20050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BE01DDA33620067F917 /* SipHashable.swift in Sources */, + BB241BDF1DDA33620067F917 /* SipHasher.swift in Sources */, + BB241BE21DDA33620067F917 /* Primitive Types.swift in Sources */, + BB241BE11DDA33620067F917 /* RandomUInt64.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AD91C8F88F20050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BED1DDA67140067F917 /* SipHashableTests.swift in Sources */, + BBB55B151C8F8FE70050DDA9 /* SipHashTests.swift in Sources */, + BB241BF11DDA6AF00067F917 /* PrimitiveTypeTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AEC1C8F8BE00050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BE41DDA33620067F917 /* SipHashable.swift in Sources */, + BB241BE31DDA33620067F917 /* SipHasher.swift in Sources */, + BB241BE61DDA33620067F917 /* Primitive Types.swift in Sources */, + BB241BE51DDA33620067F917 /* RandomUInt64.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55AF91C8F8CBB0050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BE81DDA33630067F917 /* SipHashable.swift in Sources */, + BB241BE71DDA33630067F917 /* SipHasher.swift in Sources */, + BB241BEA1DDA33630067F917 /* Primitive Types.swift in Sources */, + BB241BE91DDA33630067F917 /* RandomUInt64.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BBB55B031C8F8CBB0050DDA9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB241BEE1DDA67140067F917 /* SipHashableTests.swift in Sources */, + BBB55B161C8F8FE80050DDA9 /* SipHashTests.swift in Sources */, + BB241BF21DDA6AF00067F917 /* PrimitiveTypeTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + BBB55ABF1C8F80020050DDA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AB11C8F80020050DDA9 /* iOS */; + targetProxy = BBB55ABE1C8F80020050DDA9 /* PBXContainerItemProxy */; + }; + BBB55AE01C8F88F20050DDA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AD31C8F88F20050DDA9 /* macOS */; + targetProxy = BBB55ADF1C8F88F20050DDA9 /* PBXContainerItemProxy */; + }; + BBB55B0A1C8F8CBC0050DDA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BBB55AFD1C8F8CBB0050DDA9 /* tvOS */; + targetProxy = BBB55B091C8F8CBC0050DDA9 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + BBB55AC41C8F80020050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BBB55ACC1C8F80660050DDA9 /* version.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = NO; + 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_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_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; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(BUILD_NUMBER)"; + DEBUG_INFORMATION_FORMAT = dwarf; + DYLIB_COMPATIBILITY_VERSION = "$(BUILD_NUMBER)"; + DYLIB_CURRENT_VERSION = "$(BUILD_NUMBER)"; + 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; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_SWIFT_FLAGS = "-DDebug"; + SWIFT_ENFORCE_EXCLUSIVE_ACCESS = full; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + BBB55AC51C8F80020050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BBB55ACC1C8F80660050DDA9 /* version.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = NO; + 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_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_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; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(BUILD_NUMBER)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_COMPATIBILITY_VERSION = "$(BUILD_NUMBER)"; + DYLIB_CURRENT_VERSION = "$(BUILD_NUMBER)"; + 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; + MTL_ENABLE_DEBUG_INFO = NO; + SWIFT_ENFORCE_EXCLUSIVE_ACCESS = full; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_SWIFT3_OBJC_INFERENCE = Off; + SWIFT_VERSION = 4.0; + VALIDATE_PRODUCT = YES; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BBB55AC71C8F80020050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + BBB55AC81C8F80020050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + BBB55ACA1C8F80020050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + INFOPLIST_FILE = SipHashTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = iphoneos; + }; + name = Debug; + }; + BBB55ACB1C8F80020050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + INFOPLIST_FILE = SipHashTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = iphoneos; + }; + name = Release; + }; + BBB55AE61C8F88F20050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + BBB55AE71C8F88F20050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + BBB55AE91C8F88F20050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SipHashTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = macosx; + }; + name = Debug; + }; + BBB55AEA1C8F88F20050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SipHashTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = macosx; + }; + name = Release; + }; + BBB55AF71C8F8BE00050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 4; + }; + name = Debug; + }; + BBB55AF81C8F8BE00050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + }; + name = Release; + }; + BBB55B101C8F8CBC0050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Debug; + }; + BBB55B111C8F8CBC0050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + DEFINES_MODULE = YES; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SipHash/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).$(PLATFORM_DISPLAY_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(PROJECT_NAME)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + }; + name = Release; + }; + BBB55B131C8F8CBC0050DDA9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + INFOPLIST_FILE = SipHashTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = appletvos; + }; + name = Debug; + }; + BBB55B141C8F8CBC0050DDA9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + APPLICATION_EXTENSION_API_ONLY = NO; + INFOPLIST_FILE = SipHashTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).Tests"; + PRODUCT_NAME = "$(PROJECT_NAME)-Test"; + SDKROOT = appletvos; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + BBB55AAC1C8F80020050DDA9 /* Build configuration list for PBXProject "SipHash" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AC41C8F80020050DDA9 /* Debug */, + BBB55AC51C8F80020050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AC61C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AC71C8F80020050DDA9 /* Debug */, + BBB55AC81C8F80020050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AC91C8F80020050DDA9 /* Build configuration list for PBXNativeTarget "iOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55ACA1C8F80020050DDA9 /* Debug */, + BBB55ACB1C8F80020050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AE51C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AE61C8F88F20050DDA9 /* Debug */, + BBB55AE71C8F88F20050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AE81C8F88F20050DDA9 /* Build configuration list for PBXNativeTarget "macOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AE91C8F88F20050DDA9 /* Debug */, + BBB55AEA1C8F88F20050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55AF61C8F8BE00050DDA9 /* Build configuration list for PBXNativeTarget "watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55AF71C8F8BE00050DDA9 /* Debug */, + BBB55AF81C8F8BE00050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55B0F1C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55B101C8F8CBC0050DDA9 /* Debug */, + BBB55B111C8F8CBC0050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BBB55B121C8F8CBC0050DDA9 /* Build configuration list for PBXNativeTarget "tvOS Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBB55B131C8F8CBC0050DDA9 /* Debug */, + BBB55B141C8F8CBC0050DDA9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BBB55AA91C8F80020050DDA9 /* Project object */; +} diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..998a43398 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-iOS.xcscheme b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-iOS.xcscheme new file mode 100644 index 000000000..5ee563e39 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-iOS.xcscheme @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-macOS.xcscheme b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-macOS.xcscheme new file mode 100644 index 000000000..428bf2312 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-macOS.xcscheme @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-tvOS.xcscheme b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-tvOS.xcscheme new file mode 100644 index 000000000..118ccf6c1 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-tvOS.xcscheme @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-watchOS.xcscheme b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-watchOS.xcscheme new file mode 100644 index 000000000..2e2c0bf4f --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash.xcodeproj/xcshareddata/xcschemes/SipHash-watchOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/Info.plist b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/Info.plist new file mode 100644 index 000000000..85858d565 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + $(VERSION_STRING) + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/Primitive Types.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/Primitive Types.swift new file mode 100644 index 000000000..8e95d092e --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/Primitive Types.swift @@ -0,0 +1,171 @@ +// +// Primitive Types.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-11-14. +// Copyright © 2016-2017 Károly Lőrentey. +// + +extension SipHasher { + //MARK: Appending buffer slices + + /// Add the contents of `slice` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ slice: RandomAccessSlice) { + self.append(UnsafeRawBufferPointer(rebasing: slice)) + } + + //MARK: Appending Integers + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Bool) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Int) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: UInt) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Int64) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: UInt64) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Int32) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: UInt32) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Int16) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: UInt16) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Int8) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: UInt8) { + var data = value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } +} + +extension SipHasher { + //MARK: Appending Floating Point Types + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Float) { + var data = value.isZero ? 0.0 : value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Double) { + var data = value.isZero ? 0.0 : value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + + #if arch(i386) || arch(x86_64) + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Float80) { + var data = value.isZero ? 0.0 : value + // Float80 is 16 bytes wide but the last 6 are uninitialized. + let buffer = UnsafeRawBufferPointer(start: &data, count: 10) + append(buffer) + } + #endif +} + +#if os(macOS) || os(iOS) || os(watchOS) || os(tvOS) + import CoreGraphics + + extension SipHasher { + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: CGFloat) { + var data = value.isZero ? 0.0 : value + append(UnsafeRawBufferPointer(start: &data, count: MemoryLayout.size)) + } + } +#endif + +extension SipHasher { + //MARK: Appending Optionals + + /// Add `value` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ value: Value?) { + if let value = value { + self.append(1 as UInt8) + self.append(value) + } + else { + self.append(0 as UInt8) + } + } +} diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/RandomUInt64.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/RandomUInt64.swift new file mode 100644 index 000000000..1e0c03f89 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/RandomUInt64.swift @@ -0,0 +1,26 @@ +// +// RandomUInt64.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-11-14. +// Copyright © 2016-2017 Károly Lőrentey. +// + +#if os(iOS) || os(macOS) || os(watchOS) || os(tvOS) + import Darwin + + func randomUInt64() -> UInt64 { + return UInt64(arc4random()) << 32 | UInt64(arc4random()) + } +#elseif os(Linux) + import SwiftShims + + func randomUInt64() -> UInt64 { + return UInt64(_swift_stdlib_cxx11_mt19937()) << 32 | UInt64(_swift_stdlib_cxx11_mt19937()) + } +#else + func randomUInt64() -> UInt64 { + fatalError("Unsupported platform") + } +#endif + diff --git a/Example/web3swiftBrowser/Pods/SipHash/SipHash/SipHashable.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/SipHashable.swift similarity index 100% rename from Example/web3swiftBrowser/Pods/SipHash/SipHash/SipHashable.swift rename to Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/SipHashable.swift diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/SipHasher.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/SipHasher.swift new file mode 100644 index 000000000..8b6a81a14 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHash/SipHasher.swift @@ -0,0 +1,197 @@ +// +// SipHasher.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-03-08. +// Copyright © 2016-2017 Károly Lőrentey. + +private func rotateLeft(_ value: UInt64, by amount: UInt64) -> UInt64 { + return (value << amount) | (value >> (64 - amount)) +} + +/// An implementation of the [SipHash-2-4](https://131002.net/siphash) hashing algorithm, +/// suitable for use in projects outside the Swift standard library. +/// (The Swift stdlib already includes SipHash; unfortunately its API is not public.) +/// +/// SipHash was invented by Jean-Philippe Aumasson and Daniel J. Bernstein. +public struct SipHasher { + /// The number of compression rounds. + private static let c = 2 + /// The number of finalization rounds. + private static let d = 4 + + /// The default key, used by the default initializer. + /// Each process has a unique key, chosen randomly when the first instance of `SipHasher` is initialized. + static let key: (UInt64, UInt64) = (randomUInt64(), randomUInt64()) + + /// Word 0 of the internal state, initialized to ASCII encoding of "somepseu". + var v0: UInt64 = 0x736f6d6570736575 + /// Word 1 of the internal state, initialized to ASCII encoding of "dorandom". + var v1: UInt64 = 0x646f72616e646f6d + /// Word 2 of the internal state, initialized to ASCII encoding of "lygenera". + var v2: UInt64 = 0x6c7967656e657261 + /// Word 3 of the internal state, initialized to ASCII encoding of "tedbytes". + var v3: UInt64 = 0x7465646279746573 + + /// The current partial word, not yet mixed in with the internal state. + var pendingBytes: UInt64 = 0 + /// The number of bytes that are currently pending in `tailBytes`. Guaranteed to be between 0 and 7. + var pendingByteCount = 0 + /// The number of bytes collected so far, or -1 if the hash value has already been finalized. + var byteCount = 0 + + //MARK: Initializers + + /// Initialize a new instance with the default key, generated randomly the first time this initializer is called. + public init() { + self.init(k0: SipHasher.key.0, k1: SipHasher.key.1) + } + + /// Initialize a new instance with the specified key. + /// + /// - Parameter k0: The low 64 bits of the secret key. + /// - Parameter k1: The high 64 bits of the secret key. + public init(k0: UInt64, k1: UInt64) { + v0 ^= k0 + v1 ^= k1 + v2 ^= k0 + v3 ^= k1 + } + + private mutating func sipRound() { + v0 = v0 &+ v1 + v1 = rotateLeft(v1, by: 13) + v1 ^= v0 + v0 = rotateLeft(v0, by: 32) + v2 = v2 &+ v3 + v3 = rotateLeft(v3, by: 16) + v3 ^= v2 + v0 = v0 &+ v3 + v3 = rotateLeft(v3, by: 21) + v3 ^= v0 + v2 = v2 &+ v1 + v1 = rotateLeft(v1, by: 17) + v1 ^= v2 + v2 = rotateLeft(v2, by: 32) + } + + mutating func compressWord(_ m: UInt64) { + v3 ^= m + for _ in 0 ..< SipHasher.c { + sipRound() + } + v0 ^= m + } + + mutating func _finalize() -> UInt64 { + precondition(byteCount >= 0) + pendingBytes |= UInt64(byteCount) << 56 + byteCount = -1 + + compressWord(pendingBytes) + + v2 ^= 0xff + for _ in 0 ..< SipHasher.d { + sipRound() + } + + return v0 ^ v1 ^ v2 ^ v3 + } + + //MARK: Appending data + + /// Add all bytes in `buffer` to this hash. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func append(_ buffer: UnsafeRawBufferPointer) { + precondition(byteCount >= 0) + + // Use the first couple of bytes to complete the pending word. + var i = 0 + if pendingByteCount > 0 { + let readCount = min(buffer.count, 8 - pendingByteCount) + var m: UInt64 = 0 + switch readCount { + case 7: + m |= UInt64(buffer[6]) << 48 + fallthrough + case 6: + m |= UInt64(buffer[5]) << 40 + fallthrough + case 5: + m |= UInt64(buffer[4]) << 32 + fallthrough + case 4: + m |= UInt64(buffer[3]) << 24 + fallthrough + case 3: + m |= UInt64(buffer[2]) << 16 + fallthrough + case 2: + m |= UInt64(buffer[1]) << 8 + fallthrough + case 1: + m |= UInt64(buffer[0]) + default: + precondition(readCount == 0) + } + pendingBytes |= m << UInt64(pendingByteCount << 3) + pendingByteCount += readCount + i += readCount + + if pendingByteCount == 8 { + compressWord(pendingBytes) + pendingBytes = 0 + pendingByteCount = 0 + } + } + + let left = (buffer.count - i) & 7 + let end = (buffer.count - i) - left + while i < end { + var m: UInt64 = 0 + withUnsafeMutableBytes(of: &m) { p in + p.copyBytes(from: .init(rebasing: buffer[i ..< i + 8])) + } + compressWord(UInt64(littleEndian: m)) + i += 8 + } + + switch left { + case 7: + pendingBytes |= UInt64(buffer[i + 6]) << 48 + fallthrough + case 6: + pendingBytes |= UInt64(buffer[i + 5]) << 40 + fallthrough + case 5: + pendingBytes |= UInt64(buffer[i + 4]) << 32 + fallthrough + case 4: + pendingBytes |= UInt64(buffer[i + 3]) << 24 + fallthrough + case 3: + pendingBytes |= UInt64(buffer[i + 2]) << 16 + fallthrough + case 2: + pendingBytes |= UInt64(buffer[i + 1]) << 8 + fallthrough + case 1: + pendingBytes |= UInt64(buffer[i]) + default: + precondition(left == 0) + } + pendingByteCount = left + + byteCount += buffer.count + } + + //MARK: Finalization + + /// Finalize this hash and return the hash value. + /// + /// - Requires: `finalize()` hasn't been called on this instance yet. + public mutating func finalize() -> Int { + return Int(truncatingIfNeeded: _finalize()) + } +} diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/Info.plist b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/Info.plist new file mode 100644 index 000000000..ba72822e8 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/PrimitiveTypeTests.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/PrimitiveTypeTests.swift new file mode 100644 index 000000000..6cdb38885 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/PrimitiveTypeTests.swift @@ -0,0 +1,470 @@ +// +// PrimitiveTypeTests.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-11-14. +// Copyright © 2016-2017 Károly Lőrentey. +// + +import XCTest +@testable import SipHash + +class PrimitiveTypeTests: XCTestCase { + func testBoolTrue() { + let tests: [(Bool, [UInt8])] = [ + (false, [0]), + (true, [1]) + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testInt() { + let tests: [(Int, [UInt8])] + switch MemoryLayout.size { + case 8: + tests = [ + (0, [0, 0, 0, 0, 0, 0, 0, 0]), + (1, [1, 0, 0, 0, 0, 0, 0, 0]), + (0x0123456789abcdef, [0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01]), + (Int.max, [255, 255, 255, 255, 255, 255, 255, 127]), + (-1, [255, 255, 255, 255, 255, 255, 255, 255]), + (Int.min, [0, 0, 0, 0, 0, 0, 0, 128]), + ] + case 4: + tests = [ + (0, [0, 0, 0, 0]), + (1, [1, 0, 0, 0]), + (0x12345678, [0x78, 0x56, 0x34, 0x12]), + (Int.max, [255, 255, 255, 127]), + (-1, [255, 255, 255, 255]), + (Int.min, [0, 0, 0, 128]), + ] + default: + fatalError() + } + + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testUInt() { + let tests: [(UInt, [UInt8])] + switch MemoryLayout.size { + case 8: + tests = [ + (0, [0, 0, 0, 0, 0, 0, 0, 0]), + (1, [1, 0, 0, 0, 0, 0, 0, 0]), + (0x0123456789abcdef, [0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01]), + (UInt.max, [255, 255, 255, 255, 255, 255, 255, 255]), + ] + case 4: + tests = [ + (0, [0, 0, 0, 0]), + (1, [1, 0, 0, 0]), + (0x12345678, [0x78, 0x56, 0x34, 0x12]), + (0xffffffff, [255, 255, 255, 255]) + ] + default: + fatalError() + } + + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testInt64() { + let tests: [(Int64, [UInt8])] = [ + (0, [0, 0, 0, 0, 0, 0, 0, 0]), + (1, [1, 0, 0, 0, 0, 0, 0, 0]), + (0x0123456789abcdef, [0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01]), + (Int64.max, [255, 255, 255, 255, 255, 255, 255, 127]), + (-1, [255, 255, 255, 255, 255, 255, 255, 255]), + (Int64.min, [0, 0, 0, 0, 0, 0, 0, 128]), + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testUInt64() { + let tests: [(UInt64, [UInt8])] = [ + (0, [0, 0, 0, 0, 0, 0, 0, 0]), + (1, [1, 0, 0, 0, 0, 0, 0, 0]), + (0x0123456789abcdef, [0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01]), + (UInt64.max, [255, 255, 255, 255, 255, 255, 255, 255]), + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testInt32() { + let tests: [(Int32, [UInt8])] = [ + (0, [0, 0, 0, 0]), + (1, [1, 0, 0, 0]), + (0x12345678, [0x78, 0x56, 0x34, 0x12]), + (Int32.max, [255, 255, 255, 127]), + (-1, [255, 255, 255, 255]), + (Int32.min, [0, 0, 0, 128]), + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testUInt32() { + let tests: [(UInt32, [UInt8])] = [ + (0, [0, 0, 0, 0]), + (1, [1, 0, 0, 0]), + (0x12345678, [0x78, 0x56, 0x34, 0x12]), + (0xffffffff, [255, 255, 255, 255]) + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testInt16() { + let tests: [(Int16, [UInt8])] = [ + (0, [0, 0]), + (1, [1, 0]), + (0x1234, [0x34, 0x12]), + (0x7fff, [255, 127]), + (-1, [0xff, 0xff]), + (-42, [214, 0xff]), + (Int16.min, [0x00, 0x80]) + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testUInt16() { + let tests: [(UInt16, [UInt8])] = [ + (0, [0, 0]), + (1, [1, 0]), + (0x1234, [0x34, 0x12]), + (0xffff, [255, 255]) + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value.littleEndian) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testInt8() { + let tests: [(Int8, [UInt8])] = [ + (0, [0]), + (1, [1]), + (42, [42]), + (127, [127]), + (-1, [255]), + (-42, [214]), + (-128, [128]) + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testUInt8() { + let tests: [(UInt8, [UInt8])] = [ + (0, [0]), + (1, [1]), + (42, [42]), + (255, [255]) + ] + for (value, data) in tests { + var hash1 = SipHasher() + hash1.append(value) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + data.withUnsafeBufferPointer { buffer in + hash2.append(UnsafeRawBufferPointer(buffer)) + } + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2, "Mismatching hash for \(value)") + } + } + + func testFloat() { + let zeroA: Int = { + var h = SipHasher() + h.append(0.0 as Float) + return h.finalize() + }() + + let zeroB: Int = { + var h = SipHasher() + h.append(-0.0 as Float) + return h.finalize() + }() + + XCTAssertEqual(zeroA, zeroB, "+0.0 and -0.0 should have the same hash value") + + let oneHash: Int = { + var h = SipHasher() + h.append(1.0 as Float) + return h.finalize() + }() + let oneExpected: Int = { + var h = SipHasher() + let d = Array([0, 0, 128, 63]) + d.withUnsafeBufferPointer { b in + h.append(UnsafeRawBufferPointer(b)) + } + return h.finalize() + }() + XCTAssertEqual(oneHash, oneExpected) + } + + func testDouble() { + let zeroA: Int = { + var h = SipHasher() + h.append(0.0 as Double) + return h.finalize() + }() + + let zeroB: Int = { + var h = SipHasher() + h.append(-0.0 as Double) + return h.finalize() + }() + + XCTAssertEqual(zeroA, zeroB, "+0.0 and -0.0 should have the same hash value") + + let oneHash: Int = { + var h = SipHasher() + h.append(1.0 as Double) + return h.finalize() + }() + let oneExpected: Int = { + var h = SipHasher() + let d = Array([0, 0, 0, 0, 0, 0, 240, 63]) + d.withUnsafeBufferPointer { b in + h.append(UnsafeRawBufferPointer(b)) + } + return h.finalize() + }() + XCTAssertEqual(oneHash, oneExpected) + } + + #if arch(i386) || arch(x86_64) + func testFloat80() { + let f1: Float80 = 0.0 + let f2: Float80 = -0.0 + + XCTAssertEqual(f1, f2) + + let zeroA: Int = { + var h = SipHasher() + h.append(f1) + return h.finalize() + }() + + let zeroB: Int = { + var h = SipHasher() + h.append(f2) + return h.finalize() + }() + + XCTAssertEqual(zeroA, zeroB, "+0.0 and -0.0 should have the same hash value") + + let oneHash: Int = { + var h = SipHasher() + h.append(1.0 as Float80) + return h.finalize() + }() + let oneExpected: Int = { + var h = SipHasher() + let d = Array([0, 0, 0, 0, 0, 0, 0, 128, 255, 63]) + d.withUnsafeBufferPointer { b in + h.append(UnsafeRawBufferPointer(b)) + } + return h.finalize() + }() + XCTAssertEqual(oneHash, oneExpected) + } + #endif + + #if os(macOS) || os(iOS) || os(watchOS) || os(tvOS) + func testCGFloat() { + let zeroA: Int = { + var h = SipHasher() + h.append(0.0 as CGFloat) + return h.finalize() + }() + + let zeroB: Int = { + var h = SipHasher() + h.append(-0.0 as CGFloat) + return h.finalize() + }() + + XCTAssertEqual(zeroA, zeroB, "+0.0 and -0.0 should have the same hash value") + + let oneHash: Int = { + var h = SipHasher() + h.append(1.0 as CGFloat) + return h.finalize() + }() + let oneExpected: Int = { + var h = SipHasher() + let d: Array + if CGFloat.NativeType.self == Double.self { + d = [0, 0, 0, 0, 0, 0, 240, 63] + } + else if CGFloat.NativeType.self == Float.self { + d = [0, 0, 128, 63] + } + else { + fatalError() + } + d.withUnsafeBufferPointer { b in + h.append(UnsafeRawBufferPointer(b)) + } + return h.finalize() + }() + XCTAssertEqual(oneHash, oneExpected) + + } + #endif + + func testOptional_nil() { + let expected: Int = { + var hasher = SipHasher() + hasher.append(0 as UInt8) + return hasher.finalize() + }() + + let actual: Int = { + var hasher = SipHasher() + hasher.append(nil as Int?) + return hasher.finalize() + }() + + XCTAssertEqual(actual, expected) + } + + func testOptional_nonnil() { + let expected: Int = { + var hasher = SipHasher() + hasher.append(1 as UInt8) + hasher.append(42) + return hasher.finalize() + }() + + let actual: Int = { + var hasher = SipHasher() + hasher.append(42 as Int?) + return hasher.finalize() + }() + + XCTAssertEqual(actual, expected) + } +} diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/SipHashTests.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/SipHashTests.swift new file mode 100644 index 000000000..cb824b9bd --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/SipHashTests.swift @@ -0,0 +1,143 @@ +// +// SipHashTests.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-03-08. +// Copyright © 2016-2017 Károly Lőrentey. +// + +import XCTest +@testable import SipHash + +private let vectors: [UInt8] = [ // From https://github.com/veorq/SipHash/blob/master/main.c + 0x31, 0x0e, 0x0e, 0xdd, 0x47, 0xdb, 0x6f, 0x72, + 0xfd, 0x67, 0xdc, 0x93, 0xc5, 0x39, 0xf8, 0x74, + 0x5a, 0x4f, 0xa9, 0xd9, 0x09, 0x80, 0x6c, 0x0d, + 0x2d, 0x7e, 0xfb, 0xd7, 0x96, 0x66, 0x67, 0x85, + 0xb7, 0x87, 0x71, 0x27, 0xe0, 0x94, 0x27, 0xcf, + 0x8d, 0xa6, 0x99, 0xcd, 0x64, 0x55, 0x76, 0x18, + 0xce, 0xe3, 0xfe, 0x58, 0x6e, 0x46, 0xc9, 0xcb, + 0x37, 0xd1, 0x01, 0x8b, 0xf5, 0x00, 0x02, 0xab, + 0x62, 0x24, 0x93, 0x9a, 0x79, 0xf5, 0xf5, 0x93, + 0xb0, 0xe4, 0xa9, 0x0b, 0xdf, 0x82, 0x00, 0x9e, + 0xf3, 0xb9, 0xdd, 0x94, 0xc5, 0xbb, 0x5d, 0x7a, + 0xa7, 0xad, 0x6b, 0x22, 0x46, 0x2f, 0xb3, 0xf4, + 0xfb, 0xe5, 0x0e, 0x86, 0xbc, 0x8f, 0x1e, 0x75, + 0x90, 0x3d, 0x84, 0xc0, 0x27, 0x56, 0xea, 0x14, + 0xee, 0xf2, 0x7a, 0x8e, 0x90, 0xca, 0x23, 0xf7, + 0xe5, 0x45, 0xbe, 0x49, 0x61, 0xca, 0x29, 0xa1, + 0xdb, 0x9b, 0xc2, 0x57, 0x7f, 0xcc, 0x2a, 0x3f, + 0x94, 0x47, 0xbe, 0x2c, 0xf5, 0xe9, 0x9a, 0x69, + 0x9c, 0xd3, 0x8d, 0x96, 0xf0, 0xb3, 0xc1, 0x4b, + 0xbd, 0x61, 0x79, 0xa7, 0x1d, 0xc9, 0x6d, 0xbb, + 0x98, 0xee, 0xa2, 0x1a, 0xf2, 0x5c, 0xd6, 0xbe, + 0xc7, 0x67, 0x3b, 0x2e, 0xb0, 0xcb, 0xf2, 0xd0, + 0x88, 0x3e, 0xa3, 0xe3, 0x95, 0x67, 0x53, 0x93, + 0xc8, 0xce, 0x5c, 0xcd, 0x8c, 0x03, 0x0c, 0xa8, + 0x94, 0xaf, 0x49, 0xf6, 0xc6, 0x50, 0xad, 0xb8, + 0xea, 0xb8, 0x85, 0x8a, 0xde, 0x92, 0xe1, 0xbc, + 0xf3, 0x15, 0xbb, 0x5b, 0xb8, 0x35, 0xd8, 0x17, + 0xad, 0xcf, 0x6b, 0x07, 0x63, 0x61, 0x2e, 0x2f, + 0xa5, 0xc9, 0x1d, 0xa7, 0xac, 0xaa, 0x4d, 0xde, + 0x71, 0x65, 0x95, 0x87, 0x66, 0x50, 0xa2, 0xa6, + 0x28, 0xef, 0x49, 0x5c, 0x53, 0xa3, 0x87, 0xad, + 0x42, 0xc3, 0x41, 0xd8, 0xfa, 0x92, 0xd8, 0x32, + 0xce, 0x7c, 0xf2, 0x72, 0x2f, 0x51, 0x27, 0x71, + 0xe3, 0x78, 0x59, 0xf9, 0x46, 0x23, 0xf3, 0xa7, + 0x38, 0x12, 0x05, 0xbb, 0x1a, 0xb0, 0xe0, 0x12, + 0xae, 0x97, 0xa1, 0x0f, 0xd4, 0x34, 0xe0, 0x15, + 0xb4, 0xa3, 0x15, 0x08, 0xbe, 0xff, 0x4d, 0x31, + 0x81, 0x39, 0x62, 0x29, 0xf0, 0x90, 0x79, 0x02, + 0x4d, 0x0c, 0xf4, 0x9e, 0xe5, 0xd4, 0xdc, 0xca, + 0x5c, 0x73, 0x33, 0x6a, 0x76, 0xd8, 0xbf, 0x9a, + 0xd0, 0xa7, 0x04, 0x53, 0x6b, 0xa9, 0x3e, 0x0e, + 0x92, 0x59, 0x58, 0xfc, 0xd6, 0x42, 0x0c, 0xad, + 0xa9, 0x15, 0xc2, 0x9b, 0xc8, 0x06, 0x73, 0x18, + 0x95, 0x2b, 0x79, 0xf3, 0xbc, 0x0a, 0xa6, 0xd4, + 0xf2, 0x1d, 0xf2, 0xe4, 0x1d, 0x45, 0x35, 0xf9, + 0x87, 0x57, 0x75, 0x19, 0x04, 0x8f, 0x53, 0xa9, + 0x10, 0xa5, 0x6c, 0xf5, 0xdf, 0xcd, 0x9a, 0xdb, + 0xeb, 0x75, 0x09, 0x5c, 0xcd, 0x98, 0x6c, 0xd0, + 0x51, 0xa9, 0xcb, 0x9e, 0xcb, 0xa3, 0x12, 0xe6, + 0x96, 0xaf, 0xad, 0xfc, 0x2c, 0xe6, 0x66, 0xc7, + 0x72, 0xfe, 0x52, 0x97, 0x5a, 0x43, 0x64, 0xee, + 0x5a, 0x16, 0x45, 0xb2, 0x76, 0xd5, 0x92, 0xa1, + 0xb2, 0x74, 0xcb, 0x8e, 0xbf, 0x87, 0x87, 0x0a, + 0x6f, 0x9b, 0xb4, 0x20, 0x3d, 0xe7, 0xb3, 0x81, + 0xea, 0xec, 0xb2, 0xa3, 0x0b, 0x22, 0xa8, 0x7f, + 0x99, 0x24, 0xa4, 0x3c, 0xc1, 0x31, 0x57, 0x24, + 0xbd, 0x83, 0x8d, 0x3a, 0xaf, 0xbf, 0x8d, 0xb7, + 0x0b, 0x1a, 0x2a, 0x32, 0x65, 0xd5, 0x1a, 0xea, + 0x13, 0x50, 0x79, 0xa3, 0x23, 0x1c, 0xe6, 0x60, + 0x93, 0x2b, 0x28, 0x46, 0xe4, 0xd7, 0x06, 0x66, + 0xe1, 0x91, 0x5f, 0x5c, 0xb1, 0xec, 0xa4, 0x6c, + 0xf3, 0x25, 0x96, 0x5c, 0xa1, 0x6d, 0x62, 0x9f, + 0x57, 0x5f, 0xf2, 0x8e, 0x60, 0x38, 0x1b, 0xe5, + 0x72, 0x45, 0x06, 0xeb, 0x4c, 0x32, 0x8a, 0x95, +] + +private func vector(_ i: Int) -> Int { + let v: UInt64 = vectors.withUnsafeBufferPointer { buffer in + let b = UnsafeRawBufferPointer(buffer) + return b.load(fromByteOffset: 8 * i, as: UInt64.self) + } + return Int(truncatingIfNeeded: v) +} + +private let (k0, k1): (UInt64, UInt64) = Array(UInt8(0) ..< UInt8(16)).withUnsafeBufferPointer { buffer in + let b = UnsafeRawBufferPointer(buffer) + return (b.load(fromByteOffset: 0, as: UInt64.self), b.load(fromByteOffset: 8, as: UInt64.self)) +} + +private let input: [UInt8] = Array(0 ..< 63) + +class SipHashTests: XCTestCase { + func testVectors() { + input.withUnsafeBufferPointer { buffer in + for i in 0 ..< 64 { + let b = UnsafeRawBufferPointer(buffer)[0 ..< i] + let expected = vector(i) + var hash = SipHasher(k0: k0, k1: k1) + hash.append(b) + let actual = hash.finalize() + XCTAssertEqual(actual, expected, "Test vector failed for \(i) bytes") + } + } + } + + func testSplits() { + for i in 0 ..< 64 { + input.withUnsafeBufferPointer { buffer in + let b = UnsafeRawBufferPointer(buffer) + let expected = vector(63) + + var hash = SipHasher(k0: k0, k1: k1) + hash.append(b[0 ..< i]) + hash.append(b[i ..< 63]) + let actual = hash.finalize() + XCTAssertEqual(actual, expected, "Test vector #63 failed for split at \(i) bytes") + } + } + } + + func testDefaultKey() { + // Well, we can't really test that the key is random. + // But we can check that it doesn't change. + + input.withUnsafeBufferPointer { buffer in + for i in 0 ..< 64 { + let b = UnsafeRawBufferPointer(buffer)[0 ..< i] + + var hash1 = SipHasher() + hash1.append(b) + let h1 = hash1.finalize() + + var hash2 = SipHasher() + hash2.append(b) + let h2 = hash2.finalize() + + XCTAssertEqual(h1, h2) + } + } + } +} diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/SipHashableTests.swift b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/SipHashableTests.swift new file mode 100644 index 000000000..a4f56f3b5 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/SipHashTests/SipHashableTests.swift @@ -0,0 +1,59 @@ +// +// SipHashableTests.swift +// SipHash +// +// Created by Károly Lőrentey on 2016-11-14. +// Copyright © 2016-2017 Károly Lőrentey. +// + +import XCTest +@testable import SipHash + +private struct Book: SipHashable { + let title: String + let pageCount: Int + + func appendHashes(to hasher: inout SipHasher) { + hasher.append(title) + hasher.append(pageCount) + } + + static func ==(left: Book, right: Book) -> Bool { + return left.title == right.title && left.pageCount == right.pageCount + } +} + +class SipHashableTests: XCTestCase { + func testBookHashValue() { + let book = Book(title: "The Colour of Magic", pageCount: 206) + let actual = book.hashValue + + var hasher = SipHasher() + hasher.append(book.title.hashValue) + hasher.append(book.pageCount) + let expected = hasher.finalize() + + XCTAssertEqual(actual, expected) + } + + func testBookEquality() { + let book1 = Book(title: "The Colour of Magic", pageCount: 206) + let hash1 = book1.hashValue + + let book2 = Book(title: "The Colour of Magic", pageCount: 206) + let hash2 = book2.hashValue + + XCTAssertEqual(hash1, hash2) + } + + func testAddSipHashable() { + let book = Book(title: "The Colour of Magic", pageCount: 206) + let hash1 = book.hashValue + + var hasher = SipHasher() + hasher.append(book) + let hash2 = hasher.finalize() + + XCTAssertEqual(hash1, hash2) + } +} diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Protocols.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Protocols.html new file mode 100644 index 000000000..c9469dae6 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Protocols.html @@ -0,0 +1,146 @@ + + + + Protocols Reference + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SipHashable + +
    +
    +
    +
    +
    +
    +

    A variant of Hashable that makes it simpler to generate good hash values.

    + +

    Instead of hashValue, you need to implement addHashes, adding +data that should contribute to the hash to the supplied hasher. +The hasher takes care of blending the supplied data together.

    + +

    Example implementation:

    + +
    struct Book: SipHashable {
    +    var title: String
    +    var pageCount: Int
    +
    +    func appendHashes(to hasher: inout SipHasher) {
    +        hasher.append(title)
    +        hasher.append(pageCount)
    +    }
    +
    +    static func ==(left: Book, right: Book) -> Bool {
    +        return left.title == right.title && left.pageCount == right.pageCount
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SipHashable: Hashable
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Protocols/SipHashable.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Protocols/SipHashable.html new file mode 100644 index 000000000..6ff0b3fd0 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Protocols/SipHashable.html @@ -0,0 +1,192 @@ + + + + SipHashable Protocol Reference + + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

SipHashable

+
+
+
public protocol SipHashable: Hashable
+ +
+
+

A variant of Hashable that makes it simpler to generate good hash values.

+ +

Instead of hashValue, you need to implement addHashes, adding +data that should contribute to the hash to the supplied hasher. +The hasher takes care of blending the supplied data together.

+ +

Example implementation:

+ +
struct Book: SipHashable {
+    var title: String
+    var pageCount: Int
+
+    func appendHashes(to hasher: inout SipHasher) {
+        hasher.append(title)
+        hasher.append(pageCount)
+    }
+
+    static func ==(left: Book, right: Book) -> Bool {
+        return left.title == right.title && left.pageCount == right.pageCount
+    }
+}
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + appendHashes(to:) + +
    +
    +
    +
    +
    +
    +

    Add components of self that should contribute to hashing to hash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func appendHashes(to hasher: inout SipHasher)
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + hashValue + + + Extension method + +
    +
    +
    +
    +
    +
    +

    The hash value, calculated using addHashes.

    + +

    Hash values are not guaranteed to be equal across different executions of your program. +Do not save hash values to use during a future execution.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hashValue: Int
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Structs.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Structs.html new file mode 100644 index 000000000..5d5d09443 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Structs.html @@ -0,0 +1,129 @@ + + + + Structs Reference + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

Structs

+

The following structs are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SipHasher + +
    +
    +
    +
    +
    +
    +

    An implementation of the SipHash-2-4 hashing algorithm, +suitable for use in projects outside the Swift standard library. +(The Swift stdlib already includes SipHash; unfortunately its API is not public.)

    + +

    SipHash was invented by Jean-Philippe Aumasson and Daniel J. Bernstein.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct SipHasher
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Structs/SipHasher.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Structs/SipHasher.html new file mode 100644 index 000000000..58d2f368c --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/Structs/SipHasher.html @@ -0,0 +1,1007 @@ + + + + SipHasher Struct Reference + + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

SipHasher

+
+
+
public struct SipHasher
+ +
+
+

An implementation of the SipHash-2-4 hashing algorithm, +suitable for use in projects outside the Swift standard library. +(The Swift stdlib already includes SipHash; unfortunately its API is not public.)

+ +

SipHash was invented by Jean-Philippe Aumasson and Daniel J. Bernstein.

+ +
+
+ +
+
+
+ +
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Initialize a new instance with the default key, generated randomly the first time this initializer is called.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + init(k0:k1:) + +
    +
    +
    +
    +
    +
    +

    Initialize a new instance with the specified key.

    + +
    +

    Parameter

    + Parameter k0: The low 64 bits of the secret key. + +
    + +
    +

    Parameter

    + Parameter k1: The high 64 bits of the secret key. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(k0: UInt64, k1: UInt64)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + k0 + + +
    +

    The low 64 bits of the secret key.

    + +
    +
    + + k1 + + +
    +

    The high 64 bits of the secret key.

    + +
    +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add all bytes in buffer to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ buffer: UnsafeRawBufferPointer)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + finalize() + +
    +
    +
    +
    +
    +
    +

    Finalize this hash and return the hash value.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func finalize() -> Int
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add hashing components in value to this hash. This method simply calls value.addHashes.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append<H: SipHashable>(_ value: H)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add the hash value of value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append<H: Hashable>(_ value: H)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Bool)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int64)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt64)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int32)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt32)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int16)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt16)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int8)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt8)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Float)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Double)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Float80)
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: CGFloat)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append<Value: Hashable>(_ value: Value?)
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/css/highlight.css b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/css/highlight.css new file mode 100644 index 000000000..d0db0e13b --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/css/jazzy.css b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/css/jazzy.css new file mode 100644 index 000000000..75b54333b --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/css/jazzy.css @@ -0,0 +1,329 @@ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +p > code, li > code { + background: #f7f7f7; + padding: .2em; } + p > code:before, p > code:after, li > code:before, li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } + +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } + +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } + +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token { + padding-left: 3px; + margin-left: 0px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } +html.dash .height-container { + display: block; } diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Info.plist b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Info.plist new file mode 100644 index 000000000..b138eba13 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.siphash + CFBundleName + SipHash + DocSetPlatformFamily + siphash + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Protocols.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 000000000..c9469dae6 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,146 @@ + + + + Protocols Reference + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SipHashable + +
    +
    +
    +
    +
    +
    +

    A variant of Hashable that makes it simpler to generate good hash values.

    + +

    Instead of hashValue, you need to implement addHashes, adding +data that should contribute to the hash to the supplied hasher. +The hasher takes care of blending the supplied data together.

    + +

    Example implementation:

    + +
    struct Book: SipHashable {
    +    var title: String
    +    var pageCount: Int
    +
    +    func appendHashes(to hasher: inout SipHasher) {
    +        hasher.append(title)
    +        hasher.append(pageCount)
    +    }
    +
    +    static func ==(left: Book, right: Book) -> Bool {
    +        return left.title == right.title && left.pageCount == right.pageCount
    +    }
    +}
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol SipHashable: Hashable
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Protocols/SipHashable.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Protocols/SipHashable.html new file mode 100644 index 000000000..6ff0b3fd0 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Protocols/SipHashable.html @@ -0,0 +1,192 @@ + + + + SipHashable Protocol Reference + + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

SipHashable

+
+
+
public protocol SipHashable: Hashable
+ +
+
+

A variant of Hashable that makes it simpler to generate good hash values.

+ +

Instead of hashValue, you need to implement addHashes, adding +data that should contribute to the hash to the supplied hasher. +The hasher takes care of blending the supplied data together.

+ +

Example implementation:

+ +
struct Book: SipHashable {
+    var title: String
+    var pageCount: Int
+
+    func appendHashes(to hasher: inout SipHasher) {
+        hasher.append(title)
+        hasher.append(pageCount)
+    }
+
+    static func ==(left: Book, right: Book) -> Bool {
+        return left.title == right.title && left.pageCount == right.pageCount
+    }
+}
+
+ +
+
+ +
+
+
+
    +
  • +
    + + + + appendHashes(to:) + +
    +
    +
    +
    +
    +
    +

    Add components of self that should contribute to hashing to hash.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func appendHashes(to hasher: inout SipHasher)
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + hashValue + + + Extension method + +
    +
    +
    +
    +
    +
    +

    The hash value, calculated using addHashes.

    + +

    Hash values are not guaranteed to be equal across different executions of your program. +Do not save hash values to use during a future execution.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hashValue: Int
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Structs.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 000000000..5d5d09443 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,129 @@ + + + + Structs Reference + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

Structs

+

The following structs are available globally.

+ +
+
+ +
+
+
+
    +
  • +
    + + + + SipHasher + +
    +
    +
    +
    +
    +
    +

    An implementation of the SipHash-2-4 hashing algorithm, +suitable for use in projects outside the Swift standard library. +(The Swift stdlib already includes SipHash; unfortunately its API is not public.)

    + +

    SipHash was invented by Jean-Philippe Aumasson and Daniel J. Bernstein.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct SipHasher
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Structs/SipHasher.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Structs/SipHasher.html new file mode 100644 index 000000000..58d2f368c --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/Structs/SipHasher.html @@ -0,0 +1,1007 @@ + + + + SipHasher Struct Reference + + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+

SipHasher

+
+
+
public struct SipHasher
+ +
+
+

An implementation of the SipHash-2-4 hashing algorithm, +suitable for use in projects outside the Swift standard library. +(The Swift stdlib already includes SipHash; unfortunately its API is not public.)

+ +

SipHash was invented by Jean-Philippe Aumasson and Daniel J. Bernstein.

+ +
+
+ +
+
+
+ +
    +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Initialize a new instance with the default key, generated randomly the first time this initializer is called.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + init(k0:k1:) + +
    +
    +
    +
    +
    +
    +

    Initialize a new instance with the specified key.

    + +
    +

    Parameter

    + Parameter k0: The low 64 bits of the secret key. + +
    + +
    +

    Parameter

    + Parameter k1: The high 64 bits of the secret key. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(k0: UInt64, k1: UInt64)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + k0 + + +
    +

    The low 64 bits of the secret key.

    + +
    +
    + + k1 + + +
    +

    The high 64 bits of the secret key.

    + +
    +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add all bytes in buffer to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ buffer: UnsafeRawBufferPointer)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + finalize() + +
    +
    +
    +
    +
    +
    +

    Finalize this hash and return the hash value.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func finalize() -> Int
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add hashing components in value to this hash. This method simply calls value.addHashes.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append<H: SipHashable>(_ value: H)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add the hash value of value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append<H: Hashable>(_ value: H)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Bool)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int64)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt64)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int32)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt32)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int16)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt16)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Int8)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: UInt8)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Float)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Double)
    + +
    +
    + +
    +
    +
  • +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: Float80)
    + +
    +
    + +
    +
    +
  • +
+
+
+
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append(_ value: CGFloat)
    + +
    +
    + +
    +
    +
  • +
+
+
+ +
    +
  • +
    + + + + append(_:) + +
    +
    +
    +
    +
    +
    +

    Add value to this hash.

    + +
    +

    Requires

    + finalize() hasn’t been called on this instance yet. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public mutating func append<Value: Hashable>(_ value: Value?)
    + +
    +
    + +
    +
    +
  • +
+
+
+
+ +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/css/highlight.css b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 000000000..d0db0e13b --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/css/jazzy.css b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 000000000..75b54333b --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,329 @@ +*, *:before, *:after { + box-sizing: inherit; } + +body { + margin: 0; + background: #fff; + color: #333; + font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: .2px; + -webkit-font-smoothing: antialiased; + box-sizing: border-box; } + +h1 { + font-size: 2rem; + font-weight: 700; + margin: 1.275em 0 0.6em; } + +h2 { + font-size: 1.75rem; + font-weight: 700; + margin: 1.275em 0 0.3em; } + +h3 { + font-size: 1.5rem; + font-weight: 700; + margin: 1em 0 0.3em; } + +h4 { + font-size: 1.25rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h5 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; } + +h6 { + font-size: 1rem; + font-weight: 700; + margin: 1.275em 0 0.85em; + color: #777; } + +p { + margin: 0 0 1em; } + +ul, ol { + padding: 0 0 0 2em; + margin: 0 0 0.85em; } + +blockquote { + margin: 0 0 0.85em; + padding: 0 15px; + color: #858585; + border-left: 4px solid #e5e5e5; } + +img { + max-width: 100%; } + +a { + color: #4183c4; + text-decoration: none; } + a:hover, a:focus { + outline: 0; + text-decoration: underline; } + +table { + background: #fff; + width: 100%; + border-collapse: collapse; + border-spacing: 0; + overflow: auto; + margin: 0 0 0.85em; } + +tr:nth-child(2n) { + background-color: #fbfbfb; } + +th, td { + padding: 6px 13px; + border: 1px solid #ddd; } + +pre { + margin: 0 0 1.275em; + padding: .85em 1em; + overflow: auto; + background: #f7f7f7; + font-size: .85em; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +code { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } + +p > code, li > code { + background: #f7f7f7; + padding: .2em; } + p > code:before, p > code:after, li > code:before, li > code:after { + letter-spacing: -.2em; + content: "\00a0"; } + +pre code { + padding: 0; + white-space: pre; } + +.content-wrapper { + display: flex; + flex-direction: column; } + @media (min-width: 768px) { + .content-wrapper { + flex-direction: row; } } + +.header { + display: flex; + padding: 8px; + font-size: 0.875em; + background: #444; + color: #999; } + +.header-col { + margin: 0; + padding: 0 8px; } + +.header-col--primary { + flex: 1; } + +.header-link { + color: #fff; } + +.header-icon { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + +.breadcrumbs { + font-size: 0.875em; + padding: 8px 16px; + margin: 0; + background: #fbfbfb; + border-bottom: 1px solid #ddd; } + +.carat { + height: 10px; + margin: 0 5px; } + +.navigation { + order: 2; } + @media (min-width: 768px) { + .navigation { + order: 1; + width: 25%; + max-width: 300px; + padding-bottom: 64px; + overflow: hidden; + word-wrap: normal; + background: #fbfbfb; + border-right: 1px solid #ddd; } } + +.nav-groups { + list-style-type: none; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #ddd; + padding: 8px 0 8px 16px; } + +.nav-group-name-link { + color: #333; } + +.nav-group-tasks { + margin: 8px 0; + padding: 0 0 0 8px; } + +.nav-group-task { + font-size: 1em; + list-style-type: none; + white-space: nowrap; } + +.nav-group-task-link { + color: #808080; } + +.main-content { + order: 1; } + @media (min-width: 768px) { + .main-content { + order: 2; + flex: 1; + padding-bottom: 60px; } } + +.section { + padding: 0 32px; + border-bottom: 1px solid #ddd; } + +.section-content { + max-width: 834px; + margin: 0 auto; + padding: 16px 0; } + +.section-name { + color: #666; + display: block; } + +.declaration .highlight { + overflow-x: initial; + padding: 8px 0; + margin: 0; + background-color: transparent; + border: none; } + +.task-group-section { + border-top: 1px solid #ddd; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; } + +.item-container { + padding: 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; } + .item .token { + padding-left: 3px; + margin-left: 0px; + font-size: 1rem; } + .item .declaration-note { + font-size: .85em; + color: #808080; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #ddd; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + left: 21px; + top: 7px; + display: block; + position: absolute; + width: 12px; + height: 12px; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; + background: #fff; + transform: rotate(45deg); } + +.height-container { + display: none; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #fff; + border: 1px solid #ddd; + border-top-width: 0; + padding-top: 10px; + padding-bottom: 5px; + padding: 8px 16px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4183c4; } + +.aside-warning { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #ddd; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +.footer { + padding: 8px 16px; + background: #444; + color: #ddd; + font-size: 0.8em; } + .footer p { + margin: 8px 0; } + .footer a { + color: #fff; } + +html.dash .header, html.dash .breadcrumbs, html.dash .navigation { + display: none; } +html.dash .height-container { + display: block; } diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/carat.png b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 000000000..29d2f7fd4 Binary files /dev/null and b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/carat.png differ diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/dash.png b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 000000000..6f694c7a0 Binary files /dev/null and b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/dash.png differ diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/gh.png b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/gh.png new file mode 100755 index 000000000..628da97c7 Binary files /dev/null and b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/img/gh.png differ diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/index.html b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/index.html new file mode 100644 index 000000000..29353347d --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,225 @@ + + + + SipHash Reference + + + + + + + + + + + + +
+

+ + SipHash Docs + + (100% documented) +

+ +

+ + + View on GitHub + +

+ +

+ + + Install in Dash + +

+
+ + + +
+ +
+ +
+
+ +

SipHash

+ +

Swift 3.0 +License +Platform

+ +

Build Status +Code Coverage +Documented

+ +

Carthage compatible +CocoaPod Version

+ +

SipHash is a pure Swift implementation of the SipHash hashing algorithm designed by +Jean-Philippe Aumasson and Daniel J. Bernstein in 2012:

+ +
+

SipHash is a family of pseudorandom functions (a.k.a. keyed hash functions) optimized for speed on short messages.

+ +

Target applications include network traffic authentication and defense against hash-flooding DoS attacks.

+ +

SipHash is secure, fast, and simple (for real): +- SipHash is simpler and faster than previous cryptographic algorithms (e.g. MACs based on universal hashing) +- SipHash is competitive in performance with insecure non-cryptographic algorithms (e.g. MurmurHash)

+ +

131002.net

+
+ +

SipHash has a variety of flavors; this package implements the one called SipHash-2-4.

+ +

Note that the Swift Standard Library already includes an implementation of SipHash-2-4 and SipHash-1-3; +however, the APIs are currently private and not available for use outside of stdlib. This package provides an +independent implementation that’s available for use in third-party code.

+ +

SipHash requires Swift 3.0.1.

+

Sample Code

+
import SipHash
+
+// `SipHashable` is like `Hashable`, but simpler.
+struct Book: SipHashable {
+    let title: String
+    let pageCount: Int
+
+    // You need to implement this method instead of `hashValue`. 
+    func appendHashes(to hasher: inout SipHasher) {
+         // Simply append the fields you want to include in the hash.
+         hasher.append(title)
+         hasher.append(pageCount)
+    }
+
+    static func ==(left: Book, right: Book) -> Bool {
+         return left.title == right.title && left.pageCount == right.pageCount
+    }
+}
+
+// You can now use Books in sets or as dictionary keys.
+let book = Book(title: "The Colour of Magic", pageCount: 206)
+let books: Set<Book> = [book]
+
+
+// If you prefer to do so, you may also create & use hashers directly.
+var hasher = SipHasher()
+hasher.add(book)
+hasher.add(42)
+// Finalizing the hasher extracts the hash value and invalidates it.
+let hash = hasher.finalize() 
+
+

Why Would I Use SipHash?

+ +

Writing a good implementation of hashValue is hard, even if we just need to combine the values of a couple of fields. +We need to come up with a deterministic function that blends the field values well, producing a fixed-width +result without too many collisions on typical inputs. But how many collisions are too many? Do we even know what +our typical inputs look like? For me, the answer to both of these questions is usually I have absolutely no idea, +and I bet you have the same problem.

+ +

Thus, verifying that our hashValue implementations work well is an exercise in frustration.

+ +

We need to somehow check the properties of the hash function by looking at its behavior given various inputs. +It is easy enough to write tests for the requirement that equal values have equal hashValues. +But verifying that the hash has few collisions requires making some assumptions on the +statistical properties of typical inputs – and even if we’d be somehow confident enough to do that, writing the code +to do it is way too complicated.

+ +

Instead of rolling your own ad-hoc hash function, why not just use an algorithm designed specifically to blend data +into a hash? Using a standardized algorithm means we don’t need to worry about collision behavior any more: if the +algorithm was designed well, we’ll always have good results.

+ +

The SipHash algorithm is a particularly good choice for hashing. It implements a 64-bit cryptographic +message-authentication code (MAC) with a 256-bit internal state initialized from a 128-bit secret key that’s (typically) +randomly generated for each execution of the binary. +SipHash is designed to protect against hash collision attacks, while remaining simple to use and fast. +It is already used by Perl, Python, Ruby, Rust, and even Swift itself – which is why the documentation of Hashable +explicitly warns that the value returned by hashValue may be different across executions.

+ +

The standard library already implements SipHash, but the implementation is private. (It is technically available +for use, but it is not formally part of the stdlib API, and it is subject to change/removal across even point releases.) +I expect a refactored version of stdlib’s SipHash will become available as public API in a future Swift release. +But while we’re waiting for that, this package provides an alternative implementation that is available today.

+

Is this code full of bugs?

+ +

Indubitably. Please report all bugs you find!

+ +

The package has 100% unit test coverage. Unfortunately this doesn’t tell you much about its reliability in practice.

+ +

The test suite verifies that the package generates values that match the test vectors supplied by SipHash’s original +authors, which makes me reasonably confident that this package implements SipHash correctly. +Obviously, your mileage may vary.

+

Reference docs

+ +

Nicely formatted reference docs are available courtesy of Jazzy.

+

Installation

+

CocoaPods

+ +

If you use CocoaPods, you can start using SipHash by including it as a dependency in your Podfile:

+
pod 'SipHash', '~> 1.0'
+
+

Carthage

+ +

For Carthage, add the following line to your Cartfile:

+
github "lorentey/SipHash" ~> 1.0
+
+

Swift Package Manager

+ +

For Swift Package Manager, add SipHash to the dependencies list inside your Package.swift file:

+
import PackageDescription
+
+let package = Package(
+    name: "MyPackage",
+    dependencies: [
+        .Package(url: "https://github.com/lorentey/SipHash.git", majorVersion: 1)
+    ]
+)
+
+

Standalone Development

+ +

If you don’t use a dependency manager, you need to clone this repo somewhere near your project, and add a reference to SipHash.xcodeproj to your project’s xcworkspace. You can put the clone of SipHash wherever you like on disk, but it is a good idea to set it up as a submodule of your app’s top-level Git repository.

+ +

To link your application binary with SipHash, just add SipHash.framework from the SipHash project to the Embedded Binaries section of your app target’s General page in Xcode. As long as the SipHash project file is referenced in your workspace, this framework will be listed in the Choose items to add sheet that opens when you click on the + button of your target’s Embedded Binaries list.

+ +

There is no need to do any additional setup beyond adding the framework targets to Embedded Binaries.

+ +
+
+ + +
+
+ + + + diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/js/jazzy.js b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 000000000..e2b491dc2 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,37 @@ +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +// On doc load, toggle the URL hash discussion if present +$(document).ready(function() { + if (!window.jazzy.docset) { + var linkToHash = $('a[href="' + window.location.hash +'"]'); + linkToHash.trigger("click"); + } +}); + +// On token click, toggle its discussion and animate token.marginLeft +$(".token").click(function(event) { + if (window.jazzy.docset) { + return; + } + var link = $(this); + var animationDuration = 300; + $content = link.parent().parent().next(); + $content.slideToggle(animationDuration); + + // Keeps the document from jumping to the hash. + var href = $(this).attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); diff --git a/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/js/jquery.min.js b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100755 index 000000000..ab28a2472 --- /dev/null +++ b/Carthage/Checkouts/BigInt/Carthage/Checkouts/SipHash/docs/docsets/SipHash.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:k.htmlSerialize?[0,"",""]:[1,"X
","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("