[
  {
    "path": ".gitignore",
    "content": "# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n## Build generated\nbuild/\nDerivedData/\n\n## Various settings\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata/\n\n## Other\n*.moved-aside\n*.xccheckout\n*.xcscmblueprint\n\n## Obj-C/Swift specific\n*.hmap\n*.ipa\n*.dSYM.zip\n*.dSYM\n\n## Playgrounds\ntimeline.xctimeline\nplayground.xcworkspace\n\n# Swift Package Manager\n#\n# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.\n# Packages/\n# Package.pins\n# Package.resolved\n.build/\n\n# CocoaPods\n#\n# We recommend against adding the Pods directory to your .gitignore. However\n# you should judge for yourself, the pros and cons are mentioned at:\n# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control\n#\n# Pods/\n\n# Carthage\n#\n# Add this line if you want to avoid checking in source code from Carthage dependencies.\n# Carthage/Checkouts\n\nCarthage/Build\n\n# fastlane\n#\n# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the\n# screenshots whenever they are needed.\n# For more information about the recommended setup visit:\n# https://docs.fastlane.tools/best-practices/source-control/#source-control\n\nfastlane/report.xml\nfastlane/Preview.html\nfastlane/screenshots/**/*.png\nfastlane/test_output\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Fly\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Podfile",
    "content": "source 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '9.0'\nuse_frameworks!\n\ntarget 'VerifyCodeDemo' do\n    pod 'SnapKit'\nend\n"
  },
  {
    "path": "Pods/Pods.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 51;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t04F66FA3C83A53525898079B3945E9B6 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 784E71663FDE42A52D425DA752FC02E7 /* ConstraintConstantTarget.swift */; };\n\t\t0C6E2B64A133169E6694D3B7CE028F8F /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BC92BE130C0A4CE98F06E9D397E55AF /* ConstraintPriorityTarget.swift */; };\n\t\t108A9DFC16807E2F00517CF4E23D00BE /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A3ECCB7489854CAA077B5B187C912D /* ConstraintInsets.swift */; };\n\t\t12285CBA4D3AA9AD71C418040E9D9A15 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */; };\n\t\t22327C004280671E16186F4D131CC59C /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED05C0772840EE66B3EB754BEF846F7A /* ConstraintMakerRelatable.swift */; };\n\t\t22E06035A5CFB0C407AAD71805B204C8 /* ConstraintMakerPriortizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6F1619E6AE6BAD68A1F802AD244BFAB /* ConstraintMakerPriortizable.swift */; };\n\t\t23B574059CE490AE9CA01580A476AFED /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48EFBC475A6AD866A5083DC5F61B3563 /* LayoutConstraint.swift */; };\n\t\t25A8D111D8F21EBE8A89F8254C46E72E /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5902768DE34E1627B020F4B2FB7BBBE /* ConstraintLayoutSupportDSL.swift */; };\n\t\t2A19C2CB15633EB715E907B635E5A2AF /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69A533BD0DE17143457FB42BF7749CDD /* ConstraintConfig.swift */; };\n\t\t389074CB59EE151F61C40B251D52A737 /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62526768B0933882A844A3CC52757009 /* ConstraintLayoutSupport.swift */; };\n\t\t4758FDCA298ED5B4BBFE7302BFEDE1F0 /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F812B71438F709C9BBB7D4B438DAA8B /* ConstraintMaker.swift */; };\n\t\t4B219F8E1869A5903D989F4B1FF69AEF /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = F63DC83113A26BB1DB9ED37E0EE3F512 /* ConstraintDSL.swift */; };\n\t\t5818046C12DA0D8C11D63CD3D9CBE224 /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B3D1E72289667D4BA6D946E25320953 /* LayoutConstraintItem.swift */; };\n\t\t59B9310884B9ECAEF5D8CE090D9A0AE2 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD313B584F4DD046DAD1E1A5DBA2AA9A /* SnapKit-dummy.m */; };\n\t\t5B0DD5E8FD3BF049E7691214635E937E /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FED189CE3C9928FFAF66C86038ABFDB1 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t6140B1FD47528742DB382D75D6772D70 /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23DE5B5F4B593DDCE0ADE8616B85C5A /* ConstraintLayoutGuide.swift */; };\n\t\t6187A3CB3B75ABB947D4847B62374AD2 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40C5937AEDD4F642E09E0A1980BCC652 /* Debugging.swift */; };\n\t\t63970F4F979D711C0ED5CAAE5CBCD8EF /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC0E4E3541BF32A5C4247EA2CC09B4BE /* ConstraintViewDSL.swift */; };\n\t\t641A7B34B3FD3C3CD899321E2104E68A /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFA57917D5E295BADC0B25F3CDB9C4E8 /* ConstraintRelatableTarget.swift */; };\n\t\t6C7DC9AECC4B57A305E61D417A490FB1 /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 161FED143DE8DD1AC41D71D22AEA464B /* ConstraintPriority.swift */; };\n\t\t8301F67FE6A00E166C6267B521BE722D /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9E8324D0994261E310D8C9ABB5015C /* ConstraintLayoutGuideDSL.swift */; };\n\t\t84249F5514093FEDD80926183FF3D3F0 /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 144DAF3614C757BDAABBA78E4B4866FC /* ConstraintLayoutGuide+Extensions.swift */; };\n\t\t85771E91D00630FEBE7342B318331A0C /* Pods-VerifyCodeDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEEC2EF65E7B1C049BD1F03D5CE735B /* Pods-VerifyCodeDemo-dummy.m */; };\n\t\tA1D5B066B529B59BF042AC9CDDE3D0C2 /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F902CDA99715ADA3EC010544308DA63A /* ConstraintMakerExtendable.swift */; };\n\t\tA7F301FEFA26966FD93FE41537DA9833 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7597745DD02F02027BEB927801E4E7E2 /* ConstraintDescription.swift */; };\n\t\tB33BB541223B04CBC5C3AB7E3F46592B /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = E21B4EB2CAC44390D976C65ABE1CE2F5 /* ConstraintOffsetTarget.swift */; };\n\t\tB41F7C069770EAF9D13CBCE1824F02C8 /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5C9D6FEF48994711991A348A7B0B99A /* ConstraintView.swift */; };\n\t\tBC9C79BB8A830AACC383277B2C0D5E6A /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A26D91B0E800F3CC711EB9D4B7D643D /* ConstraintMakerEditable.swift */; };\n\t\tD05FC0A055D0231C18A078B7EAF81C96 /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AB05D22C92E5A571A653D510E552AC0 /* ConstraintView+Extensions.swift */; };\n\t\tD6A16FD82B9996ED419AEC2D4E9DCE56 /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C87F70E835D22459F492D40CB584A67 /* UILayoutSupport+Extensions.swift */; };\n\t\tD9BA55AB9494D090563BC5386DE58BEC /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BA20D94D18B89BCA5CF2600878CAB42 /* ConstraintMakerFinalizable.swift */; };\n\t\tDF9B9D0EBA692F0B9E710785BFF2BE99 /* Pods-VerifyCodeDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 36E9416CBCBC9A333A4B481C95314E2D /* Pods-VerifyCodeDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tE0506FA9DEF8B22037587D6DF7C58EF2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */; };\n\t\tE418542DAA6B444CEDC23B9304116BA0 /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45FD64C66CE4DDF29ECD54691C69DE81 /* ConstraintAttributes.swift */; };\n\t\tEA2F9BED7BE4C7E5F3BA4A98C006EB97 /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C12038B34951B9B002DAB0D5FE023DA /* ConstraintMultiplierTarget.swift */; };\n\t\tEAB7F9DF9A2AA71DD77A3AC43B08DFC6 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = C417784A7C0566CA3A4A90F972ECD6E6 /* Constraint.swift */; };\n\t\tF39B131A46A0FE42BA8A0BB7FBFF2677 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C65BFCA0A21044C1C3E6F663BB5F9B48 /* ConstraintItem.swift */; };\n\t\tF76C08342FED84F10146E681E99A805C /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2A12656157BC29CB51F2534C8EDF360 /* ConstraintInsetTarget.swift */; };\n\t\tF9A24CE1ECD5B380B4FCD9CF80660B2D /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = A156835F5B20B0DE5962C7DD63E2E761 /* Typealiases.swift */; };\n\t\tFC3348D1B776D0ED499FFFA7F4F2834B /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21B2FDCEA78DB15010A749F9203D21F /* ConstraintRelation.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tB127EA3F17E251202A7E3015298E8029 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 19622742EBA51E823D6DAE3F8CDBFAD4;\n\t\t\tremoteInfo = SnapKit;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t0DDDD6F462EB3B196478B6BB1493ED00 /* Pods-VerifyCodeDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-VerifyCodeDemo.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t144DAF3614C757BDAABBA78E4B4866FC /* ConstraintLayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = \"ConstraintLayoutGuide+Extensions.swift\"; path = \"Source/ConstraintLayoutGuide+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\t161FED143DE8DD1AC41D71D22AEA464B /* ConstraintPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriority.swift; path = Source/ConstraintPriority.swift; sourceTree = \"<group>\"; };\n\t\t25E34EF5671A453947A4DB0C58A03A48 /* SnapKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.xcconfig; sourceTree = \"<group>\"; };\n\t\t2AB05D22C92E5A571A653D510E552AC0 /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = \"ConstraintView+Extensions.swift\"; path = \"Source/ConstraintView+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\t36E9416CBCBC9A333A4B481C95314E2D /* Pods-VerifyCodeDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"Pods-VerifyCodeDemo-umbrella.h\"; sourceTree = \"<group>\"; };\n\t\t3F812B71438F709C9BBB7D4B438DAA8B /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Source/ConstraintMaker.swift; sourceTree = \"<group>\"; };\n\t\t40C5937AEDD4F642E09E0A1980BCC652 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Source/Debugging.swift; sourceTree = \"<group>\"; };\n\t\t45FD64C66CE4DDF29ECD54691C69DE81 /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Source/ConstraintAttributes.swift; sourceTree = \"<group>\"; };\n\t\t48EFBC475A6AD866A5083DC5F61B3563 /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Source/LayoutConstraint.swift; sourceTree = \"<group>\"; };\n\t\t4BC92BE130C0A4CE98F06E9D397E55AF /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Source/ConstraintPriorityTarget.swift; sourceTree = \"<group>\"; };\n\t\t4E49729C791003914C2052732F8BADA0 /* Pods-VerifyCodeDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = \"Pods-VerifyCodeDemo-frameworks.sh\"; sourceTree = \"<group>\"; };\n\t\t5337E1A59467312C92B46B0DF2F630FF /* Pods-VerifyCodeDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = \"Pods-VerifyCodeDemo.modulemap\"; sourceTree = \"<group>\"; };\n\t\t5B3D1E72289667D4BA6D946E25320953 /* LayoutConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraintItem.swift; path = Source/LayoutConstraintItem.swift; sourceTree = \"<group>\"; };\n\t\t5E62545952A3F91C0FFB7163FA3ABB9E /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"SnapKit-prefix.pch\"; sourceTree = \"<group>\"; };\n\t\t5F18E344646C6B2E634C37B927C0463B /* Pods-VerifyCodeDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-VerifyCodeDemo-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t6043A60B74B531F62E520A7669D4E907 /* SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"SnapKit-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t62526768B0933882A844A3CC52757009 /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Source/ConstraintLayoutSupport.swift; sourceTree = \"<group>\"; };\n\t\t68AE75C62A03742A9CC315392483504B /* Pods-VerifyCodeDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = \"Pods-VerifyCodeDemo-acknowledgements.markdown\"; sourceTree = \"<group>\"; };\n\t\t69A533BD0DE17143457FB42BF7749CDD /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Source/ConstraintConfig.swift; sourceTree = \"<group>\"; };\n\t\t6B1DEB655656986537682044C2CE00A9 /* Pods_VerifyCodeDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_VerifyCodeDemo.framework; path = \"Pods-VerifyCodeDemo.framework\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t6BA20D94D18B89BCA5CF2600878CAB42 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Source/ConstraintMakerFinalizable.swift; sourceTree = \"<group>\"; };\n\t\t6FED7DD645CF7EE688F4FBFE76F4B56A /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapKit.modulemap; sourceTree = \"<group>\"; };\n\t\t7597745DD02F02027BEB927801E4E7E2 /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Source/ConstraintDescription.swift; sourceTree = \"<group>\"; };\n\t\t784E71663FDE42A52D425DA752FC02E7 /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Source/ConstraintConstantTarget.swift; sourceTree = \"<group>\"; };\n\t\t7A9E8324D0994261E310D8C9ABB5015C /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Source/ConstraintLayoutGuideDSL.swift; sourceTree = \"<group>\"; };\n\t\t8A26D91B0E800F3CC711EB9D4B7D643D /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Source/ConstraintMakerEditable.swift; sourceTree = \"<group>\"; };\n\t\t9428E894F7932D494E10DDB6D971EB39 /* Pods-VerifyCodeDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-VerifyCodeDemo.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t979486118B3E90C08386079D57962701 /* SnapKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SnapKit.framework; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t9C12038B34951B9B002DAB0D5FE023DA /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Source/ConstraintMultiplierTarget.swift; sourceTree = \"<group>\"; };\n\t\t9C87F70E835D22459F492D40CB584A67 /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = \"UILayoutSupport+Extensions.swift\"; path = \"Source/UILayoutSupport+Extensions.swift\"; sourceTree = \"<group>\"; };\n\t\t9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };\n\t\tA156835F5B20B0DE5962C7DD63E2E761 /* Typealiases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Typealiases.swift; path = Source/Typealiases.swift; sourceTree = \"<group>\"; };\n\t\tA23DE5B5F4B593DDCE0ADE8616B85C5A /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Source/ConstraintLayoutGuide.swift; sourceTree = \"<group>\"; };\n\t\tA6F1619E6AE6BAD68A1F802AD244BFAB /* ConstraintMakerPriortizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPriortizable.swift; path = Source/ConstraintMakerPriortizable.swift; sourceTree = \"<group>\"; };\n\t\tB0A3ECCB7489854CAA077B5B187C912D /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Source/ConstraintInsets.swift; sourceTree = \"<group>\"; };\n\t\tB2A12656157BC29CB51F2534C8EDF360 /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Source/ConstraintInsetTarget.swift; sourceTree = \"<group>\"; };\n\t\tBFA57917D5E295BADC0B25F3CDB9C4E8 /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Source/ConstraintRelatableTarget.swift; sourceTree = \"<group>\"; };\n\t\tC232F61433509F03A214316255D3ECEA /* Pods-VerifyCodeDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-VerifyCodeDemo-acknowledgements.plist\"; sourceTree = \"<group>\"; };\n\t\tC417784A7C0566CA3A4A90F972ECD6E6 /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Source/Constraint.swift; sourceTree = \"<group>\"; };\n\t\tC65BFCA0A21044C1C3E6F663BB5F9B48 /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Source/ConstraintItem.swift; sourceTree = \"<group>\"; };\n\t\tCB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };\n\t\tCEEEC2EF65E7B1C049BD1F03D5CE735B /* Pods-VerifyCodeDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"Pods-VerifyCodeDemo-dummy.m\"; sourceTree = \"<group>\"; };\n\t\tD21B2FDCEA78DB15010A749F9203D21F /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Source/ConstraintRelation.swift; sourceTree = \"<group>\"; };\n\t\tD5902768DE34E1627B020F4B2FB7BBBE /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Source/ConstraintLayoutSupportDSL.swift; sourceTree = \"<group>\"; };\n\t\tE21B4EB2CAC44390D976C65ABE1CE2F5 /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Source/ConstraintOffsetTarget.swift; sourceTree = \"<group>\"; };\n\t\tEC0E4E3541BF32A5C4247EA2CC09B4BE /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Source/ConstraintViewDSL.swift; sourceTree = \"<group>\"; };\n\t\tED05C0772840EE66B3EB754BEF846F7A /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Source/ConstraintMakerRelatable.swift; sourceTree = \"<group>\"; };\n\t\tF5C9D6FEF48994711991A348A7B0B99A /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Source/ConstraintView.swift; sourceTree = \"<group>\"; };\n\t\tF63DC83113A26BB1DB9ED37E0EE3F512 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Source/ConstraintDSL.swift; sourceTree = \"<group>\"; };\n\t\tF902CDA99715ADA3EC010544308DA63A /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Source/ConstraintMakerExtendable.swift; sourceTree = \"<group>\"; };\n\t\tFD313B584F4DD046DAD1E1A5DBA2AA9A /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"SnapKit-dummy.m\"; sourceTree = \"<group>\"; };\n\t\tFED189CE3C9928FFAF66C86038ABFDB1 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"SnapKit-umbrella.h\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t24A2B817B5B2B4CA7195E39A75EE5DA4 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tE0506FA9DEF8B22037587D6DF7C58EF2 /* Foundation.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t5CB4D568CCC95040548F0B7350C90628 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t12285CBA4D3AA9AD71C418040E9D9A15 /* Foundation.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t427B270BD76A5EF45313FBF29233B96D /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tE9B3907E32293D14238C042AF3BAE652 /* SnapKit */,\n\t\t\t);\n\t\t\tname = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4CC056115B16BAC8746D03109CE76AC4 /* Targets Support Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC78159D9C22B141025034C9E15504E11 /* Pods-VerifyCodeDemo */,\n\t\t\t);\n\t\t\tname = \"Targets Support Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9B055D0CFEA43187E72B03DED11F5662 /* iOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tCB4607EFCA7C5F75397649E792E2AFCB /* Foundation.framework */,\n\t\t\t);\n\t\t\tname = iOS;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC78159D9C22B141025034C9E15504E11 /* Pods-VerifyCodeDemo */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t5337E1A59467312C92B46B0DF2F630FF /* Pods-VerifyCodeDemo.modulemap */,\n\t\t\t\t68AE75C62A03742A9CC315392483504B /* Pods-VerifyCodeDemo-acknowledgements.markdown */,\n\t\t\t\tC232F61433509F03A214316255D3ECEA /* Pods-VerifyCodeDemo-acknowledgements.plist */,\n\t\t\t\tCEEEC2EF65E7B1C049BD1F03D5CE735B /* Pods-VerifyCodeDemo-dummy.m */,\n\t\t\t\t4E49729C791003914C2052732F8BADA0 /* Pods-VerifyCodeDemo-frameworks.sh */,\n\t\t\t\t5F18E344646C6B2E634C37B927C0463B /* Pods-VerifyCodeDemo-Info.plist */,\n\t\t\t\t36E9416CBCBC9A333A4B481C95314E2D /* Pods-VerifyCodeDemo-umbrella.h */,\n\t\t\t\t0DDDD6F462EB3B196478B6BB1493ED00 /* Pods-VerifyCodeDemo.debug.xcconfig */,\n\t\t\t\t9428E894F7932D494E10DDB6D971EB39 /* Pods-VerifyCodeDemo.release.xcconfig */,\n\t\t\t);\n\t\t\tname = \"Pods-VerifyCodeDemo\";\n\t\t\tpath = \"Target Support Files/Pods-VerifyCodeDemo\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC91EDAA5CCFDB0CED5792EE230E47FD8 /* Support Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6FED7DD645CF7EE688F4FBFE76F4B56A /* SnapKit.modulemap */,\n\t\t\t\t25E34EF5671A453947A4DB0C58A03A48 /* SnapKit.xcconfig */,\n\t\t\t\tFD313B584F4DD046DAD1E1A5DBA2AA9A /* SnapKit-dummy.m */,\n\t\t\t\t6043A60B74B531F62E520A7669D4E907 /* SnapKit-Info.plist */,\n\t\t\t\t5E62545952A3F91C0FFB7163FA3ABB9E /* SnapKit-prefix.pch */,\n\t\t\t\tFED189CE3C9928FFAF66C86038ABFDB1 /* SnapKit-umbrella.h */,\n\t\t\t);\n\t\t\tname = \"Support Files\";\n\t\t\tpath = \"../Target Support Files/SnapKit\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tCF1408CF629C7361332E53B88F7BD30C = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,\n\t\t\t\tD210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,\n\t\t\t\t427B270BD76A5EF45313FBF29233B96D /* Pods */,\n\t\t\t\tD0BB88904A8103332A55D5B84619149A /* Products */,\n\t\t\t\t4CC056115B16BAC8746D03109CE76AC4 /* Targets Support Files */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0BB88904A8103332A55D5B84619149A /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6B1DEB655656986537682044C2CE00A9 /* Pods_VerifyCodeDemo.framework */,\n\t\t\t\t979486118B3E90C08386079D57962701 /* SnapKit.framework */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9B055D0CFEA43187E72B03DED11F5662 /* iOS */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE9B3907E32293D14238C042AF3BAE652 /* SnapKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC417784A7C0566CA3A4A90F972ECD6E6 /* Constraint.swift */,\n\t\t\t\t45FD64C66CE4DDF29ECD54691C69DE81 /* ConstraintAttributes.swift */,\n\t\t\t\t69A533BD0DE17143457FB42BF7749CDD /* ConstraintConfig.swift */,\n\t\t\t\t784E71663FDE42A52D425DA752FC02E7 /* ConstraintConstantTarget.swift */,\n\t\t\t\t7597745DD02F02027BEB927801E4E7E2 /* ConstraintDescription.swift */,\n\t\t\t\tF63DC83113A26BB1DB9ED37E0EE3F512 /* ConstraintDSL.swift */,\n\t\t\t\tB0A3ECCB7489854CAA077B5B187C912D /* ConstraintInsets.swift */,\n\t\t\t\tB2A12656157BC29CB51F2534C8EDF360 /* ConstraintInsetTarget.swift */,\n\t\t\t\tC65BFCA0A21044C1C3E6F663BB5F9B48 /* ConstraintItem.swift */,\n\t\t\t\tA23DE5B5F4B593DDCE0ADE8616B85C5A /* ConstraintLayoutGuide.swift */,\n\t\t\t\t144DAF3614C757BDAABBA78E4B4866FC /* ConstraintLayoutGuide+Extensions.swift */,\n\t\t\t\t7A9E8324D0994261E310D8C9ABB5015C /* ConstraintLayoutGuideDSL.swift */,\n\t\t\t\t62526768B0933882A844A3CC52757009 /* ConstraintLayoutSupport.swift */,\n\t\t\t\tD5902768DE34E1627B020F4B2FB7BBBE /* ConstraintLayoutSupportDSL.swift */,\n\t\t\t\t3F812B71438F709C9BBB7D4B438DAA8B /* ConstraintMaker.swift */,\n\t\t\t\t8A26D91B0E800F3CC711EB9D4B7D643D /* ConstraintMakerEditable.swift */,\n\t\t\t\tF902CDA99715ADA3EC010544308DA63A /* ConstraintMakerExtendable.swift */,\n\t\t\t\t6BA20D94D18B89BCA5CF2600878CAB42 /* ConstraintMakerFinalizable.swift */,\n\t\t\t\tA6F1619E6AE6BAD68A1F802AD244BFAB /* ConstraintMakerPriortizable.swift */,\n\t\t\t\tED05C0772840EE66B3EB754BEF846F7A /* ConstraintMakerRelatable.swift */,\n\t\t\t\t9C12038B34951B9B002DAB0D5FE023DA /* ConstraintMultiplierTarget.swift */,\n\t\t\t\tE21B4EB2CAC44390D976C65ABE1CE2F5 /* ConstraintOffsetTarget.swift */,\n\t\t\t\t161FED143DE8DD1AC41D71D22AEA464B /* ConstraintPriority.swift */,\n\t\t\t\t4BC92BE130C0A4CE98F06E9D397E55AF /* ConstraintPriorityTarget.swift */,\n\t\t\t\tBFA57917D5E295BADC0B25F3CDB9C4E8 /* ConstraintRelatableTarget.swift */,\n\t\t\t\tD21B2FDCEA78DB15010A749F9203D21F /* ConstraintRelation.swift */,\n\t\t\t\tF5C9D6FEF48994711991A348A7B0B99A /* ConstraintView.swift */,\n\t\t\t\t2AB05D22C92E5A571A653D510E552AC0 /* ConstraintView+Extensions.swift */,\n\t\t\t\tEC0E4E3541BF32A5C4247EA2CC09B4BE /* ConstraintViewDSL.swift */,\n\t\t\t\t40C5937AEDD4F642E09E0A1980BCC652 /* Debugging.swift */,\n\t\t\t\t48EFBC475A6AD866A5083DC5F61B3563 /* LayoutConstraint.swift */,\n\t\t\t\t5B3D1E72289667D4BA6D946E25320953 /* LayoutConstraintItem.swift */,\n\t\t\t\tA156835F5B20B0DE5962C7DD63E2E761 /* Typealiases.swift */,\n\t\t\t\t9C87F70E835D22459F492D40CB584A67 /* UILayoutSupport+Extensions.swift */,\n\t\t\t\tC91EDAA5CCFDB0CED5792EE230E47FD8 /* Support Files */,\n\t\t\t);\n\t\t\tname = SnapKit;\n\t\t\tpath = SnapKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t5707B703A295B2F77304B49592371464 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t5B0DD5E8FD3BF049E7691214635E937E /* SnapKit-umbrella.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDB40925FC1004C4CDD24E460B530FFC3 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDF9B9D0EBA692F0B9E710785BFF2BE99 /* Pods-VerifyCodeDemo-umbrella.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 3BBBC403BA79741703B9761E6A88A5B5 /* Build configuration list for PBXNativeTarget \"SnapKit\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t5707B703A295B2F77304B49592371464 /* Headers */,\n\t\t\t\t253D0469F7AD24142C0ED3550984BB13 /* Sources */,\n\t\t\t\t5CB4D568CCC95040548F0B7350C90628 /* Frameworks */,\n\t\t\t\t0BE06200C6B667A325862B3097467860 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = SnapKit;\n\t\t\tproductName = SnapKit;\n\t\t\tproductReference = 979486118B3E90C08386079D57962701 /* SnapKit.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n\t\t352ACF249742AD668356716BEC898B49 /* Pods-VerifyCodeDemo */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 27527AB7E45BC8234586E8C2F2638CED /* Build configuration list for PBXNativeTarget \"Pods-VerifyCodeDemo\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDB40925FC1004C4CDD24E460B530FFC3 /* Headers */,\n\t\t\t\t9873D193E19480A7878931F0A283F3E1 /* Sources */,\n\t\t\t\t24A2B817B5B2B4CA7195E39A75EE5DA4 /* Frameworks */,\n\t\t\t\t07AD972366EBC4D88439BE859E606D76 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t4CEEDE957FAE0FB0ACCCBE71FEF1B71B /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"Pods-VerifyCodeDemo\";\n\t\t\tproductName = \"Pods-VerifyCodeDemo\";\n\t\t\tproductReference = 6B1DEB655656986537682044C2CE00A9 /* Pods_VerifyCodeDemo.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tBFDFE7DC352907FC980B868725387E98 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0930;\n\t\t\t\tLastUpgradeCheck = 0930;\n\t\t\t};\n\t\t\tbuildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject \"Pods\" */;\n\t\t\tcompatibilityVersion = \"Xcode 10.0\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = CF1408CF629C7361332E53B88F7BD30C;\n\t\t\tproductRefGroup = D0BB88904A8103332A55D5B84619149A /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t352ACF249742AD668356716BEC898B49 /* Pods-VerifyCodeDemo */,\n\t\t\t\t19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t07AD972366EBC4D88439BE859E606D76 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t0BE06200C6B667A325862B3097467860 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t253D0469F7AD24142C0ED3550984BB13 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tEAB7F9DF9A2AA71DD77A3AC43B08DFC6 /* Constraint.swift in Sources */,\n\t\t\t\tE418542DAA6B444CEDC23B9304116BA0 /* ConstraintAttributes.swift in Sources */,\n\t\t\t\t2A19C2CB15633EB715E907B635E5A2AF /* ConstraintConfig.swift in Sources */,\n\t\t\t\t04F66FA3C83A53525898079B3945E9B6 /* ConstraintConstantTarget.swift in Sources */,\n\t\t\t\tA7F301FEFA26966FD93FE41537DA9833 /* ConstraintDescription.swift in Sources */,\n\t\t\t\t4B219F8E1869A5903D989F4B1FF69AEF /* ConstraintDSL.swift in Sources */,\n\t\t\t\t108A9DFC16807E2F00517CF4E23D00BE /* ConstraintInsets.swift in Sources */,\n\t\t\t\tF76C08342FED84F10146E681E99A805C /* ConstraintInsetTarget.swift in Sources */,\n\t\t\t\tF39B131A46A0FE42BA8A0BB7FBFF2677 /* ConstraintItem.swift in Sources */,\n\t\t\t\t84249F5514093FEDD80926183FF3D3F0 /* ConstraintLayoutGuide+Extensions.swift in Sources */,\n\t\t\t\t6140B1FD47528742DB382D75D6772D70 /* ConstraintLayoutGuide.swift in Sources */,\n\t\t\t\t8301F67FE6A00E166C6267B521BE722D /* ConstraintLayoutGuideDSL.swift in Sources */,\n\t\t\t\t389074CB59EE151F61C40B251D52A737 /* ConstraintLayoutSupport.swift in Sources */,\n\t\t\t\t25A8D111D8F21EBE8A89F8254C46E72E /* ConstraintLayoutSupportDSL.swift in Sources */,\n\t\t\t\t4758FDCA298ED5B4BBFE7302BFEDE1F0 /* ConstraintMaker.swift in Sources */,\n\t\t\t\tBC9C79BB8A830AACC383277B2C0D5E6A /* ConstraintMakerEditable.swift in Sources */,\n\t\t\t\tA1D5B066B529B59BF042AC9CDDE3D0C2 /* ConstraintMakerExtendable.swift in Sources */,\n\t\t\t\tD9BA55AB9494D090563BC5386DE58BEC /* ConstraintMakerFinalizable.swift in Sources */,\n\t\t\t\t22E06035A5CFB0C407AAD71805B204C8 /* ConstraintMakerPriortizable.swift in Sources */,\n\t\t\t\t22327C004280671E16186F4D131CC59C /* ConstraintMakerRelatable.swift in Sources */,\n\t\t\t\tEA2F9BED7BE4C7E5F3BA4A98C006EB97 /* ConstraintMultiplierTarget.swift in Sources */,\n\t\t\t\tB33BB541223B04CBC5C3AB7E3F46592B /* ConstraintOffsetTarget.swift in Sources */,\n\t\t\t\t6C7DC9AECC4B57A305E61D417A490FB1 /* ConstraintPriority.swift in Sources */,\n\t\t\t\t0C6E2B64A133169E6694D3B7CE028F8F /* ConstraintPriorityTarget.swift in Sources */,\n\t\t\t\t641A7B34B3FD3C3CD899321E2104E68A /* ConstraintRelatableTarget.swift in Sources */,\n\t\t\t\tFC3348D1B776D0ED499FFFA7F4F2834B /* ConstraintRelation.swift in Sources */,\n\t\t\t\tD05FC0A055D0231C18A078B7EAF81C96 /* ConstraintView+Extensions.swift in Sources */,\n\t\t\t\tB41F7C069770EAF9D13CBCE1824F02C8 /* ConstraintView.swift in Sources */,\n\t\t\t\t63970F4F979D711C0ED5CAAE5CBCD8EF /* ConstraintViewDSL.swift in Sources */,\n\t\t\t\t6187A3CB3B75ABB947D4847B62374AD2 /* Debugging.swift in Sources */,\n\t\t\t\t23B574059CE490AE9CA01580A476AFED /* LayoutConstraint.swift in Sources */,\n\t\t\t\t5818046C12DA0D8C11D63CD3D9CBE224 /* LayoutConstraintItem.swift in Sources */,\n\t\t\t\t59B9310884B9ECAEF5D8CE090D9A0AE2 /* SnapKit-dummy.m in Sources */,\n\t\t\t\tF9A24CE1ECD5B380B4FCD9CF80660B2D /* Typealiases.swift in Sources */,\n\t\t\t\tD6A16FD82B9996ED419AEC2D4E9DCE56 /* UILayoutSupport+Extensions.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t9873D193E19480A7878931F0A283F3E1 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t85771E91D00630FEBE7342B318331A0C /* Pods-VerifyCodeDemo-dummy.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t4CEEDE957FAE0FB0ACCCBE71FEF1B71B /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tname = SnapKit;\n\t\t\ttarget = 19622742EBA51E823D6DAE3F8CDBFAD4 /* SnapKit */;\n\t\t\ttargetProxy = B127EA3F17E251202A7E3015298E8029 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\t07488D4657FB0A78086563621D425F8A /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"POD_CONFIGURATION_DEBUG=1\",\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSTRIP_INSTALLED_PRODUCT = NO;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tSYMROOT = \"${SRCROOT}/../build\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t52B155456A890653ECFD078C2B116E2A /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 25E34EF5671A453947A4DB0C58A03A48 /* SnapKit.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tGCC_PREFIX_HEADER = \"Target Support Files/SnapKit/SnapKit-prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"Target Support Files/SnapKit/SnapKit-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/SnapKit/SnapKit.modulemap\";\n\t\t\t\tPRODUCT_MODULE_NAME = SnapKit;\n\t\t\t\tPRODUCT_NAME = SnapKit;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = \"$(inherited) \";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t6D2F18C68282FE51277236440CAEBD24 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 0DDDD6F462EB3B196478B6BB1493ED00 /* Pods-VerifyCodeDemo.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = \"Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.modulemap\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tA1962E6FF39BBAC201A2E5DDF99557DF /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"POD_CONFIGURATION_RELEASE=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSTRIP_INSTALLED_PRODUCT = NO;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tSYMROOT = \"${SRCROOT}/../build\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tA47F3B2601F1B23076D1B0A6AC3A1D71 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 9428E894F7932D494E10DDB6D971EB39 /* Pods-VerifyCodeDemo.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = \"Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.modulemap\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC451653B8A5DC6ECA28660D72EACE786 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 25E34EF5671A453947A4DB0C58A03A48 /* SnapKit.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=appletvos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=watchos*]\" = \"\";\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tGCC_PREFIX_HEADER = \"Target Support Files/SnapKit/SnapKit-prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"Target Support Files/SnapKit/SnapKit-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 8.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMODULEMAP_FILE = \"Target Support Files/SnapKit/SnapKit.modulemap\";\n\t\t\t\tPRODUCT_MODULE_NAME = SnapKit;\n\t\t\t\tPRODUCT_NAME = SnapKit;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = \"$(inherited) \";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t27527AB7E45BC8234586E8C2F2638CED /* Build configuration list for PBXNativeTarget \"Pods-VerifyCodeDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t6D2F18C68282FE51277236440CAEBD24 /* Debug */,\n\t\t\t\tA47F3B2601F1B23076D1B0A6AC3A1D71 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t3BBBC403BA79741703B9761E6A88A5B5 /* Build configuration list for PBXNativeTarget \"SnapKit\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t52B155456A890653ECFD078C2B116E2A /* Debug */,\n\t\t\t\tC451653B8A5DC6ECA28660D72EACE786 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject \"Pods\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t07488D4657FB0A78086563621D425F8A /* Debug */,\n\t\t\t\tA1962E6FF39BBAC201A2E5DDF99557DF /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;\n}\n"
  },
  {
    "path": "Pods/SnapKit/LICENSE",
    "content": "Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "Pods/SnapKit/README.md",
    "content": "<img src=\"http://snapkit.io/images/banner.jpg\" alt=\"\" />\n\nSnapKit is a DSL to make Auto Layout easy on both iOS and OS X.\n\n[![Build Status](https://travis-ci.org/SnapKit/SnapKit.svg)](https://travis-ci.org/SnapKit/SnapKit)\n[![Platform](https://img.shields.io/cocoapods/p/SnapKit.svg?style=flat)](https://github.com/SnapKit/SnapKit)\n[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/SnapKit.svg)](https://cocoapods.org/pods/SnapKit)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n\n#### ⚠️ **To use with Swift 3.x please ensure you are using >= 3.0.0** ⚠️ \n#### ⚠️ **To use with Swift 4.x please ensure you are using >= 4.0.0** ⚠️ \n\n## Contents\n\n- [Requirements](#requirements)\n- [Migration Guides](#migration-guides)\n- [Communication](#communication)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Credits](#credits)\n- [License](#license)\n\n## Requirements\n\n- iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+\n- Xcode 9.0+\n- Swift 3.0+\n\n## Communication\n\n- If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit). (Tag 'snapkit')\n- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit).\n- If you **found a bug**, open an issue.\n- If you **have a feature request**, open an issue.\n- If you **want to contribute**, submit a pull request.\n\n\n## Installation\n\n### CocoaPods\n\n[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:\n\n```bash\n$ gem install cocoapods\n```\n\n> CocoaPods 1.1.0+ is required to build SnapKit 4.0.0+.\n\nTo integrate SnapKit into your Xcode project using CocoaPods, specify it in your `Podfile`:\n\n```ruby\nsource 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '10.0'\nuse_frameworks!\n\ntarget '<Your Target Name>' do\n    pod 'SnapKit', '~> 4.0.0'\nend\n```\n\nThen, run the following command:\n\n```bash\n$ pod install\n```\n\n### Carthage\n\n[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.\n\nYou can install Carthage with [Homebrew](http://brew.sh/) using the following command:\n\n```bash\n$ brew update\n$ brew install carthage\n```\n\nTo integrate SnapKit into your Xcode project using Carthage, specify it in your `Cartfile`:\n\n```ogdl\ngithub \"SnapKit/SnapKit\" ~> 4.0.0\n```\n\nRun `carthage update` to build the framework and drag the built `SnapKit.framework` into your Xcode project.\n\n### Manually\n\nIf you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually.\n\n---\n\n## Usage\n\n### Quick Start\n\n```swift\nimport SnapKit\n\nclass MyViewController: UIViewController {\n\n    lazy var box = UIView()\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        self.view.addSubview(box)\n        box.snp.makeConstraints { (make) -> Void in\n           make.width.height.equalTo(50)\n           make.center.equalTo(self.view)\n        }\n    }\n\n}\n```\n\n### Resources\n\n- [Documentation](http://snapkit.io/docs/)\n- [F.A.Q.](http://snapkit.io/faq/)\n\n## Credits\n\n- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne))\n- Many other contributors\n\n## License\n\nSnapKit is released under the MIT license. See LICENSE for details.\n"
  },
  {
    "path": "Pods/SnapKit/Source/Constraint.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\npublic final class Constraint {\n\n    internal let sourceLocation: (String, UInt)\n    internal let label: String?\n\n    private let from: ConstraintItem\n    private let to: ConstraintItem\n    private let relation: ConstraintRelation\n    private let multiplier: ConstraintMultiplierTarget\n    private var constant: ConstraintConstantTarget {\n        didSet {\n            self.updateConstantAndPriorityIfNeeded()\n        }\n    }\n    private var priority: ConstraintPriorityTarget {\n        didSet {\n          self.updateConstantAndPriorityIfNeeded()\n        }\n    }\n    public var layoutConstraints: [LayoutConstraint]\n    \n    public var isActive: Bool {\n        set {\n            if newValue {\n                activate()\n            }\n            else {\n                deactivate()\n            }\n        }\n        \n        get {\n            for layoutConstraint in self.layoutConstraints {\n                if layoutConstraint.isActive {\n                    return true\n                }\n            }\n            return false\n        }\n    }\n    \n    // MARK: Initialization\n\n    internal init(from: ConstraintItem,\n                  to: ConstraintItem,\n                  relation: ConstraintRelation,\n                  sourceLocation: (String, UInt),\n                  label: String?,\n                  multiplier: ConstraintMultiplierTarget,\n                  constant: ConstraintConstantTarget,\n                  priority: ConstraintPriorityTarget) {\n        self.from = from\n        self.to = to\n        self.relation = relation\n        self.sourceLocation = sourceLocation\n        self.label = label\n        self.multiplier = multiplier\n        self.constant = constant\n        self.priority = priority\n        self.layoutConstraints = []\n\n        // get attributes\n        let layoutFromAttributes = self.from.attributes.layoutAttributes\n        let layoutToAttributes = self.to.attributes.layoutAttributes\n\n        // get layout from\n        let layoutFrom = self.from.layoutConstraintItem!\n\n        // get relation\n        let layoutRelation = self.relation.layoutRelation\n\n        for layoutFromAttribute in layoutFromAttributes {\n            // get layout to attribute\n            let layoutToAttribute: LayoutAttribute\n            #if os(iOS) || os(tvOS)\n                if layoutToAttributes.count > 0 {\n                    if self.from.attributes == .edges && self.to.attributes == .margins {\n                        switch layoutFromAttribute {\n                        case .left:\n                            layoutToAttribute = .leftMargin\n                        case .right:\n                            layoutToAttribute = .rightMargin\n                        case .top:\n                            layoutToAttribute = .topMargin\n                        case .bottom:\n                            layoutToAttribute = .bottomMargin\n                        default:\n                            fatalError()\n                        }\n                    } else if self.from.attributes == .margins && self.to.attributes == .edges {\n                        switch layoutFromAttribute {\n                        case .leftMargin:\n                            layoutToAttribute = .left\n                        case .rightMargin:\n                            layoutToAttribute = .right\n                        case .topMargin:\n                            layoutToAttribute = .top\n                        case .bottomMargin:\n                            layoutToAttribute = .bottom\n                        default:\n                            fatalError()\n                        }\n                    } else if self.from.attributes == self.to.attributes {\n                        layoutToAttribute = layoutFromAttribute\n                    } else {\n                        layoutToAttribute = layoutToAttributes[0]\n                    }\n                } else {\n                    if self.to.target == nil && (layoutFromAttribute == .centerX || layoutFromAttribute == .centerY) {\n                        layoutToAttribute = layoutFromAttribute == .centerX ? .left : .top\n                    } else {\n                        layoutToAttribute = layoutFromAttribute\n                    }\n                }\n            #else\n                if self.from.attributes == self.to.attributes {\n                    layoutToAttribute = layoutFromAttribute\n                } else if layoutToAttributes.count > 0 {\n                    layoutToAttribute = layoutToAttributes[0]\n                } else {\n                    layoutToAttribute = layoutFromAttribute\n                }\n            #endif\n\n            // get layout constant\n            let layoutConstant: CGFloat = self.constant.constraintConstantTargetValueFor(layoutAttribute: layoutToAttribute)\n\n            // get layout to\n            var layoutTo: AnyObject? = self.to.target\n\n            // use superview if possible\n            if layoutTo == nil && layoutToAttribute != .width && layoutToAttribute != .height {\n                layoutTo = layoutFrom.superview\n            }\n\n            // create layout constraint\n            let layoutConstraint = LayoutConstraint(\n                item: layoutFrom,\n                attribute: layoutFromAttribute,\n                relatedBy: layoutRelation,\n                toItem: layoutTo,\n                attribute: layoutToAttribute,\n                multiplier: self.multiplier.constraintMultiplierTargetValue,\n                constant: layoutConstant\n            )\n\n            // set label\n            layoutConstraint.label = self.label\n\n            // set priority\n            layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)\n\n            // set constraint\n            layoutConstraint.constraint = self\n\n            // append\n            self.layoutConstraints.append(layoutConstraint)\n        }\n    }\n\n    // MARK: Public\n\n    @available(*, deprecated:3.0, message:\"Use activate().\")\n    public func install() {\n        self.activate()\n    }\n\n    @available(*, deprecated:3.0, message:\"Use deactivate().\")\n    public func uninstall() {\n        self.deactivate()\n    }\n\n    public func activate() {\n        self.activateIfNeeded()\n    }\n\n    public func deactivate() {\n        self.deactivateIfNeeded()\n    }\n\n    @discardableResult\n    public func update(offset: ConstraintOffsetTarget) -> Constraint {\n        self.constant = offset.constraintOffsetTargetValue\n        return self\n    }\n\n    @discardableResult\n    public func update(inset: ConstraintInsetTarget) -> Constraint {\n        self.constant = inset.constraintInsetTargetValue\n        return self\n    }\n\n    @discardableResult\n    public func update(priority: ConstraintPriorityTarget) -> Constraint {\n        self.priority = priority.constraintPriorityTargetValue\n        return self\n    }\n\n    @discardableResult\n    public func update(priority: ConstraintPriority) -> Constraint {\n        self.priority = priority.value\n        return self\n    }\n\n    @available(*, deprecated:3.0, message:\"Use update(offset: ConstraintOffsetTarget) instead.\")\n    public func updateOffset(amount: ConstraintOffsetTarget) -> Void { self.update(offset: amount) }\n\n    @available(*, deprecated:3.0, message:\"Use update(inset: ConstraintInsetTarget) instead.\")\n    public func updateInsets(amount: ConstraintInsetTarget) -> Void { self.update(inset: amount) }\n\n    @available(*, deprecated:3.0, message:\"Use update(priority: ConstraintPriorityTarget) instead.\")\n    public func updatePriority(amount: ConstraintPriorityTarget) -> Void { self.update(priority: amount) }\n\n    @available(*, obsoleted:3.0, message:\"Use update(priority: ConstraintPriorityTarget) instead.\")\n    public func updatePriorityRequired() -> Void {}\n\n    @available(*, obsoleted:3.0, message:\"Use update(priority: ConstraintPriorityTarget) instead.\")\n    public func updatePriorityHigh() -> Void { fatalError(\"Must be implemented by Concrete subclass.\") }\n\n    @available(*, obsoleted:3.0, message:\"Use update(priority: ConstraintPriorityTarget) instead.\")\n    public func updatePriorityMedium() -> Void { fatalError(\"Must be implemented by Concrete subclass.\") }\n\n    @available(*, obsoleted:3.0, message:\"Use update(priority: ConstraintPriorityTarget) instead.\")\n    public func updatePriorityLow() -> Void { fatalError(\"Must be implemented by Concrete subclass.\") }\n\n    // MARK: Internal\n\n    internal func updateConstantAndPriorityIfNeeded() {\n        for layoutConstraint in self.layoutConstraints {\n            let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute\n            layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute)\n\n            let requiredPriority = ConstraintPriority.required.value\n            if (layoutConstraint.priority.rawValue < requiredPriority), (self.priority.constraintPriorityTargetValue != requiredPriority) {\n                layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)\n            }\n        }\n    }\n\n    internal func activateIfNeeded(updatingExisting: Bool = false) {\n        guard let item = self.from.layoutConstraintItem else {\n            print(\"WARNING: SnapKit failed to get from item from constraint. Activate will be a no-op.\")\n            return\n        }\n        let layoutConstraints = self.layoutConstraints\n\n        if updatingExisting {\n            var existingLayoutConstraints: [LayoutConstraint] = []\n            for constraint in item.constraints {\n                existingLayoutConstraints += constraint.layoutConstraints\n            }\n\n            for layoutConstraint in layoutConstraints {\n                let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint }\n                guard let updateLayoutConstraint = existingLayoutConstraint else {\n                    fatalError(\"Updated constraint could not find existing matching constraint to update: \\(layoutConstraint)\")\n                }\n\n                let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute\n                updateLayoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: updateLayoutAttribute)\n            }\n        } else {\n            NSLayoutConstraint.activate(layoutConstraints)\n            item.add(constraints: [self])\n        }\n    }\n\n    internal func deactivateIfNeeded() {\n        guard let item = self.from.layoutConstraintItem else {\n            print(\"WARNING: SnapKit failed to get from item from constraint. Deactivate will be a no-op.\")\n            return\n        }\n        let layoutConstraints = self.layoutConstraints\n        NSLayoutConstraint.deactivate(layoutConstraints)\n        item.remove(constraints: [self])\n    }\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintAttributes.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\ninternal struct ConstraintAttributes : OptionSet, ExpressibleByIntegerLiteral {\n    \n    typealias IntegerLiteralType = UInt\n    \n    internal init(rawValue: UInt) {\n        self.rawValue = rawValue\n    }\n    internal init(_ rawValue: UInt) {\n        self.init(rawValue: rawValue)\n    }\n    internal init(nilLiteral: ()) {\n        self.rawValue = 0\n    }\n    internal init(integerLiteral rawValue: IntegerLiteralType) {\n        self.init(rawValue: rawValue)\n    }\n    \n    internal private(set) var rawValue: UInt\n    internal static var allZeros: ConstraintAttributes { return 0 }\n    internal static func convertFromNilLiteral() -> ConstraintAttributes { return 0 }\n    internal var boolValue: Bool { return self.rawValue != 0 }\n    \n    internal func toRaw() -> UInt { return self.rawValue }\n    internal static func fromRaw(_ raw: UInt) -> ConstraintAttributes? { return self.init(raw) }\n    internal static func fromMask(_ raw: UInt) -> ConstraintAttributes { return self.init(raw) }\n    \n    // normal\n    \n    internal static var none: ConstraintAttributes { return 0 }\n    internal static var left: ConstraintAttributes { return 1 }\n    internal static var top: ConstraintAttributes {  return 2 }\n    internal static var right: ConstraintAttributes { return 4 }\n    internal static var bottom: ConstraintAttributes { return 8 }\n    internal static var leading: ConstraintAttributes { return 16 }\n    internal static var trailing: ConstraintAttributes { return 32 }\n    internal static var width: ConstraintAttributes { return 64 }\n    internal static var height: ConstraintAttributes { return 128 }\n    internal static var centerX: ConstraintAttributes { return 256 }\n    internal static var centerY: ConstraintAttributes { return 512 }\n    internal static var lastBaseline: ConstraintAttributes { return 1024 }\n    \n    @available(iOS 8.0, OSX 10.11, *)\n    internal static var firstBaseline: ConstraintAttributes { return 2048 }\n    \n    @available(iOS 8.0, *)\n    internal static var leftMargin: ConstraintAttributes { return 4096 }\n    \n    @available(iOS 8.0, *)\n    internal static var rightMargin: ConstraintAttributes { return 8192 }\n    \n    @available(iOS 8.0, *)\n    internal static var topMargin: ConstraintAttributes { return 16384 }\n    \n    @available(iOS 8.0, *)\n    internal static var bottomMargin: ConstraintAttributes { return 32768 }\n    \n    @available(iOS 8.0, *)\n    internal static var leadingMargin: ConstraintAttributes { return 65536 }\n    \n    @available(iOS 8.0, *)\n    internal static var trailingMargin: ConstraintAttributes { return 131072 }\n    \n    @available(iOS 8.0, *)\n    internal static var centerXWithinMargins: ConstraintAttributes { return 262144 }\n    \n    @available(iOS 8.0, *)\n    internal static var centerYWithinMargins: ConstraintAttributes { return 524288 }\n    \n    // aggregates\n    \n    internal static var edges: ConstraintAttributes { return 15 }\n    internal static var size: ConstraintAttributes { return 192 }\n    internal static var center: ConstraintAttributes { return 768 }\n    \n    @available(iOS 8.0, *)\n    internal static var margins: ConstraintAttributes { return 61440 }\n    \n    @available(iOS 8.0, *)\n    internal static var centerWithinMargins: ConstraintAttributes { return 786432 }\n    \n    internal var layoutAttributes:[LayoutAttribute] {\n        var attrs = [LayoutAttribute]()\n        if (self.contains(ConstraintAttributes.left)) {\n            attrs.append(.left)\n        }\n        if (self.contains(ConstraintAttributes.top)) {\n            attrs.append(.top)\n        }\n        if (self.contains(ConstraintAttributes.right)) {\n            attrs.append(.right)\n        }\n        if (self.contains(ConstraintAttributes.bottom)) {\n            attrs.append(.bottom)\n        }\n        if (self.contains(ConstraintAttributes.leading)) {\n            attrs.append(.leading)\n        }\n        if (self.contains(ConstraintAttributes.trailing)) {\n            attrs.append(.trailing)\n        }\n        if (self.contains(ConstraintAttributes.width)) {\n            attrs.append(.width)\n        }\n        if (self.contains(ConstraintAttributes.height)) {\n            attrs.append(.height)\n        }\n        if (self.contains(ConstraintAttributes.centerX)) {\n            attrs.append(.centerX)\n        }\n        if (self.contains(ConstraintAttributes.centerY)) {\n            attrs.append(.centerY)\n        }\n        if (self.contains(ConstraintAttributes.lastBaseline)) {\n            attrs.append(.lastBaseline)\n        }\n        \n        #if os(iOS) || os(tvOS)\n            if (self.contains(ConstraintAttributes.firstBaseline)) {\n                attrs.append(.firstBaseline)\n            }\n            if (self.contains(ConstraintAttributes.leftMargin)) {\n                attrs.append(.leftMargin)\n            }\n            if (self.contains(ConstraintAttributes.rightMargin)) {\n                attrs.append(.rightMargin)\n            }\n            if (self.contains(ConstraintAttributes.topMargin)) {\n                attrs.append(.topMargin)\n            }\n            if (self.contains(ConstraintAttributes.bottomMargin)) {\n                attrs.append(.bottomMargin)\n            }\n            if (self.contains(ConstraintAttributes.leadingMargin)) {\n                attrs.append(.leadingMargin)\n            }\n            if (self.contains(ConstraintAttributes.trailingMargin)) {\n                attrs.append(.trailingMargin)\n            }\n            if (self.contains(ConstraintAttributes.centerXWithinMargins)) {\n                attrs.append(.centerXWithinMargins)\n            }\n            if (self.contains(ConstraintAttributes.centerYWithinMargins)) {\n                attrs.append(.centerYWithinMargins)\n            }\n        #endif\n        \n        return attrs\n    }\n}\n\ninternal func + (left: ConstraintAttributes, right: ConstraintAttributes) -> ConstraintAttributes {\n    return left.union(right)\n}\n\ninternal func +=(left: inout ConstraintAttributes, right: ConstraintAttributes) {\n    left.formUnion(right)\n}\n\ninternal func -=(left: inout ConstraintAttributes, right: ConstraintAttributes) {\n    left.subtract(right)\n}\n\ninternal func ==(left: ConstraintAttributes, right: ConstraintAttributes) -> Bool {\n    return left.rawValue == right.rawValue\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintConfig.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n    public typealias ConstraintInterfaceLayoutDirection = UIUserInterfaceLayoutDirection\n#else\n    import AppKit\n    public typealias ConstraintInterfaceLayoutDirection = NSUserInterfaceLayoutDirection\n#endif\n\n\npublic struct ConstraintConfig {\n    \n    public static var interfaceLayoutDirection: ConstraintInterfaceLayoutDirection = .leftToRight\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintConstantTarget.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintConstantTarget {\n}\n\nextension CGPoint: ConstraintConstantTarget {\n}\n\nextension CGSize: ConstraintConstantTarget {    \n}\n\nextension ConstraintInsets: ConstraintConstantTarget {\n}\n\nextension ConstraintConstantTarget {\n    \n    internal func constraintConstantTargetValueFor(layoutAttribute: LayoutAttribute) -> CGFloat {\n        if let value = self as? CGFloat {\n            return value\n        }\n        \n        if let value = self as? Float {\n            return CGFloat(value)\n        }\n        \n        if let value = self as? Double {\n            return CGFloat(value)\n        }\n        \n        if let value = self as? Int {\n            return CGFloat(value)\n        }\n        \n        if let value = self as? UInt {\n            return CGFloat(value)\n        }\n        \n        if let value = self as? CGSize {\n            if layoutAttribute == .width {\n                return value.width\n            } else if layoutAttribute == .height {\n                return value.height\n            } else {\n                return 0.0\n            }\n        }\n        \n        if let value = self as? CGPoint {\n            #if os(iOS) || os(tvOS)\n                switch layoutAttribute {\n                case .left, .right, .leading, .trailing, .centerX, .leftMargin, .rightMargin, .leadingMargin, .trailingMargin, .centerXWithinMargins:\n                    return value.x\n                case .top, .bottom, .centerY, .topMargin, .bottomMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline:\n                    return value.y\n                case .width, .height, .notAnAttribute:\n                    return 0.0\n                }\n            #else\n                switch layoutAttribute {\n                case .left, .right, .leading, .trailing, .centerX:\n                    return value.x\n                case .top, .bottom, .centerY, .lastBaseline, .firstBaseline:\n                    return value.y\n                case .width, .height, .notAnAttribute:\n                    return 0.0\n                }\n            #endif\n        }\n        \n        if let value = self as? ConstraintInsets {\n            #if os(iOS) || os(tvOS)\n                switch layoutAttribute {\n                case .left, .leftMargin, .centerX, .centerXWithinMargins:\n                    return value.left\n                case .top, .topMargin, .centerY, .centerYWithinMargins, .lastBaseline, .firstBaseline:\n                    return value.top\n                case .right, .rightMargin:\n                    return -value.right\n                case .bottom, .bottomMargin:\n                    return -value.bottom\n                case .leading, .leadingMargin:\n                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.left : value.right\n                case .trailing, .trailingMargin:\n                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.right : -value.left\n                case .width:\n                    return -(value.left + value.right)\n                case .height:\n                    return -(value.top + value.bottom)\n                case .notAnAttribute:\n                    return 0.0\n                }\n            #else\n                switch layoutAttribute {\n                case .left, .centerX:\n                    return value.left\n                case .top, .centerY, .lastBaseline, .firstBaseline:\n                    return value.top\n                case .right:\n                    return -value.right\n                case .bottom:\n                    return -value.bottom\n                case .leading:\n                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.left : value.right\n                case .trailing:\n                    return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.right : -value.left\n                case .width:\n                    return -(value.left + value.right)\n                case .height:\n                    return -(value.top + value.bottom)\n                case .notAnAttribute:\n                    return 0.0\n                }\n            #endif\n        }\n        \n        return 0.0\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintDSL.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintDSL {\n    \n    var target: AnyObject? { get }\n    \n    func setLabel(_ value: String?)\n    func label() -> String?\n    \n}\nextension ConstraintDSL {\n    \n    public func setLabel(_ value: String?) {\n        objc_setAssociatedObject(self.target as Any, &labelKey, value, .OBJC_ASSOCIATION_COPY_NONATOMIC)\n    }\n    public func label() -> String? {\n        return objc_getAssociatedObject(self.target as Any, &labelKey) as? String\n    }\n    \n}\nprivate var labelKey: UInt8 = 0\n\n\npublic protocol ConstraintBasicAttributesDSL : ConstraintDSL {\n}\nextension ConstraintBasicAttributesDSL {\n    \n    // MARK: Basics\n    \n    public var left: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.left)\n    }\n    \n    public var top: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.top)\n    }\n    \n    public var right: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.right)\n    }\n    \n    public var bottom: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottom)\n    }\n    \n    public var leading: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leading)\n    }\n    \n    public var trailing: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.trailing)\n    }\n    \n    public var width: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.width)\n    }\n    \n    public var height: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.height)\n    }\n    \n    public var centerX: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerX)\n    }\n    \n    public var centerY: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerY)\n    }\n    \n    public var edges: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.edges)\n    }\n    \n    public var size: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.size)\n    }\n    \n    public var center: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.center)\n    }\n    \n}\n\npublic protocol ConstraintAttributesDSL : ConstraintBasicAttributesDSL {\n}\nextension ConstraintAttributesDSL {\n    \n    // MARK: Baselines\n    \n    @available(*, deprecated:3.0, message:\"Use .lastBaseline instead\")\n    public var baseline: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.lastBaseline)\n    }\n    \n    @available(iOS 8.0, OSX 10.11, *)\n    public var lastBaseline: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.lastBaseline)\n    }\n    \n    @available(iOS 8.0, OSX 10.11, *)\n    public var firstBaseline: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.firstBaseline)\n    }\n    \n    // MARK: Margins\n    \n    @available(iOS 8.0, *)\n    public var leftMargin: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leftMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var topMargin: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.topMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var rightMargin: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.rightMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var bottomMargin: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottomMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var leadingMargin: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leadingMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var trailingMargin: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.trailingMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerXWithinMargins: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerXWithinMargins)\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerYWithinMargins: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerYWithinMargins)\n    }\n    \n    @available(iOS 8.0, *)\n    public var margins: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.margins)\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerWithinMargins: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerWithinMargins)\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintDescription.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class ConstraintDescription {\n    \n    internal let item: LayoutConstraintItem\n    internal var attributes: ConstraintAttributes\n    internal var relation: ConstraintRelation? = nil\n    internal var sourceLocation: (String, UInt)? = nil\n    internal var label: String? = nil\n    internal var related: ConstraintItem? = nil\n    internal var multiplier: ConstraintMultiplierTarget = 1.0\n    internal var constant: ConstraintConstantTarget = 0.0\n    internal var priority: ConstraintPriorityTarget = 1000.0\n    internal lazy var constraint: Constraint? = {\n        guard let relation = self.relation,\n              let related = self.related,\n              let sourceLocation = self.sourceLocation else {\n            return nil\n        }\n        let from = ConstraintItem(target: self.item, attributes: self.attributes)\n        \n        return Constraint(\n            from: from,\n            to: related,\n            relation: relation,\n            sourceLocation: sourceLocation,\n            label: self.label,\n            multiplier: self.multiplier,\n            constant: self.constant,\n            priority: self.priority\n        )\n    }()\n    \n    // MARK: Initialization\n    \n    internal init(item: LayoutConstraintItem, attributes: ConstraintAttributes) {\n        self.item = item\n        self.attributes = attributes\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintInsetTarget.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintInsetTarget: ConstraintConstantTarget {\n}\n\nextension Int: ConstraintInsetTarget {\n}\n\nextension UInt: ConstraintInsetTarget {\n}\n\nextension Float: ConstraintInsetTarget {\n}\n\nextension Double: ConstraintInsetTarget {\n}\n\nextension CGFloat: ConstraintInsetTarget {\n}\n\nextension ConstraintInsets: ConstraintInsetTarget {\n}\n\nextension ConstraintInsetTarget {\n\n    internal var constraintInsetTargetValue: ConstraintInsets {\n        if let amount = self as? ConstraintInsets {\n            return amount\n        } else if let amount = self as? Float {\n            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))\n        } else if let amount = self as? Double {\n            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))\n        } else if let amount = self as? CGFloat {\n            return ConstraintInsets(top: amount, left: amount, bottom: amount, right: amount)\n        } else if let amount = self as? Int {\n            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))\n        } else if let amount = self as? UInt {\n            return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount))\n        } else {\n            return ConstraintInsets(top: 0, left: 0, bottom: 0, right: 0)\n        }\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintInsets.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\n#if os(iOS) || os(tvOS)\n    public typealias ConstraintInsets = UIEdgeInsets\n#else\n    public typealias ConstraintInsets = NSEdgeInsets\n#endif\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintItem.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic final class ConstraintItem {\n    \n    internal weak var target: AnyObject?\n    internal let attributes: ConstraintAttributes\n    \n    internal init(target: AnyObject?, attributes: ConstraintAttributes) {\n        self.target = target\n        self.attributes = attributes\n    }\n    \n    internal var layoutConstraintItem: LayoutConstraintItem? {\n        return self.target as? LayoutConstraintItem\n    }\n    \n}\n\npublic func ==(lhs: ConstraintItem, rhs: ConstraintItem) -> Bool {\n    // pointer equality\n    guard lhs !== rhs else {\n        return true\n    }\n    \n    // must both have valid targets and identical attributes\n    guard let target1 = lhs.target,\n          let target2 = rhs.target,\n          target1 === target2 && lhs.attributes == rhs.attributes else {\n            return false\n    }\n    \n    return true\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintLayoutGuide+Extensions.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#endif\n    \n    \n@available(iOS 9.0, OSX 10.11, *)\npublic extension ConstraintLayoutGuide {\n    \n    public var snp: ConstraintLayoutGuideDSL {\n        return ConstraintLayoutGuideDSL(guide: self)\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintLayoutGuide.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\n#if os(iOS) || os(tvOS)\n    @available(iOS 9.0, *)\n    public typealias ConstraintLayoutGuide = UILayoutGuide\n#else\n    @available(OSX 10.11, *)\n    public typealias ConstraintLayoutGuide = NSLayoutGuide\n#endif\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintLayoutGuideDSL.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\n@available(iOS 9.0, OSX 10.11, *)\npublic struct ConstraintLayoutGuideDSL: ConstraintAttributesDSL {\n    \n    @discardableResult\n    public func prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {\n        return ConstraintMaker.prepareConstraints(item: self.guide, closure: closure)\n    }\n    \n    public func makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        ConstraintMaker.makeConstraints(item: self.guide, closure: closure)\n    }\n    \n    public func remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        ConstraintMaker.remakeConstraints(item: self.guide, closure: closure)\n    }\n    \n    public func updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        ConstraintMaker.updateConstraints(item: self.guide, closure: closure)\n    }\n    \n    public func removeConstraints() {\n        ConstraintMaker.removeConstraints(item: self.guide)\n    }\n    \n    public var target: AnyObject? {\n        return self.guide\n    }\n    \n    internal let guide: ConstraintLayoutGuide\n    \n    internal init(guide: ConstraintLayoutGuide) {\n        self.guide = guide\n        \n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintLayoutSupport.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\n#if os(iOS) || os(tvOS)\n    @available(iOS 8.0, *)\n    public typealias ConstraintLayoutSupport = UILayoutSupport\n#else\n    public class ConstraintLayoutSupport {}\n#endif\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintLayoutSupportDSL.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\n@available(iOS 8.0, *)\npublic struct ConstraintLayoutSupportDSL: ConstraintDSL {\n    \n    public var target: AnyObject? {\n        return self.support\n    }\n    \n    internal let support: ConstraintLayoutSupport\n    \n    internal init(support: ConstraintLayoutSupport) {\n        self.support = support\n        \n    }\n    \n    public var top: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.top)\n    }\n    \n    public var bottom: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottom)\n    }\n    \n    public var height: ConstraintItem {\n        return ConstraintItem(target: self.target, attributes: ConstraintAttributes.height)\n    }\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMaker.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\npublic class ConstraintMaker {\n    \n    public var left: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.left)\n    }\n    \n    public var top: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.top)\n    }\n    \n    public var bottom: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.bottom)\n    }\n    \n    public var right: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.right)\n    }\n    \n    public var leading: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.leading)\n    }\n    \n    public var trailing: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.trailing)\n    }\n    \n    public var width: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.width)\n    }\n    \n    public var height: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.height)\n    }\n    \n    public var centerX: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.centerX)\n    }\n    \n    public var centerY: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.centerY)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use lastBaseline instead\")\n    public var baseline: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.lastBaseline)\n    }\n    \n    public var lastBaseline: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.lastBaseline)\n    }\n    \n    @available(iOS 8.0, OSX 10.11, *)\n    public var firstBaseline: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.firstBaseline)\n    }\n    \n    @available(iOS 8.0, *)\n    public var leftMargin: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.leftMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var rightMargin: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.rightMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var topMargin: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.topMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var bottomMargin: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.bottomMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var leadingMargin: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.leadingMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var trailingMargin: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.trailingMargin)\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerXWithinMargins: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.centerXWithinMargins)\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerYWithinMargins: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.centerYWithinMargins)\n    }\n    \n    public var edges: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.edges)\n    }\n    public var size: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.size)\n    }\n    public var center: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.center)\n    }\n    \n    @available(iOS 8.0, *)\n    public var margins: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.margins)\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerWithinMargins: ConstraintMakerExtendable {\n        return self.makeExtendableWithAttributes(.centerWithinMargins)\n    }\n    \n    private let item: LayoutConstraintItem\n    private var descriptions = [ConstraintDescription]()\n    \n    internal init(item: LayoutConstraintItem) {\n        self.item = item\n        self.item.prepare()\n    }\n    \n    internal func makeExtendableWithAttributes(_ attributes: ConstraintAttributes) -> ConstraintMakerExtendable {\n        let description = ConstraintDescription(item: self.item, attributes: attributes)\n        self.descriptions.append(description)\n        return ConstraintMakerExtendable(description)\n    }\n    \n    internal static func prepareConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {\n        let maker = ConstraintMaker(item: item)\n        closure(maker)\n        var constraints: [Constraint] = []\n        for description in maker.descriptions {\n            guard let constraint = description.constraint else {\n                continue\n            }\n            constraints.append(constraint)\n        }\n        return constraints\n    }\n    \n    internal static func makeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {\n        let constraints = prepareConstraints(item: item, closure: closure)\n        for constraint in constraints {\n            constraint.activateIfNeeded(updatingExisting: false)\n        }\n    }\n    \n    internal static func remakeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {\n        self.removeConstraints(item: item)\n        self.makeConstraints(item: item, closure: closure)\n    }\n    \n    internal static func updateConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {\n        guard item.constraints.count > 0 else {\n            self.makeConstraints(item: item, closure: closure)\n            return\n        }\n        \n        let constraints = prepareConstraints(item: item, closure: closure)\n        for constraint in constraints {\n            constraint.activateIfNeeded(updatingExisting: true)\n        }\n    }\n    \n    internal static func removeConstraints(item: LayoutConstraintItem) {\n        let constraints = item.constraints\n        for constraint in constraints {\n            constraint.deactivateIfNeeded()\n        }\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMakerEditable.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class ConstraintMakerEditable: ConstraintMakerPriortizable {\n\n    @discardableResult\n    public func multipliedBy(_ amount: ConstraintMultiplierTarget) -> ConstraintMakerEditable {\n        self.description.multiplier = amount\n        return self\n    }\n    \n    @discardableResult\n    public func dividedBy(_ amount: ConstraintMultiplierTarget) -> ConstraintMakerEditable {\n        return self.multipliedBy(1.0 / amount.constraintMultiplierTargetValue)\n    }\n    \n    @discardableResult\n    public func offset(_ amount: ConstraintOffsetTarget) -> ConstraintMakerEditable {\n        self.description.constant = amount.constraintOffsetTargetValue\n        return self\n    }\n    \n    @discardableResult\n    public func inset(_ amount: ConstraintInsetTarget) -> ConstraintMakerEditable {\n        self.description.constant = amount.constraintInsetTargetValue\n        return self\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMakerExtendable.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class ConstraintMakerExtendable: ConstraintMakerRelatable {\n    \n    public var left: ConstraintMakerExtendable {\n        self.description.attributes += .left\n        return self\n    }\n    \n    public var top: ConstraintMakerExtendable {\n        self.description.attributes += .top\n        return self\n    }\n    \n    public var bottom: ConstraintMakerExtendable {\n        self.description.attributes += .bottom\n        return self\n    }\n    \n    public var right: ConstraintMakerExtendable {\n        self.description.attributes += .right\n        return self\n    }\n    \n    public var leading: ConstraintMakerExtendable {\n        self.description.attributes += .leading\n        return self\n    }\n    \n    public var trailing: ConstraintMakerExtendable {\n        self.description.attributes += .trailing\n        return self\n    }\n    \n    public var width: ConstraintMakerExtendable {\n        self.description.attributes += .width\n        return self\n    }\n    \n    public var height: ConstraintMakerExtendable {\n        self.description.attributes += .height\n        return self\n    }\n    \n    public var centerX: ConstraintMakerExtendable {\n        self.description.attributes += .centerX\n        return self\n    }\n    \n    public var centerY: ConstraintMakerExtendable {\n        self.description.attributes += .centerY\n        return self\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use lastBaseline instead\")\n    public var baseline: ConstraintMakerExtendable {\n        self.description.attributes += .lastBaseline\n        return self\n    }\n    \n    public var lastBaseline: ConstraintMakerExtendable {\n        self.description.attributes += .lastBaseline\n        return self\n    }\n    \n    @available(iOS 8.0, OSX 10.11, *)\n    public var firstBaseline: ConstraintMakerExtendable {\n        self.description.attributes += .firstBaseline\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var leftMargin: ConstraintMakerExtendable {\n        self.description.attributes += .leftMargin\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var rightMargin: ConstraintMakerExtendable {\n        self.description.attributes += .rightMargin\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var topMargin: ConstraintMakerExtendable {\n        self.description.attributes += .topMargin\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var bottomMargin: ConstraintMakerExtendable {\n        self.description.attributes += .bottomMargin\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var leadingMargin: ConstraintMakerExtendable {\n        self.description.attributes += .leadingMargin\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var trailingMargin: ConstraintMakerExtendable {\n        self.description.attributes += .trailingMargin\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerXWithinMargins: ConstraintMakerExtendable {\n        self.description.attributes += .centerXWithinMargins\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerYWithinMargins: ConstraintMakerExtendable {\n        self.description.attributes += .centerYWithinMargins\n        return self\n    }\n    \n    public var edges: ConstraintMakerExtendable {\n        self.description.attributes += .edges\n        return self\n    }\n    public var size: ConstraintMakerExtendable {\n        self.description.attributes += .size\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var margins: ConstraintMakerExtendable {\n        self.description.attributes += .margins\n        return self\n    }\n    \n    @available(iOS 8.0, *)\n    public var centerWithinMargins: ConstraintMakerExtendable {\n        self.description.attributes += .centerWithinMargins\n        return self\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMakerFinalizable.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class ConstraintMakerFinalizable {\n    \n    internal let description: ConstraintDescription\n    \n    internal init(_ description: ConstraintDescription) {\n        self.description = description\n    }\n    \n    @discardableResult\n    public func labeled(_ label: String) -> ConstraintMakerFinalizable {\n        self.description.label = label\n        return self\n    }\n    \n    public var constraint: Constraint {\n        return self.description.constraint!\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMakerPriortizable.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class ConstraintMakerPriortizable: ConstraintMakerFinalizable {\n    \n    @discardableResult\n    public func priority(_ amount: ConstraintPriority) -> ConstraintMakerFinalizable {\n        self.description.priority = amount.value\n        return self\n    }\n    \n    @discardableResult\n    public func priority(_ amount: ConstraintPriorityTarget) -> ConstraintMakerFinalizable {\n        self.description.priority = amount\n        return self\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use priority(.required) instead.\")\n    @discardableResult\n    public func priorityRequired() -> ConstraintMakerFinalizable {\n        return self.priority(.required)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use priority(.high) instead.\")\n    @discardableResult\n    public func priorityHigh() -> ConstraintMakerFinalizable {\n        return self.priority(.high)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use priority(.medium) instead.\")\n    @discardableResult\n    public func priorityMedium() -> ConstraintMakerFinalizable {\n        return self.priority(.medium)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use priority(.low) instead.\")\n    @discardableResult\n    public func priorityLow() -> ConstraintMakerFinalizable {\n        return self.priority(.low)\n    }\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMakerRelatable.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class ConstraintMakerRelatable {\n    \n    internal let description: ConstraintDescription\n    \n    internal init(_ description: ConstraintDescription) {\n        self.description = description\n    }\n    \n    internal func relatedTo(_ other: ConstraintRelatableTarget, relation: ConstraintRelation, file: String, line: UInt) -> ConstraintMakerEditable {\n        let related: ConstraintItem\n        let constant: ConstraintConstantTarget\n        \n        if let other = other as? ConstraintItem {\n            guard other.attributes == ConstraintAttributes.none ||\n                  other.attributes.layoutAttributes.count <= 1 ||\n                  other.attributes.layoutAttributes == self.description.attributes.layoutAttributes ||\n                  other.attributes == .edges && self.description.attributes == .margins ||\n                  other.attributes == .margins && self.description.attributes == .edges else {\n                fatalError(\"Cannot constraint to multiple non identical attributes. (\\(file), \\(line))\");\n            }\n            \n            related = other\n            constant = 0.0\n        } else if let other = other as? ConstraintView {\n            related = ConstraintItem(target: other, attributes: ConstraintAttributes.none)\n            constant = 0.0\n        } else if let other = other as? ConstraintConstantTarget {\n            related = ConstraintItem(target: nil, attributes: ConstraintAttributes.none)\n            constant = other\n        } else if #available(iOS 9.0, OSX 10.11, *), let other = other as? ConstraintLayoutGuide {\n            related = ConstraintItem(target: other, attributes: ConstraintAttributes.none)\n            constant = 0.0\n        } else {\n            fatalError(\"Invalid constraint. (\\(file), \\(line))\")\n        }\n        \n        let editable = ConstraintMakerEditable(self.description)\n        editable.description.sourceLocation = (file, line)\n        editable.description.relation = relation\n        editable.description.related = related\n        editable.description.constant = constant\n        return editable\n    }\n    \n    @discardableResult\n    public func equalTo(_ other: ConstraintRelatableTarget, _ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {\n        return self.relatedTo(other, relation: .equal, file: file, line: line)\n    }\n    \n    @discardableResult\n    public func equalToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {\n        guard let other = self.description.item.superview else {\n            fatalError(\"Expected superview but found nil when attempting make constraint `equalToSuperview`.\")\n        }\n        return self.relatedTo(other, relation: .equal, file: file, line: line)\n    }\n    \n    @discardableResult\n    public func lessThanOrEqualTo(_ other: ConstraintRelatableTarget, _ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {\n        return self.relatedTo(other, relation: .lessThanOrEqual, file: file, line: line)\n    }\n    \n    @discardableResult\n    public func lessThanOrEqualToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable {\n        guard let other = self.description.item.superview else {\n            fatalError(\"Expected superview but found nil when attempting make constraint `lessThanOrEqualToSuperview`.\")\n        }\n        return self.relatedTo(other, relation: .lessThanOrEqual, file: file, line: line)\n    }\n    \n    @discardableResult\n    public func greaterThanOrEqualTo(_ other: ConstraintRelatableTarget, _ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {\n        return self.relatedTo(other, relation: .greaterThanOrEqual, file: file, line: line)\n    }\n    \n    @discardableResult\n    public func greaterThanOrEqualToSuperview(_ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable {\n        guard let other = self.description.item.superview else {\n            fatalError(\"Expected superview but found nil when attempting make constraint `greaterThanOrEqualToSuperview`.\")\n        }\n        return self.relatedTo(other, relation: .greaterThanOrEqual, file: file, line: line)\n    }\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintMultiplierTarget.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintMultiplierTarget {\n    \n    var constraintMultiplierTargetValue: CGFloat { get }\n    \n}\n\nextension Int: ConstraintMultiplierTarget {\n    \n    public var constraintMultiplierTargetValue: CGFloat {\n        return CGFloat(self)\n    }\n    \n}\n\nextension UInt: ConstraintMultiplierTarget {\n    \n    public var constraintMultiplierTargetValue: CGFloat {\n        return CGFloat(self)\n    }\n    \n}\n\nextension Float: ConstraintMultiplierTarget {\n    \n    public var constraintMultiplierTargetValue: CGFloat {\n        return CGFloat(self)\n    }\n    \n}\n\nextension Double: ConstraintMultiplierTarget {\n    \n    public var constraintMultiplierTargetValue: CGFloat {\n        return CGFloat(self)\n    }\n    \n}\n\nextension CGFloat: ConstraintMultiplierTarget {\n    \n    public var constraintMultiplierTargetValue: CGFloat {\n        return self\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintOffsetTarget.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintOffsetTarget: ConstraintConstantTarget {\n}\n\nextension Int: ConstraintOffsetTarget {\n}\n\nextension UInt: ConstraintOffsetTarget {\n}\n\nextension Float: ConstraintOffsetTarget {\n}\n\nextension Double: ConstraintOffsetTarget {\n}\n\nextension CGFloat: ConstraintOffsetTarget {\n}\n\nextension ConstraintOffsetTarget {\n    \n    internal var constraintOffsetTargetValue: CGFloat {\n        let offset: CGFloat\n        if let amount = self as? Float {\n            offset = CGFloat(amount)\n        } else if let amount = self as? Double {\n            offset = CGFloat(amount)\n        } else if let amount = self as? CGFloat {\n            offset = CGFloat(amount)\n        } else if let amount = self as? Int {\n            offset = CGFloat(amount)\n        } else if let amount = self as? UInt {\n            offset = CGFloat(amount)\n        } else {\n            offset = 0.0\n        }\n        return offset\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintPriority.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\npublic struct ConstraintPriority : ExpressibleByFloatLiteral, Equatable, Strideable {\n    public typealias FloatLiteralType = Float\n    \n    public let value: Float\n    \n    public init(floatLiteral value: Float) {\n        self.value = value\n    }\n    \n    public init(_ value: Float) {\n        self.value = value\n    }\n    \n    public static var required: ConstraintPriority {\n        return 1000.0\n    }\n    \n    public static var high: ConstraintPriority {\n        return 750.0\n    }\n    \n    public static var medium: ConstraintPriority {\n        #if os(OSX)\n            return 501.0\n        #else\n            return 500.0\n        #endif\n        \n    }\n    \n    public static var low: ConstraintPriority {\n        return 250.0\n    }\n    \n    public static func ==(lhs: ConstraintPriority, rhs: ConstraintPriority) -> Bool {\n        return lhs.value == rhs.value\n    }\n\n    // MARK: Strideable\n\n    public func advanced(by n: FloatLiteralType) -> ConstraintPriority {\n        return ConstraintPriority(floatLiteral: value + n)\n    }\n\n    public func distance(to other: ConstraintPriority) -> FloatLiteralType {\n        return other.value - value\n    }\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintPriorityTarget.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintPriorityTarget {\n    \n    var constraintPriorityTargetValue: Float { get }\n    \n}\n\nextension Int: ConstraintPriorityTarget {\n    \n    public var constraintPriorityTargetValue: Float {\n        return Float(self)\n    }\n    \n}\n\nextension UInt: ConstraintPriorityTarget {\n    \n    public var constraintPriorityTargetValue: Float {\n        return Float(self)\n    }\n    \n}\n\nextension Float: ConstraintPriorityTarget {\n    \n    public var constraintPriorityTargetValue: Float {\n        return self\n    }\n    \n}\n\nextension Double: ConstraintPriorityTarget {\n    \n    public var constraintPriorityTargetValue: Float {\n        return Float(self)\n    }\n    \n}\n\nextension CGFloat: ConstraintPriorityTarget {\n    \n    public var constraintPriorityTargetValue: Float {\n        return Float(self)\n    }\n    \n}\n\n#if os(iOS) || os(tvOS)\nextension UILayoutPriority: ConstraintPriorityTarget {\n\n    public var constraintPriorityTargetValue: Float {\n        return self.rawValue\n    }\n\n}\n#endif\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintRelatableTarget.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol ConstraintRelatableTarget {\n}\n\nextension Int: ConstraintRelatableTarget {\n}\n\nextension UInt: ConstraintRelatableTarget {\n}\n\nextension Float: ConstraintRelatableTarget {\n}\n\nextension Double: ConstraintRelatableTarget {\n}\n\nextension CGFloat: ConstraintRelatableTarget {\n}\n\nextension CGSize: ConstraintRelatableTarget {\n}\n\nextension CGPoint: ConstraintRelatableTarget {\n}\n\nextension ConstraintInsets: ConstraintRelatableTarget {\n}\n\nextension ConstraintItem: ConstraintRelatableTarget {\n}\n\nextension ConstraintView: ConstraintRelatableTarget {\n}\n\n@available(iOS 9.0, OSX 10.11, *)\nextension ConstraintLayoutGuide: ConstraintRelatableTarget {\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintRelation.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\ninternal enum ConstraintRelation : Int {\n    case equal = 1\n    case lessThanOrEqual\n    case greaterThanOrEqual\n    \n    internal var layoutRelation: LayoutRelation {\n        get {\n            switch(self) {\n            case .equal:\n                return .equal\n            case .lessThanOrEqual:\n                return .lessThanOrEqual\n            case .greaterThanOrEqual:\n                return .greaterThanOrEqual\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintView+Extensions.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic extension ConstraintView {\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_left: ConstraintItem { return self.snp.left }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_top: ConstraintItem { return self.snp.top }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_right: ConstraintItem { return self.snp.right }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_bottom: ConstraintItem { return self.snp.bottom }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_leading: ConstraintItem { return self.snp.leading }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_trailing: ConstraintItem { return self.snp.trailing }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_width: ConstraintItem { return self.snp.width }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_height: ConstraintItem { return self.snp.height }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_centerX: ConstraintItem { return self.snp.centerX }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_centerY: ConstraintItem { return self.snp.centerY }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_baseline: ConstraintItem { return self.snp.baseline }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, OSX 10.11, *)\n    public var snp_lastBaseline: ConstraintItem { return self.snp.lastBaseline }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, OSX 10.11, *)\n    public var snp_firstBaseline: ConstraintItem { return self.snp.firstBaseline }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_leftMargin: ConstraintItem { return self.snp.leftMargin }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_topMargin: ConstraintItem { return self.snp.topMargin }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_rightMargin: ConstraintItem { return self.snp.rightMargin }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_bottomMargin: ConstraintItem { return self.snp.bottomMargin }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_leadingMargin: ConstraintItem { return self.snp.leadingMargin }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_trailingMargin: ConstraintItem { return self.snp.trailingMargin }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_centerXWithinMargins: ConstraintItem { return self.snp.centerXWithinMargins }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_centerYWithinMargins: ConstraintItem { return self.snp.centerYWithinMargins }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_edges: ConstraintItem { return self.snp.edges }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_size: ConstraintItem { return self.snp.size }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public var snp_center: ConstraintItem { return self.snp.center }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_margins: ConstraintItem { return self.snp.margins }\n    \n    @available(iOS, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    @available(iOS 8.0, *)\n    public var snp_centerWithinMargins: ConstraintItem { return self.snp.centerWithinMargins }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public func snp_prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {\n        return self.snp.prepareConstraints(closure)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public func snp_makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        self.snp.makeConstraints(closure)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public func snp_remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        self.snp.remakeConstraints(closure)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public func snp_updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        self.snp.updateConstraints(closure)\n    }\n    \n    @available(*, deprecated:3.0, message:\"Use newer snp.* syntax.\")\n    public func snp_removeConstraints() {\n        self.snp.removeConstraints()\n    }\n    \n    public var snp: ConstraintViewDSL {\n        return ConstraintViewDSL(view: self)\n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintView.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\n#if os(iOS) || os(tvOS)\n    public typealias ConstraintView = UIView\n#else\n    public typealias ConstraintView = NSView\n#endif\n"
  },
  {
    "path": "Pods/SnapKit/Source/ConstraintViewDSL.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic struct ConstraintViewDSL: ConstraintAttributesDSL {\n    \n    @discardableResult\n    public func prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {\n        return ConstraintMaker.prepareConstraints(item: self.view, closure: closure)\n    }\n    \n    public func makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        ConstraintMaker.makeConstraints(item: self.view, closure: closure)\n    }\n    \n    public func remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        ConstraintMaker.remakeConstraints(item: self.view, closure: closure)\n    }\n    \n    public func updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) {\n        ConstraintMaker.updateConstraints(item: self.view, closure: closure)\n    }\n    \n    public func removeConstraints() {\n        ConstraintMaker.removeConstraints(item: self.view)\n    }\n    \n    public var contentHuggingHorizontalPriority: Float {\n        get {\n            return self.view.contentHuggingPriority(for: .horizontal).rawValue\n        }\n        set {\n            self.view.setContentHuggingPriority(LayoutPriority(rawValue: newValue), for: .horizontal)\n        }\n    }\n    \n    public var contentHuggingVerticalPriority: Float {\n        get {\n            return self.view.contentHuggingPriority(for: .vertical).rawValue\n        }\n        set {\n            self.view.setContentHuggingPriority(LayoutPriority(rawValue: newValue), for: .vertical)\n        }\n    }\n    \n    public var contentCompressionResistanceHorizontalPriority: Float {\n        get {\n            return self.view.contentCompressionResistancePriority(for: .horizontal).rawValue\n        }\n        set {\n            self.view.setContentCompressionResistancePriority(LayoutPriority(rawValue: newValue), for: .horizontal)\n        }\n    }\n    \n    public var contentCompressionResistanceVerticalPriority: Float {\n        get {\n            return self.view.contentCompressionResistancePriority(for: .vertical).rawValue\n        }\n        set {\n            self.view.setContentCompressionResistancePriority(LayoutPriority(rawValue: newValue), for: .vertical)\n        }\n    }\n    \n    public var target: AnyObject? {\n        return self.view\n    }\n    \n    internal let view: ConstraintView\n    \n    internal init(view: ConstraintView) {\n        self.view = view\n        \n    }\n    \n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/Debugging.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\npublic extension LayoutConstraint {\n    \n    override public var description: String {\n        var description = \"<\"\n        \n        description += descriptionForObject(self)\n        \n        if let firstItem = conditionalOptional(from: self.firstItem) {\n            description += \" \\(descriptionForObject(firstItem))\"\n        }\n        \n        if self.firstAttribute != .notAnAttribute {\n            description += \".\\(descriptionForAttribute(self.firstAttribute))\"\n        }\n        \n        description += \" \\(descriptionForRelation(self.relation))\"\n        \n        if let secondItem = self.secondItem {\n            description += \" \\(descriptionForObject(secondItem))\"\n        }\n        \n        if self.secondAttribute != .notAnAttribute {\n            description += \".\\(descriptionForAttribute(self.secondAttribute))\"\n        }\n        \n        if self.multiplier != 1.0 {\n            description += \" * \\(self.multiplier)\"\n        }\n        \n        if self.secondAttribute == .notAnAttribute {\n            description += \" \\(self.constant)\"\n        } else {\n            if self.constant > 0.0 {\n                description += \" + \\(self.constant)\"\n            } else if self.constant < 0.0 {\n                description += \" - \\(abs(self.constant))\"\n            }\n        }\n        \n        if self.priority.rawValue != 1000.0 {\n            description += \" ^\\(self.priority)\"\n        }\n        \n        description += \">\"\n        \n        return description\n    }\n    \n}\n\nprivate func descriptionForRelation(_ relation: LayoutRelation) -> String {\n    switch relation {\n    case .equal:                return \"==\"\n    case .greaterThanOrEqual:   return \">=\"\n    case .lessThanOrEqual:      return \"<=\"\n    }\n}\n\nprivate func descriptionForAttribute(_ attribute: LayoutAttribute) -> String {\n    #if os(iOS) || os(tvOS)\n        switch attribute {\n        case .notAnAttribute:       return \"notAnAttribute\"\n        case .top:                  return \"top\"\n        case .left:                 return \"left\"\n        case .bottom:               return \"bottom\"\n        case .right:                return \"right\"\n        case .leading:              return \"leading\"\n        case .trailing:             return \"trailing\"\n        case .width:                return \"width\"\n        case .height:               return \"height\"\n        case .centerX:              return \"centerX\"\n        case .centerY:              return \"centerY\"\n        case .lastBaseline:         return \"lastBaseline\"\n        case .firstBaseline:        return \"firstBaseline\"\n        case .topMargin:            return \"topMargin\"\n        case .leftMargin:           return \"leftMargin\"\n        case .bottomMargin:         return \"bottomMargin\"\n        case .rightMargin:          return \"rightMargin\"\n        case .leadingMargin:        return \"leadingMargin\"\n        case .trailingMargin:       return \"trailingMargin\"\n        case .centerXWithinMargins: return \"centerXWithinMargins\"\n        case .centerYWithinMargins: return \"centerYWithinMargins\"\n        }\n    #else\n        switch attribute {\n        case .notAnAttribute:       return \"notAnAttribute\"\n        case .top:                  return \"top\"\n        case .left:                 return \"left\"\n        case .bottom:               return \"bottom\"\n        case .right:                return \"right\"\n        case .leading:              return \"leading\"\n        case .trailing:             return \"trailing\"\n        case .width:                return \"width\"\n        case .height:               return \"height\"\n        case .centerX:              return \"centerX\"\n        case .centerY:              return \"centerY\"\n        case .lastBaseline:         return \"lastBaseline\"\n        case .firstBaseline:        return \"firstBaseline\"\n        }\n    #endif\n}\n\nprivate func conditionalOptional<T>(from object: Optional<T>) -> Optional<T> {\n    return object\n}\n\nprivate func conditionalOptional<T>(from object: T) -> Optional<T> {\n    return Optional.some(object)\n}\n\nprivate func descriptionForObject(_ object: AnyObject) -> String {\n    let pointerDescription = String(format: \"%p\", UInt(bitPattern: ObjectIdentifier(object)))\n    var desc = \"\"\n    \n    desc += type(of: object).description()\n    \n    if let object = object as? ConstraintView {\n        desc += \":\\(object.snp.label() ?? pointerDescription)\"\n    } else if let object = object as? LayoutConstraint {\n        desc += \":\\(object.label ?? pointerDescription)\"\n    } else {\n        desc += \":\\(pointerDescription)\"\n    }\n    \n    if let object = object as? LayoutConstraint, let file = object.constraint?.sourceLocation.0, let line = object.constraint?.sourceLocation.1 {\n        desc += \"@\\((file as NSString).lastPathComponent)#\\(line)\"\n    }\n    \n    desc += \"\"\n    return desc\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/LayoutConstraint.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic class LayoutConstraint : NSLayoutConstraint {\n    \n    public var label: String? {\n        get {\n            return self.identifier\n        }\n        set {\n            self.identifier = newValue\n        }\n    }\n    \n    internal weak var constraint: Constraint? = nil\n    \n}\n\ninternal func ==(lhs: LayoutConstraint, rhs: LayoutConstraint) -> Bool {\n    guard lhs.firstItem === rhs.firstItem &&\n          lhs.secondItem === rhs.secondItem &&\n          lhs.firstAttribute == rhs.firstAttribute &&\n          lhs.secondAttribute == rhs.secondAttribute &&\n          lhs.relation == rhs.relation &&\n          lhs.priority == rhs.priority &&\n          lhs.multiplier == rhs.multiplier else {\n        return false\n    }\n    return true\n}\n"
  },
  {
    "path": "Pods/SnapKit/Source/LayoutConstraintItem.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#else\n    import AppKit\n#endif\n\n\npublic protocol LayoutConstraintItem: class {\n}\n\n@available(iOS 9.0, OSX 10.11, *)\nextension ConstraintLayoutGuide : LayoutConstraintItem {\n}\n\nextension ConstraintView : LayoutConstraintItem {\n}\n\n\nextension LayoutConstraintItem {\n    \n    internal func prepare() {\n        if let view = self as? ConstraintView {\n            view.translatesAutoresizingMaskIntoConstraints = false\n        }\n    }\n    \n    internal var superview: ConstraintView? {\n        if let view = self as? ConstraintView {\n            return view.superview\n        }\n        \n        if #available(iOS 9.0, OSX 10.11, *), let guide = self as? ConstraintLayoutGuide {\n            return guide.owningView\n        }\n        \n        return nil\n    }\n    internal var constraints: [Constraint] {\n        return self.constraintsSet.allObjects as! [Constraint]\n    }\n    \n    internal func add(constraints: [Constraint]) {\n        let constraintsSet = self.constraintsSet\n        for constraint in constraints {\n            constraintsSet.add(constraint)\n        }\n    }\n    \n    internal func remove(constraints: [Constraint]) {\n        let constraintsSet = self.constraintsSet\n        for constraint in constraints {\n            constraintsSet.remove(constraint)\n        }\n    }\n    \n    private var constraintsSet: NSMutableSet {\n        let constraintsSet: NSMutableSet\n        \n        if let existing = objc_getAssociatedObject(self, &constraintsKey) as? NSMutableSet {\n            constraintsSet = existing\n        } else {\n            constraintsSet = NSMutableSet()\n            objc_setAssociatedObject(self, &constraintsKey, constraintsSet, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)\n        }\n        return constraintsSet\n        \n    }\n    \n}\nprivate var constraintsKey: UInt8 = 0\n"
  },
  {
    "path": "Pods/SnapKit/Source/Typealiases.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\nimport Foundation\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#if swift(>=4.2)\n    typealias LayoutRelation = NSLayoutConstraint.Relation\n    typealias LayoutAttribute = NSLayoutConstraint.Attribute\n#else\n    typealias LayoutRelation = NSLayoutRelation\n    typealias LayoutAttribute = NSLayoutAttribute\n#endif\n    typealias LayoutPriority = UILayoutPriority\n#else\n    import AppKit\n    typealias LayoutRelation = NSLayoutConstraint.Relation\n    typealias LayoutAttribute = NSLayoutConstraint.Attribute\n    typealias LayoutPriority = NSLayoutConstraint.Priority\n#endif\n\n"
  },
  {
    "path": "Pods/SnapKit/Source/UILayoutSupport+Extensions.swift",
    "content": "//\n//  SnapKit\n//\n//  Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n//\n//  Permission is hereby granted, free of charge, to any person obtaining a copy\n//  of this software and associated documentation files (the \"Software\"), to deal\n//  in the Software without restriction, including without limitation the rights\n//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n//  copies of the Software, and to permit persons to whom the Software is\n//  furnished to do so, subject to the following conditions:\n//\n//  The above copyright notice and this permission notice shall be included in\n//  all copies or substantial portions of the Software.\n//\n//  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n//  THE SOFTWARE.\n\n#if os(iOS) || os(tvOS)\n    import UIKit\n#endif\n\n    \n@available(iOS 8.0, *)\npublic extension ConstraintLayoutSupport {\n    \n    public var snp: ConstraintLayoutSupportDSL {\n        return ConstraintLayoutSupportDSL(support: self)\n    }\n    \n}\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>${EXECUTABLE_NAME}</string>\n  <key>CFBundleIdentifier</key>\n  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>${PRODUCT_NAME}</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>1.0.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>${CURRENT_PROJECT_VERSION}</string>\n  <key>NSPrincipalClass</key>\n  <string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-acknowledgements.markdown",
    "content": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## SnapKit\n\nCopyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\nGenerated by CocoaPods - https://cocoapods.org\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-acknowledgements.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>This application makes use of the following third party libraries:</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Acknowledgements</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n</string>\n\t\t\t<key>License</key>\n\t\t\t<string>MIT</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>SnapKit</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Generated by CocoaPods - https://cocoapods.org</string>\n\t\t\t<key>Title</key>\n\t\t\t<string></string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t</array>\n\t<key>StringsTable</key>\n\t<string>Acknowledgements</string>\n\t<key>Title</key>\n\t<string>Acknowledgements</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_VerifyCodeDemo : NSObject\n@end\n@implementation PodsDummy_Pods_VerifyCodeDemo\n@end\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks-Debug-input-files.xcfilelist",
    "content": "${PODS_ROOT}/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks.sh\n${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks-Debug-output-files.xcfilelist",
    "content": "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks-Release-input-files.xcfilelist",
    "content": "${PODS_ROOT}/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks.sh\n${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks-Release-output-files.xcfilelist",
    "content": "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks.sh",
    "content": "#!/bin/sh\nset -e\nset -u\nset -o pipefail\n\nfunction on_error {\n  echo \"$(realpath -mq \"${0}\"):$1: error: Unexpected failure\"\n}\ntrap 'on_error $LINENO' ERR\n\nif [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then\n  # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy\n  # frameworks to, so exit 0 (signalling the script phase was successful).\n  exit 0\nfi\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nCOCOAPODS_PARALLEL_CODE_SIGN=\"${COCOAPODS_PARALLEL_CODE_SIGN:-false}\"\nSWIFT_STDLIB_PATH=\"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"\n\n# Used as a return value for each invocation of `strip_invalid_archs` function.\nSTRIP_BINARY_RETVAL=0\n\n# This protects against multiple targets copying the same framework dependency at the same time. The solution\n# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html\nRSYNC_PROTECT_TMP_FILES=(--filter \"P .*.??????\")\n\n# Copies and strips a vendored framework\ninstall_framework()\n{\n  if [ -r \"${BUILT_PRODUCTS_DIR}/$1\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$1\"\n  elif [ -r \"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\"\n  elif [ -r \"$1\" ]; then\n    local source=\"$1\"\n  fi\n\n  local destination=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\n  if [ -L \"${source}\" ]; then\n    echo \"Symlinked...\"\n    source=\"$(readlink \"${source}\")\"\n  fi\n\n  # Use filter instead of exclude so missing patterns don't throw errors.\n  echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${destination}\\\"\"\n  rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"\n\n  local basename\n  basename=\"$(basename -s .framework \"$1\")\"\n  binary=\"${destination}/${basename}.framework/${basename}\"\n\n  if ! [ -r \"$binary\" ]; then\n    binary=\"${destination}/${basename}\"\n  elif [ -L \"${binary}\" ]; then\n    echo \"Destination binary is symlinked...\"\n    dirname=\"$(dirname \"${binary}\")\"\n    binary=\"${dirname}/$(readlink \"${binary}\")\"\n  fi\n\n  # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n  if [[ \"$(file \"$binary\")\" == *\"dynamically linked shared library\"* ]]; then\n    strip_invalid_archs \"$binary\"\n  fi\n\n  # Resign the code if required by the build settings to avoid unstable apps\n  code_sign_if_enabled \"${destination}/$(basename \"$1\")\"\n\n  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.\n  if [ \"${XCODE_VERSION_MAJOR}\" -lt 7 ]; then\n    local swift_runtime_libs\n    swift_runtime_libs=$(xcrun otool -LX \"$binary\" | grep --color=never @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u)\n    for lib in $swift_runtime_libs; do\n      echo \"rsync -auv \\\"${SWIFT_STDLIB_PATH}/${lib}\\\" \\\"${destination}\\\"\"\n      rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"\n      code_sign_if_enabled \"${destination}/${lib}\"\n    done\n  fi\n}\n\n# Copies and strips a vendored dSYM\ninstall_dsym() {\n  local source=\"$1\"\n  if [ -r \"$source\" ]; then\n    # Copy the dSYM into a the targets temp dir.\n    echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${DERIVED_FILES_DIR}\\\"\"\n    rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"\n\n    local basename\n    basename=\"$(basename -s .framework.dSYM \"$source\")\"\n    binary=\"${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}\"\n\n    # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n    if [[ \"$(file \"$binary\")\" == *\"Mach-O \"*\"dSYM companion\"* ]]; then\n      strip_invalid_archs \"$binary\"\n    fi\n\n    if [[ $STRIP_BINARY_RETVAL == 1 ]]; then\n      # Move the stripped file into its final destination.\n      echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\\\" \\\"${DWARF_DSYM_FOLDER_PATH}\\\"\"\n      rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"\n    else\n      # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.\n      touch \"${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM\"\n    fi\n  fi\n}\n\n# Copies the bcsymbolmap files of a vendored framework\ninstall_bcsymbolmap() {\n    local bcsymbolmap_path=\"$1\"\n    local destination=\"${BUILT_PRODUCTS_DIR}\"\n    echo \"rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\"\"\n    rsync --delete -av \"${RSYNC_PROTECT_TMP_FILES[@]}\" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${bcsymbolmap_path}\" \"${destination}\"\n}\n\n# Signs a framework with the provided identity\ncode_sign_if_enabled() {\n  if [ -n \"${EXPANDED_CODE_SIGN_IDENTITY:-}\" -a \"${CODE_SIGNING_REQUIRED:-}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n    # Use the current code_sign_identity\n    echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n    local code_sign_cmd=\"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'\"\n\n    if [ \"${COCOAPODS_PARALLEL_CODE_SIGN}\" == \"true\" ]; then\n      code_sign_cmd=\"$code_sign_cmd &\"\n    fi\n    echo \"$code_sign_cmd\"\n    eval \"$code_sign_cmd\"\n  fi\n}\n\n# Strip invalid architectures\nstrip_invalid_archs() {\n  binary=\"$1\"\n  # Get architectures for current target binary\n  binary_archs=\"$(lipo -info \"$binary\" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)\"\n  # Intersect them with the architectures we are building for\n  intersected_archs=\"$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\\n' | sort | uniq -d)\"\n  # If there are no archs supported by this binary then warn the user\n  if [[ -z \"$intersected_archs\" ]]; then\n    echo \"warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS).\"\n    STRIP_BINARY_RETVAL=0\n    return\n  fi\n  stripped=\"\"\n  for arch in $binary_archs; do\n    if ! [[ \"${ARCHS}\" == *\"$arch\"* ]]; then\n      # Strip non-valid architectures in-place\n      lipo -remove \"$arch\" -output \"$binary\" \"$binary\"\n      stripped=\"$stripped $arch\"\n    fi\n  done\n  if [[ \"$stripped\" ]]; then\n    echo \"Stripped $binary of architectures:$stripped\"\n  fi\n  STRIP_BINARY_RETVAL=1\n}\n\n\nif [[ \"$CONFIGURATION\" == \"Debug\" ]]; then\n  install_framework \"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework\"\nfi\nif [[ \"$CONFIGURATION\" == \"Release\" ]]; then\n  install_framework \"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework\"\nfi\nif [ \"${COCOAPODS_PARALLEL_CODE_SIGN}\" == \"true\" ]; then\n  wait\nfi\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-umbrella.h",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n\nFOUNDATION_EXPORT double Pods_VerifyCodeDemoVersionNumber;\nFOUNDATION_EXPORT const unsigned char Pods_VerifyCodeDemoVersionString[];\n\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.debug.xcconfig",
    "content": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers\"\nLD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'\nOTHER_LDFLAGS = $(inherited) -framework \"SnapKit\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_PODFILE_DIR_PATH = ${SRCROOT}/.\nPODS_ROOT = ${SRCROOT}/Pods\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.modulemap",
    "content": "framework module Pods_VerifyCodeDemo {\n  umbrella header \"Pods-VerifyCodeDemo-umbrella.h\"\n\n  export *\n  module * { export * }\n}\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.release.xcconfig",
    "content": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit\"\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers\"\nLD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'\nOTHER_LDFLAGS = $(inherited) -framework \"SnapKit\"\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_PODFILE_DIR_PATH = ${SRCROOT}/.\nPODS_ROOT = ${SRCROOT}/Pods\n"
  },
  {
    "path": "Pods/Target Support Files/SnapKit/SnapKit-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>CFBundleDevelopmentRegion</key>\n  <string>en</string>\n  <key>CFBundleExecutable</key>\n  <string>${EXECUTABLE_NAME}</string>\n  <key>CFBundleIdentifier</key>\n  <string>${PRODUCT_BUNDLE_IDENTIFIER}</string>\n  <key>CFBundleInfoDictionaryVersion</key>\n  <string>6.0</string>\n  <key>CFBundleName</key>\n  <string>${PRODUCT_NAME}</string>\n  <key>CFBundlePackageType</key>\n  <string>FMWK</string>\n  <key>CFBundleShortVersionString</key>\n  <string>4.2.0</string>\n  <key>CFBundleSignature</key>\n  <string>????</string>\n  <key>CFBundleVersion</key>\n  <string>${CURRENT_PROJECT_VERSION}</string>\n  <key>NSPrincipalClass</key>\n  <string></string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Pods/Target Support Files/SnapKit/SnapKit-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_SnapKit : NSObject\n@end\n@implementation PodsDummy_SnapKit\n@end\n"
  },
  {
    "path": "Pods/Target Support Files/SnapKit/SnapKit-prefix.pch",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n"
  },
  {
    "path": "Pods/Target Support Files/SnapKit/SnapKit-umbrella.h",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPORT extern \"C\"\n#else\n#define FOUNDATION_EXPORT extern\n#endif\n#endif\n#endif\n\n\nFOUNDATION_EXPORT double SnapKitVersionNumber;\nFOUNDATION_EXPORT const unsigned char SnapKitVersionString[];\n\n"
  },
  {
    "path": "Pods/Target Support Files/SnapKit/SnapKit.modulemap",
    "content": "framework module SnapKit {\n  umbrella header \"SnapKit-umbrella.h\"\n\n  export *\n  module * { export * }\n}\n"
  },
  {
    "path": "Pods/Target Support Files/SnapKit/SnapKit.xcconfig",
    "content": "CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nOTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS\nPODS_BUILD_DIR = ${BUILD_DIR}\nPODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}\nPODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit\nPRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\nSKIP_INSTALL = YES\n"
  },
  {
    "path": "README.md",
    "content": "# VerificationCode\n\n\n\n#### 依赖于SnapKit\n\n## 工具类\n![工具类.jpg](https://upload-images.jianshu.io/upload_images/2094754-d0116e762526d75f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 依赖的方法、可以使用自己项目的方法替换\n![依赖类.jpg](https://upload-images.jianshu.io/upload_images/2094754-7d23542eb01f6de1.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n\n## 效果：\n![验证码输入Demo.gif](https://upload-images.jianshu.io/upload_images/2094754-768de1c89184e230.gif?imageMogr2/auto-orient/strip)\n\n\n## 思路：\n视图层级：\n\n\n- 最底层一个隐藏的UITextView，上面铺的Label\n\n- 输入焦点在UITextView，监听UITextView的输入，给Label赋值\n\n- 通过Label显示输入的文字使用CAShapeLayer绘制光标\n\n- 通过光标的显示隐藏来控制光标的移动\n\n- 基础动画控制光标闪动\n\n\n\n## 使用：\n          // 初始化验证码输入框数量\n        let codeView = TDWVerifyCodeView.init(inputTextNum: 6)\n    \n         // 监听验证码输入的过程\n        codeView.textValueChange = { [weak self] str in\n            // 要做的事情\n        }\n        \n        // 监听验证码输入完成\n        codeView.inputFinish = { [weak self] str in\n            // 要做的事情\n        }\n###\n\n\n#### 简书链接：\n#### https://www.jianshu.com/p/d258714f7095\n\n## 喜欢的点个star，谢谢老铁们\n\n"
  },
  {
    "path": "VerifyCodeDemo/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  VerifyCodeDemo\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        // Override point for customization after application launch.\n        return true\n    }\n\n    func applicationWillResignActive(_ application: UIApplication) {\n        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.\n    }\n\n    func applicationDidEnterBackground(_ application: UIApplication) {\n        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n    }\n\n    func applicationWillEnterForeground(_ application: UIApplication) {\n        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.\n    }\n\n    func applicationDidBecomeActive(_ application: UIApplication) {\n        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n    }\n\n    func applicationWillTerminate(_ application: UIApplication) {\n        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n    }\n\n\n}\n\n"
  },
  {
    "path": "VerifyCodeDemo/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"76x76\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"76x76\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"83.5x83.5\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"size\" : \"1024x1024\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "VerifyCodeDemo/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "VerifyCodeDemo/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"13122.16\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"13104.12\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "VerifyCodeDemo/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"13122.16\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"13104.12\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" customClass=\"ViewController\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "VerifyCodeDemo/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "VerifyCodeDemo/VerifyCodeView/TDWExtension/TDWExtensions.swift",
    "content": "//\n//  TDWUIScreenExtensions.swift\n//  TDWCashLoan\n//\n//  Created by ZhengRuSong on 2017/8/4.\n//  Copyright © 2017年 com.tuandaiwang.www. All rights reserved.\n//\n\nimport Foundation\nimport UIKit\n\npublic extension UIScreen {\n    static func tdw_width() -> CGFloat {\n        return UIScreen.main.bounds.width\n    }\n    static func tdw_height() -> CGFloat {\n        return UIScreen.main.bounds.height\n    }\n    static func tdw_size() -> CGSize {\n        return UIScreen.main.bounds.size\n    }\n}\n\npublic extension UIColor {\n    \n    //用数值初始化颜色，便于生成设计图上标明的十六进制颜色\n    convenience init(TDWValueRGB: UInt, alpha: CGFloat = 1.0) {\n        self.init(\n            red: CGFloat((TDWValueRGB & 0xFF0000) >> 16) / 255.0,\n            green: CGFloat((TDWValueRGB & 0x00FF00) >> 8) / 255.0,\n            blue: CGFloat(TDWValueRGB & 0x0000FF) / 255.0,\n            alpha: alpha\n        )\n    }\n    \n    convenience init(TDWValueRGB: UInt) {\n        self.init(\n            red: CGFloat((TDWValueRGB & 0xFF0000) >> 16) / 255.0,\n            green: CGFloat((TDWValueRGB & 0x00FF00) >> 8) / 255.0,\n            blue: CGFloat(TDWValueRGB & 0x0000FF) / 255.0,\n            alpha: 1.0\n        )\n    }\n    \n}\n"
  },
  {
    "path": "VerifyCodeDemo/VerifyCodeView/TDWVerifyCodeNumView.swift",
    "content": "//\n//  TDWVerifyCodeNumView.swift\n//  VerifyCodeDemo\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport UIKit\nimport SnapKit\n\nclass TDWVerifyCodeNumView: UIView {\n    \n    /// 光标颜色\n    var cursorColor = UIColor.init(TDWValueRGB: 0xfab700)\n    \n    fileprivate lazy var numLabel: UILabel = {\n        let label = UILabel()\n        label.textAlignment = .center\n        label.font = UIFont.systemFont(ofSize: 17)        \n        self.addSubview(label)\n        return label\n    }()\n    \n    fileprivate lazy var lineView: UIView = {\n        let line = UIView()\n        line.backgroundColor = UIColor.init(TDWValueRGB: 0xe6e6e6)\n        self.addSubview(line)\n        return line\n    }()\n    \n    /// 光标\n    lazy var cursor: CAShapeLayer = {\n        let shapeLayer = CAShapeLayer()\n        shapeLayer.fillColor = cursorColor.cgColor\n        shapeLayer.add(opacityAnimation, forKey: \"kOpacityAnimation\")\n        self.layer.addSublayer(shapeLayer)\n        return shapeLayer\n    }()\n    \n    /// 闪烁动画\n    fileprivate var opacityAnimation: CABasicAnimation = {\n        let opacityAnimation = CABasicAnimation.init(keyPath: \"opacity\")\n        // 属性初始值\n        opacityAnimation.fromValue = 1.0\n        // 属性要到达的值\n        opacityAnimation.toValue = 0.0\n        // 动画时间\n        opacityAnimation.duration = 0.9\n        // 重复次数(无穷大)\n        opacityAnimation.repeatCount = HUGE\n        /*\n         removedOnCompletion：默认为YES，代表动画执行完毕后就从图层上移除，图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态，那就设置为NO，不过还要设置fillMode为kCAFillModeForwards\n         */\n        opacityAnimation.isRemovedOnCompletion = true\n        // 决定当前对象在非active时间段的行为。比如动画开始之前或者动画结束之后\n        opacityAnimation.fillMode = .forwards\n        // 速度控制函数，控制动画运行的节奏\n        /*\n         kCAMediaTimingFunctionLinear（线性）：匀速，给你一个相对静态的感觉\n         kCAMediaTimingFunctionEaseIn（渐进）：动画缓慢进入，然后加速离开\n         kCAMediaTimingFunctionEaseOut（渐出）：动画全速进入，然后减速的到达目的地\n         kCAMediaTimingFunctionEaseInEaseOut（渐进渐出）：动画缓慢的进入，中间加速，然后减速的到达目的地。这个是默认的动画行为。\n         */\n        opacityAnimation.timingFunction = CAMediaTimingFunction.init(name: .easeIn)\n        return opacityAnimation\n    }()\n    \n    override init(frame: CGRect) {\n        super.init(frame: frame)\n        numLabel.snp.makeConstraints { (make) in\n            make.left.right.top.equalToSuperview()\n            make.bottom.equalToSuperview().offset(-0.5)\n        }\n        lineView.snp.makeConstraints { (make) in\n            make.left.bottom.right.equalToSuperview()\n            make.height.equalTo(0.5)\n        }\n        \n        NotificationCenter.default.addObserver(self, selector: #selector(becomeActive), name: UIApplication.didBecomeActiveNotification, object: nil)\n        \n        NotificationCenter.default.addObserver(self, selector: #selector(enterBack), name: UIApplication.didEnterBackgroundNotification, object: nil)\n        \n    }\n    \n    deinit {\n        NotificationCenter.default.removeObserver(self)\n    }\n    \n    override func layoutSubviews() {\n        super.layoutSubviews()\n        let path = UIBezierPath.init(rect: CGRect.init(x: self.frame.size.width * 0.5, y: self.frame.size.height * 0.1, width: 1, height: self.frame.size.height * 0.7))\n        cursor.path = path.cgPath\n    }\n    \n    /// 去后台\n    @objc fileprivate func enterBack() {\n        // 移除动画\n        cursor.removeAnimation(forKey: \"kOpacityAnimation\")\n    }\n    \n    /// 回前台\n    @objc fileprivate func becomeActive() {\n        // 重新添加动画\n        cursor.add(opacityAnimation, forKey: \"kOpacityAnimation\")\n    }\n    \n    required init?(coder aDecoder: NSCoder) {\n        fatalError(\"init(coder:) has not been implemented\")\n    }\n\n}\n\n// MARK: - 供外部调用方法\nextension TDWVerifyCodeNumView {\n    /// 设置光标是否隐藏\n    ///\n    /// - Parameter isHidden: 是否隐藏\n    func setCursorStatus(_ isHidden: Bool) {\n        if isHidden {\n            cursor.removeAnimation(forKey: \"kOpacityAnimation\")\n        } else {\n            cursor.add(opacityAnimation, forKey: \"kOpacityAnimation\")\n        }\n        UIView.animate(withDuration: 0.25) {\n            self.cursor.isHidden = isHidden\n        }\n    }\n    \n    /// 验证码赋值，并修改线条颜色\n    ///\n    /// - Parameter num: 验证码\n    func setNum(num: String?) {\n        numLabel.text = num\n    }\n    \n    /// 设置底部线条是否为焦点\n    ///\n    /// - Parameter isFocus: 是否是焦点\n    func setBottomLineFocus(isFocus: Bool) {\n        if isFocus {\n            lineView.backgroundColor = UIColor.init(TDWValueRGB: 0x999999)\n        } else {\n            lineView.backgroundColor = UIColor.init(TDWValueRGB: 0xe6e6e6)\n        }\n    }\n    \n    /// 获取当前的验证码\n    ///\n    /// - Returns: 验证码\n    func getNum() -> String {\n        return numLabel.text ?? \"\"\n    }\n    \n    /// 返回验证码值\n    ///\n    /// - Returns: 验证码数值\n    func getNum() -> String? {\n        return numLabel.text\n    }\n}\n"
  },
  {
    "path": "VerifyCodeDemo/VerifyCodeView/TDWVerifyCodeTextView.swift",
    "content": "//\n//  TDWVerifyCodeTextView.swift\n//  VerifyCodeDemo\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport UIKit\n\nclass TDWVerifyCodeTextView: UITextField {\n    \n    /// 是否隐藏所有菜单\n    var isHiddenAllMenu = false\n    \n    /// 粘贴 - 会调用两次此闭包  当isTrigger = true的时候才为实际粘贴\n    var pasteClouruse: ((_ isTrigger: Bool) -> Bool)?\n    \n    /// 选择 - 会调用两次此闭包  当isTrigger = true的时候才为实际选择\n    var selectClouruse: ((_ isTrigger: Bool) -> Bool)?\n    \n    /// 选择全部 - 会调用两次此闭包  当isTrigger = true的时候才为实际选择全部\n    var selectAllClouruse: ((_ isTrigger: Bool) -> Bool)?\n    \n    /// 复制 - 会调用两次此闭包  当isTrigger = true的时候才为实际复制\n    var copyClouruse: ((_ isTrigger: Bool) -> Bool)?\n    \n    /// 剪切 - 会调用两次此闭包  当isTrigger = true的时候才为实际剪切\n    var cutClouruse: ((_ isTrigger: Bool) -> Bool)?\n    \n    /// 删除 - 会调用两次此闭包  当isTrigger = true的时候才为实际删除\n    var deleteClouruse: ((_ isTrigger: Bool) -> Bool)?\n    \n    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {\n        if isHiddenAllMenu {\n            UIMenuController.shared.isMenuVisible = false\n            return false\n        }\n        \n        \n        // 菜单是否隐藏\n        var isTrigger = false\n        \n        if let vc = sender as? UIMenuController {\n            isTrigger = vc.isMenuVisible\n        }\n        \n        switch action {\n        case #selector(UIResponderStandardEditActions.paste(_:)):\n            if let pasteClouruse = pasteClouruse {\n                return pasteClouruse(isTrigger)\n            } else {\n                return super.canPerformAction(action, withSender: sender)\n            }\n        case #selector(UIResponderStandardEditActions.select(_:)):\n            if let selectClouruse = selectClouruse {\n                return selectClouruse(isTrigger)\n            } else {\n                return super.canPerformAction(action, withSender: sender)\n            }\n        case #selector(UIResponderStandardEditActions.selectAll(_:)):\n            if let selectAllClouruse = selectAllClouruse {\n                return selectAllClouruse(isTrigger)\n            } else {\n                return super.canPerformAction(action, withSender: sender)\n            }\n        case #selector(UIResponderStandardEditActions.copy(_:)):\n            if let copyClouruse = copyClouruse {\n                return copyClouruse(isTrigger)\n            } else {\n                return super.canPerformAction(action, withSender: sender)\n            }\n        case #selector(UIResponderStandardEditActions.cut(_:)):\n            if let cutClouruse = cutClouruse {\n                return cutClouruse(isTrigger)\n            } else {\n                return super.canPerformAction(action, withSender: sender)\n            }\n        case #selector(UIResponderStandardEditActions.delete(_:)):\n            if let deleteClouruse = deleteClouruse {\n                return deleteClouruse(isTrigger)\n            } else {\n                return super.canPerformAction(action, withSender: sender)\n            }\n        default:\n            return super.canPerformAction(action, withSender: sender)\n        }\n    }\n}\n"
  },
  {
    "path": "VerifyCodeDemo/VerifyCodeView/TDWVerifyCodeView.swift",
    "content": "//\n//  TDWVerifyCodeView.swift\n//  VerifyCodeDemo\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport UIKit\nimport SnapKit\n\nclass TDWVerifyCodeView: UIView {\n\n    /// 输入值改变\n    var textValueChange: ((_ text: String) -> Void)?\n    \n    /// 输入完成\n    var inputFinish: ((_ text: String) -> Void)?\n    \n    /// 验证码输入框个数\n    var inputTextNum: Int = 6\n    \n    /// 输入框\n    lazy var textFiled: TDWVerifyCodeTextView = {\n        let textFiled = TDWVerifyCodeTextView()\n        textFiled.tintColor = .clear\n        textFiled.backgroundColor = .clear\n        textFiled.textColor = .clear\n        textFiled.delegate = self\n        textFiled.keyboardType = .decimalPad\n        textFiled.addTarget(self, action: #selector(textFiledDidChange(_:)), for: .editingChanged)\n        textFiled.addTarget(self, action: #selector(textFiledDidEnd(_:)), for: .editingDidEnd)\n        self.addSubview(textFiled)\n        return textFiled\n    }()\n    \n    /// 验证码数量\n    var codeViews: [TDWVerifyCodeNumView] = []\n    \n    /// 验证码输入框距离两边的边距\n    var padding: CGFloat = 15\n    \n    /// 每个验证码输入框间距\n    var spacing: CGFloat = 10\n    \n    /// 是否在输入中\n    var isInput = true\n    \n    override init(frame: CGRect) {\n        super.init(frame: frame)\n    }\n    \n    convenience init(inputTextNum: Int) {\n        self.init()\n        self.inputTextNum = inputTextNum\n        initSubviews()\n        NotificationCenter.default.addObserver(self, selector: #selector(keyboardShow(note:)), name: UIResponder.keyboardWillShowNotification, object: nil)\n        \n        NotificationCenter.default.addObserver(self, selector: #selector(keyboardHidden(note:)), name: UIResponder.keyboardWillHideNotification, object: nil)\n    }\n    \n    deinit {\n        NotificationCenter.default.removeObserver(self)\n    }\n    \n    \n    func initSubviews() {\n        textFiled.snp.makeConstraints { (make) in\n            make.left.equalToSuperview().offset(padding)\n            make.right.equalToSuperview().offset(-padding)\n            make.top.bottom.equalToSuperview()\n        }\n        \n        // 每个验证码框宽度\n        let itemWidth: CGFloat = (UIScreen.tdw_width() - padding * 2 - spacing * (CGFloat(inputTextNum) - 1)) / CGFloat(inputTextNum)\n        for i in 0..<inputTextNum {\n            let codeNumView = TDWVerifyCodeNumView()\n            codeNumView.isUserInteractionEnabled = false\n            self.addSubview(codeNumView)\n            codeNumView.snp.makeConstraints { (make) in\n                make.width.equalTo(itemWidth)\n                make.left.equalToSuperview().offset(padding + CGFloat(i) * (spacing + itemWidth))\n                make.top.bottom.equalToSuperview()\n            }\n            codeViews.append(codeNumView)\n            codeNumView.setCursorStatus(true)\n        }\n    }\n    \n    required init?(coder aDecoder: NSCoder) {\n        fatalError(\"init(coder:) has not been implemented\")\n    }\n    \n}\n\n// MARK: - 供外部调用方法\nextension TDWVerifyCodeView {\n    /// 清除所有输入\n    func cleanCodes() {\n        textFiled.text = \"\"\n        textFiledDidChange(textFiled)\n        allCursorHidden()\n    }\n    \n    /// 隐藏所有输入光标\n    func allCursorHidden() {\n        DispatchQueue.main.async {\n            for i in 0..<self.codeViews.count {\n                let codeView = self.codeViews[i]\n                codeView.setCursorStatus(true)\n                if codeView.getNum().count == 0 {\n                    codeView.setBottomLineFocus(isFocus: false)\n                }\n            }\n        }\n    }\n}\n\n// MARK: - 键盘显示隐藏\nextension TDWVerifyCodeView {\n    \n    @objc fileprivate func keyboardShow(note: Notification) {\n        isInput = false\n        textFiledDidChange(textFiled)\n        isInput = true\n    }\n    \n    @objc fileprivate func keyboardHidden(note: Notification) {\n        allCursorHidden()\n    }\n}\n\n// MARK: - UITextViewDelegate\nextension TDWVerifyCodeView: UITextFieldDelegate {\n    \n    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {\n        \n        // 输入框已有的值\n        var inputText = textFiled.text ?? \"\"\n        \n        if string.count == 0 { // 删除\n            if range.location != inputText.count - 1 { // 删除的不是最后一个\n                if inputText.count > 0 {\n                    // 手动删除最后一位\n                    textFiled.text?.removeLast()\n                    textFiledDidChange(textFiled)\n                }\n                return false\n            }\n        }\n        \n        if let tempRange = Range.init(range, in: inputText) {\n            // 拼接输入后的值\n            inputText = inputText.replacingCharacters(in: tempRange , with: string)\n            let meetRegx = \"[0-9]*\"         \n            let characterSet = NSPredicate.init(format: \"SELF MATCHES %@\", meetRegx)\n            if characterSet.evaluate(with: inputText) == false {\n                return false\n            }\n        }\n        \n        if inputText.count > inputTextNum {\n            \n            return false\n        }\n        \n        return true\n    }\n    \n    @objc func textFiledDidChange(_ textFiled: UITextField) {\n        let inputStr = textFiled.text ?? \"\"\n        \n        textValueChange?(inputStr)\n        \n        for i in 0..<codeViews.count {\n            let codeView = codeViews[i]\n            if i < inputStr.count {                \n                codeView.setNum(num: inputStr[String.Index(utf16Offset: i, in: inputStr)].description)\n                codeView.setBottomLineFocus(isFocus: true)\n                codeView.setCursorStatus(true)\n            } else {\n                if inputStr.count == 0, i == 0 {\n                    codeView.setCursorStatus(false)\n                    codeView.setBottomLineFocus(isFocus: true)\n                    codeView.setNum(num: nil)\n                } else {\n                    codeView.setCursorStatus(i != inputStr.count)\n                    codeView.setNum(num: nil)\n                    codeView.setBottomLineFocus(isFocus: i == inputStr.count)\n                }\n            }\n        }\n        \n        if isInput, inputStr.count >= inputTextNum {\n            // 结束编辑\n            DispatchQueue.main.async {\n                textFiled.resignFirstResponder()\n            }\n            allCursorHidden()\n        }\n        \n    }\n    \n    @objc func textFiledDidEnd(_ textFiled: UITextField) {\n        guard let inputStr = textFiled.text else { return }\n        if isInput, inputStr.count >= inputTextNum {\n            inputFinish?(inputStr)\n        }\n    }\n}\n"
  },
  {
    "path": "VerifyCodeDemo/ViewController.swift",
    "content": "//\n//  ViewController.swift\n//  VerifyCodeDemo\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport UIKit\nimport SnapKit\nclass ViewController: UIViewController {\n\n    lazy var codeView: TDWVerifyCodeView = {\n        let codeView = TDWVerifyCodeView.init(inputTextNum: 6)\n        self.view.addSubview(codeView)\n        return codeView\n    }()\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        codeView.snp.makeConstraints { (make) in\n            make.left.right.equalToSuperview()\n            make.centerY.equalToSuperview()\n            make.height.equalTo(35)\n        }\n        codeView.textFiled.becomeFirstResponder()\n        \n        // 监听验证码输入的过程\n        codeView.textValueChange = { str in\n            // 要做的事情\n        }\n        \n        // 监听验证码输入完成\n        codeView.inputFinish = { str in\n            // 要做的事情\n        }\n        \n    }\n\n    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {\n        view.endEditing(true)\n    }\n\n}\n\n"
  },
  {
    "path": "VerifyCodeDemo.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 51;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t2563206B22019629002A0DE6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2563206A22019629002A0DE6 /* AppDelegate.swift */; };\n\t\t2563206D22019629002A0DE6 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2563206C22019629002A0DE6 /* ViewController.swift */; };\n\t\t2563207022019629002A0DE6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2563206E22019629002A0DE6 /* Main.storyboard */; };\n\t\t256320722201962A002A0DE6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 256320712201962A002A0DE6 /* Assets.xcassets */; };\n\t\t256320752201962A002A0DE6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 256320732201962A002A0DE6 /* LaunchScreen.storyboard */; };\n\t\t256320802201962B002A0DE6 /* VerifyCodeDemoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2563207F2201962B002A0DE6 /* VerifyCodeDemoTests.swift */; };\n\t\t2563208B2201962B002A0DE6 /* VerifyCodeDemoUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2563208A2201962B002A0DE6 /* VerifyCodeDemoUITests.swift */; };\n\t\t256320992201963F002A0DE6 /* TDWVerifyCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 256320982201963F002A0DE6 /* TDWVerifyCodeView.swift */; };\n\t\t2563209B22019654002A0DE6 /* TDWVerifyCodeTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2563209A22019654002A0DE6 /* TDWVerifyCodeTextView.swift */; };\n\t\t2563209D2201967C002A0DE6 /* TDWVerifyCodeNumView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2563209C2201967C002A0DE6 /* TDWVerifyCodeNumView.swift */; };\n\t\t256320A12201A2D3002A0DE6 /* TDWExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 256320A02201A2D3002A0DE6 /* TDWExtensions.swift */; };\n\t\tB0A54D802B586BC26DAD041F /* Pods_VerifyCodeDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C99E989052CA85F323758B9A /* Pods_VerifyCodeDemo.framework */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t2563207C2201962B002A0DE6 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 2563205F22019629002A0DE6 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 2563206622019629002A0DE6;\n\t\t\tremoteInfo = VerifyCodeDemo;\n\t\t};\n\t\t256320872201962B002A0DE6 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 2563205F22019629002A0DE6 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 2563206622019629002A0DE6;\n\t\t\tremoteInfo = VerifyCodeDemo;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t2563206722019629002A0DE6 /* VerifyCodeDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VerifyCodeDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t2563206A22019629002A0DE6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t2563206C22019629002A0DE6 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = \"<group>\"; };\n\t\t2563206F22019629002A0DE6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t256320712201962A002A0DE6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t256320742201962A002A0DE6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t256320762201962A002A0DE6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t2563207B2201962B002A0DE6 /* VerifyCodeDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VerifyCodeDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t2563207F2201962B002A0DE6 /* VerifyCodeDemoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifyCodeDemoTests.swift; sourceTree = \"<group>\"; };\n\t\t256320812201962B002A0DE6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t256320862201962B002A0DE6 /* VerifyCodeDemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VerifyCodeDemoUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t2563208A2201962B002A0DE6 /* VerifyCodeDemoUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifyCodeDemoUITests.swift; sourceTree = \"<group>\"; };\n\t\t2563208C2201962B002A0DE6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t256320982201963F002A0DE6 /* TDWVerifyCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TDWVerifyCodeView.swift; sourceTree = \"<group>\"; };\n\t\t2563209A22019654002A0DE6 /* TDWVerifyCodeTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TDWVerifyCodeTextView.swift; sourceTree = \"<group>\"; };\n\t\t2563209C2201967C002A0DE6 /* TDWVerifyCodeNumView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TDWVerifyCodeNumView.swift; sourceTree = \"<group>\"; };\n\t\t256320A02201A2D3002A0DE6 /* TDWExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TDWExtensions.swift; sourceTree = \"<group>\"; };\n\t\t390278A2A28599A1C030DCD8 /* Pods-VerifyCodeDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-VerifyCodeDemo.release.xcconfig\"; path = \"Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tB1A9810C31697E1CA11AF7FD /* Pods-VerifyCodeDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-VerifyCodeDemo.debug.xcconfig\"; path = \"Pods/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tC99E989052CA85F323758B9A /* Pods_VerifyCodeDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VerifyCodeDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t2563206422019629002A0DE6 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB0A54D802B586BC26DAD041F /* Pods_VerifyCodeDemo.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t256320782201962B002A0DE6 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t256320832201962B002A0DE6 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t140C2D7873010CB6165F4D93 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC99E989052CA85F323758B9A /* Pods_VerifyCodeDemo.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2563205E22019629002A0DE6 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2563206922019629002A0DE6 /* VerifyCodeDemo */,\n\t\t\t\t2563207E2201962B002A0DE6 /* VerifyCodeDemoTests */,\n\t\t\t\t256320892201962B002A0DE6 /* VerifyCodeDemoUITests */,\n\t\t\t\t2563206822019629002A0DE6 /* Products */,\n\t\t\t\t36FE96B18339A1CB4BCA9B01 /* Pods */,\n\t\t\t\t140C2D7873010CB6165F4D93 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2563206822019629002A0DE6 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2563206722019629002A0DE6 /* VerifyCodeDemo.app */,\n\t\t\t\t2563207B2201962B002A0DE6 /* VerifyCodeDemoTests.xctest */,\n\t\t\t\t256320862201962B002A0DE6 /* VerifyCodeDemoUITests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2563206922019629002A0DE6 /* VerifyCodeDemo */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2563206A22019629002A0DE6 /* AppDelegate.swift */,\n\t\t\t\t2563206C22019629002A0DE6 /* ViewController.swift */,\n\t\t\t\t256AB8EB221BFC42008A61CA /* VerifyCodeView */,\n\t\t\t\t2563206E22019629002A0DE6 /* Main.storyboard */,\n\t\t\t\t256320712201962A002A0DE6 /* Assets.xcassets */,\n\t\t\t\t256320732201962A002A0DE6 /* LaunchScreen.storyboard */,\n\t\t\t\t256320762201962A002A0DE6 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = VerifyCodeDemo;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t2563207E2201962B002A0DE6 /* VerifyCodeDemoTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2563207F2201962B002A0DE6 /* VerifyCodeDemoTests.swift */,\n\t\t\t\t256320812201962B002A0DE6 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = VerifyCodeDemoTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t256320892201962B002A0DE6 /* VerifyCodeDemoUITests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2563208A2201962B002A0DE6 /* VerifyCodeDemoUITests.swift */,\n\t\t\t\t2563208C2201962B002A0DE6 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = VerifyCodeDemoUITests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t256AB8EB221BFC42008A61CA /* VerifyCodeView */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t256AB8ED221BFC6D008A61CA /* TDWExtension */,\n\t\t\t\t256320982201963F002A0DE6 /* TDWVerifyCodeView.swift */,\n\t\t\t\t2563209C2201967C002A0DE6 /* TDWVerifyCodeNumView.swift */,\n\t\t\t\t2563209A22019654002A0DE6 /* TDWVerifyCodeTextView.swift */,\n\t\t\t);\n\t\t\tpath = VerifyCodeView;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t256AB8ED221BFC6D008A61CA /* TDWExtension */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t256320A02201A2D3002A0DE6 /* TDWExtensions.swift */,\n\t\t\t);\n\t\t\tpath = TDWExtension;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t36FE96B18339A1CB4BCA9B01 /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB1A9810C31697E1CA11AF7FD /* Pods-VerifyCodeDemo.debug.xcconfig */,\n\t\t\t\t390278A2A28599A1C030DCD8 /* Pods-VerifyCodeDemo.release.xcconfig */,\n\t\t\t);\n\t\t\tname = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t2563206622019629002A0DE6 /* VerifyCodeDemo */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 2563208F2201962B002A0DE6 /* Build configuration list for PBXNativeTarget \"VerifyCodeDemo\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t6CD2A0C17DB4D7E11EBD634A /* [CP] Check Pods Manifest.lock */,\n\t\t\t\t2563206322019629002A0DE6 /* Sources */,\n\t\t\t\t2563206422019629002A0DE6 /* Frameworks */,\n\t\t\t\t2563206522019629002A0DE6 /* Resources */,\n\t\t\t\tB35EF4ED0E3B1B9D5FE1F9E9 /* [CP] Embed Pods Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = VerifyCodeDemo;\n\t\t\tproductName = VerifyCodeDemo;\n\t\t\tproductReference = 2563206722019629002A0DE6 /* VerifyCodeDemo.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\t2563207A2201962B002A0DE6 /* VerifyCodeDemoTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 256320922201962B002A0DE6 /* Build configuration list for PBXNativeTarget \"VerifyCodeDemoTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t256320772201962B002A0DE6 /* Sources */,\n\t\t\t\t256320782201962B002A0DE6 /* Frameworks */,\n\t\t\t\t256320792201962B002A0DE6 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t2563207D2201962B002A0DE6 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = VerifyCodeDemoTests;\n\t\t\tproductName = VerifyCodeDemoTests;\n\t\t\tproductReference = 2563207B2201962B002A0DE6 /* VerifyCodeDemoTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t256320852201962B002A0DE6 /* VerifyCodeDemoUITests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 256320952201962B002A0DE6 /* Build configuration list for PBXNativeTarget \"VerifyCodeDemoUITests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t256320822201962B002A0DE6 /* Sources */,\n\t\t\t\t256320832201962B002A0DE6 /* Frameworks */,\n\t\t\t\t256320842201962B002A0DE6 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t256320882201962B002A0DE6 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = VerifyCodeDemoUITests;\n\t\t\tproductName = VerifyCodeDemoUITests;\n\t\t\tproductReference = 256320862201962B002A0DE6 /* VerifyCodeDemoUITests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.ui-testing\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t2563205F22019629002A0DE6 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1010;\n\t\t\t\tLastUpgradeCheck = 1010;\n\t\t\t\tORGANIZATIONNAME = tuandai;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t2563206622019629002A0DE6 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.1;\n\t\t\t\t\t};\n\t\t\t\t\t2563207A2201962B002A0DE6 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.1;\n\t\t\t\t\t\tTestTargetID = 2563206622019629002A0DE6;\n\t\t\t\t\t};\n\t\t\t\t\t256320852201962B002A0DE6 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.1;\n\t\t\t\t\t\tTestTargetID = 2563206622019629002A0DE6;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 2563206222019629002A0DE6 /* Build configuration list for PBXProject \"VerifyCodeDemo\" */;\n\t\t\tcompatibilityVersion = \"Xcode 9.3\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 2563205E22019629002A0DE6;\n\t\t\tproductRefGroup = 2563206822019629002A0DE6 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t2563206622019629002A0DE6 /* VerifyCodeDemo */,\n\t\t\t\t2563207A2201962B002A0DE6 /* VerifyCodeDemoTests */,\n\t\t\t\t256320852201962B002A0DE6 /* VerifyCodeDemoUITests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t2563206522019629002A0DE6 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t256320752201962A002A0DE6 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t256320722201962A002A0DE6 /* Assets.xcassets in Resources */,\n\t\t\t\t2563207022019629002A0DE6 /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t256320792201962B002A0DE6 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t256320842201962B002A0DE6 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t6CD2A0C17DB4D7E11EBD634A /* [CP] Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t\t\"${PODS_PODFILE_DIR_PATH}/Podfile.lock\",\n\t\t\t\t\"${PODS_ROOT}/Manifest.lock\",\n\t\t\t);\n\t\t\tname = \"[CP] Check Pods Manifest.lock\";\n\t\t\toutputPaths = (\n\t\t\t\t\"$(DERIVED_FILE_DIR)/Pods-VerifyCodeDemo-checkManifestLockResult.txt\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_PODFILE_DIR_PATH}/Podfile.lock\\\" \\\"${PODS_ROOT}/Manifest.lock\\\" > /dev/null\\nif [ $? != 0 ] ; then\\n    # print error to STDERR\\n    echo \\\"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\\" >&2\\n    exit 1\\nfi\\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\\necho \\\"SUCCESS\\\" > \\\"${SCRIPT_OUTPUT_FILE_0}\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\tB35EF4ED0E3B1B9D5FE1F9E9 /* [CP] Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t\t\"${PODS_ROOT}/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist\",\n\t\t\t);\n\t\t\tname = \"[CP] Embed Pods Frameworks\";\n\t\t\toutputFileListPaths = (\n\t\t\t\t\"${PODS_ROOT}/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist\",\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${PODS_ROOT}/Target Support Files/Pods-VerifyCodeDemo/Pods-VerifyCodeDemo-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t2563206322019629002A0DE6 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t2563206D22019629002A0DE6 /* ViewController.swift in Sources */,\n\t\t\t\t2563209B22019654002A0DE6 /* TDWVerifyCodeTextView.swift in Sources */,\n\t\t\t\t2563209D2201967C002A0DE6 /* TDWVerifyCodeNumView.swift in Sources */,\n\t\t\t\t2563206B22019629002A0DE6 /* AppDelegate.swift in Sources */,\n\t\t\t\t256320A12201A2D3002A0DE6 /* TDWExtensions.swift in Sources */,\n\t\t\t\t256320992201963F002A0DE6 /* TDWVerifyCodeView.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t256320772201962B002A0DE6 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t256320802201962B002A0DE6 /* VerifyCodeDemoTests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t256320822201962B002A0DE6 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t2563208B2201962B002A0DE6 /* VerifyCodeDemoUITests.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t2563207D2201962B002A0DE6 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 2563206622019629002A0DE6 /* VerifyCodeDemo */;\n\t\t\ttargetProxy = 2563207C2201962B002A0DE6 /* PBXContainerItemProxy */;\n\t\t};\n\t\t256320882201962B002A0DE6 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 2563206622019629002A0DE6 /* VerifyCodeDemo */;\n\t\t\ttargetProxy = 256320872201962B002A0DE6 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t2563206E22019629002A0DE6 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t2563206F22019629002A0DE6 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t256320732201962A002A0DE6 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t256320742201962A002A0DE6 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t2563208D2201962B002A0DE6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t2563208E2201962B002A0DE6 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t256320902201962B002A0DE6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = B1A9810C31697E1CA11AF7FD /* Pods-VerifyCodeDemo.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Manual;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tINFOPLIST_FILE = VerifyCodeDemo/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.qqq.sss;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t256320912201962B002A0DE6 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 390278A2A28599A1C030DCD8 /* Pods-VerifyCodeDemo.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Manual;\n\t\t\t\tDEVELOPMENT_TEAM = \"\";\n\t\t\t\tINFOPLIST_FILE = VerifyCodeDemo/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.qqq.sss;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPROVISIONING_PROFILE_SPECIFIER = \"\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t256320932201962B002A0DE6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = VerifyCodeDemoTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = jf.VerifyCodeDemoTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/VerifyCodeDemo.app/VerifyCodeDemo\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t256320942201962B002A0DE6 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = VerifyCodeDemoTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = jf.VerifyCodeDemoTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/VerifyCodeDemo.app/VerifyCodeDemo\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t256320962201962B002A0DE6 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = VerifyCodeDemoUITests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = jf.VerifyCodeDemoUITests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_TARGET_NAME = VerifyCodeDemo;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t256320972201962B002A0DE6 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tINFOPLIST_FILE = VerifyCodeDemoUITests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = jf.VerifyCodeDemoUITests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tTEST_TARGET_NAME = VerifyCodeDemo;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t2563206222019629002A0DE6 /* Build configuration list for PBXProject \"VerifyCodeDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t2563208D2201962B002A0DE6 /* Debug */,\n\t\t\t\t2563208E2201962B002A0DE6 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t2563208F2201962B002A0DE6 /* Build configuration list for PBXNativeTarget \"VerifyCodeDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t256320902201962B002A0DE6 /* Debug */,\n\t\t\t\t256320912201962B002A0DE6 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t256320922201962B002A0DE6 /* Build configuration list for PBXNativeTarget \"VerifyCodeDemoTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t256320932201962B002A0DE6 /* Debug */,\n\t\t\t\t256320942201962B002A0DE6 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t256320952201962B002A0DE6 /* Build configuration list for PBXNativeTarget \"VerifyCodeDemoUITests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t256320962201962B002A0DE6 /* Debug */,\n\t\t\t\t256320972201962B002A0DE6 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 2563205F22019629002A0DE6 /* Project object */;\n}\n"
  },
  {
    "path": "VerifyCodeDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "VerifyCodeDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "VerifyCodeDemo.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:VerifyCodeDemo.xcodeproj\">\n   </FileRef>\n   <FileRef\n      location = \"group:Pods/Pods.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "VerifyCodeDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "VerifyCodeDemoTests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "VerifyCodeDemoTests/VerifyCodeDemoTests.swift",
    "content": "//\n//  VerifyCodeDemoTests.swift\n//  VerifyCodeDemoTests\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport XCTest\n@testable import VerifyCodeDemo\n\nclass VerifyCodeDemoTests: XCTestCase {\n\n    override func setUp() {\n        // Put setup code here. This method is called before the invocation of each test method in the class.\n    }\n\n    override func tearDown() {\n        // Put teardown code here. This method is called after the invocation of each test method in the class.\n    }\n\n    func testExample() {\n        // This is an example of a functional test case.\n        // Use XCTAssert and related functions to verify your tests produce the correct results.\n    }\n\n    func testPerformanceExample() {\n        // This is an example of a performance test case.\n        self.measure {\n            // Put the code you want to measure the time of here.\n        }\n    }\n\n}\n"
  },
  {
    "path": "VerifyCodeDemoUITests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "VerifyCodeDemoUITests/VerifyCodeDemoUITests.swift",
    "content": "//\n//  VerifyCodeDemoUITests.swift\n//  VerifyCodeDemoUITests\n//\n//  Created by tuandai on 2019/1/30.\n//  Copyright © 2019 tuandai. All rights reserved.\n//\n\nimport XCTest\n\nclass VerifyCodeDemoUITests: XCTestCase {\n\n    override func setUp() {\n        // Put setup code here. This method is called before the invocation of each test method in the class.\n\n        // In UI tests it is usually best to stop immediately when a failure occurs.\n        continueAfterFailure = false\n\n        // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.\n        XCUIApplication().launch()\n\n        // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.\n    }\n\n    override func tearDown() {\n        // Put teardown code here. This method is called after the invocation of each test method in the class.\n    }\n\n    func testExample() {\n        // Use recording to get started writing UI tests.\n        // Use XCTAssert and related functions to verify your tests produce the correct results.\n    }\n\n}\n"
  },
  {
    "path": "VerifyCodeSwift.podspec",
    "content": "Pod::Spec.new do |spec|\n\n  spec.name         = \"VerifyCodeSwift\"\n  spec.version      = \"3.0.1\"\n  spec.summary      = \"iOS Custom captcha\"\n  spec.swift_versions = \"5.0\"\n\n  spec.description  = <<-DESC\n                    iOS Custom captcha, Support for swift.\n                   DESC\n\n  spec.homepage     = \"https://github.com/zhongjianfeipqy/VerificationCode\"\n  spec.screenshots  = \"https://upload-images.jianshu.io/upload_images/2094754-768de1c89184e230.gif?imageMogr2/auto-orient/strip\"\n\n  spec.license      = \"MIT\"\n\n  spec.author             = { \"JF Z\" => \"378789308@qq.com\"}\n\n  spec.social_media_url   = \"https://www.jianshu.com/u/2a97371d263b\"\n\n  spec.platform     = :ios, \"9.0\"\n\n  #  When using multiple platforms\n  # spec.ios.deployment_target = \"5.0\"\n  # spec.osx.deployment_target = \"10.7\"\n  # spec.watchos.deployment_target = \"2.0\"\n  # spec.tvos.deployment_target = \"9.0\"\n\n  spec.source       = { :git => \"https://github.com/zhongjianfeipqy/VerificationCode.git\", :tag => \"#{spec.version}\" }\n\n  # spec.source_files  =  \"VerifyCodeDemo/VerifyCodeView/**/*\"\n  spec.source_files  =  \"VerifyCodeDemo/VerifyCodeView/*\"\n\n  # 建立TDWExtension文件夹，并且设置文件夹下的源文件\n  spec.subspec 'TDWExtension' do |sub|\n    sub.source_files  = \"VerifyCodeDemo/VerifyCodeView/TDWExtension/*\"\n  end\n\n  spec.frameworks = \"UIKit\", \"Foundation\"\n\n  # spec.library   = \"iconv\"\n  # spec.libraries = \"iconv\", \"xml2\"\n\n\n  spec.requires_arc = true\n\n  spec.dependency 'SnapKit'\n\nend\n"
  }
]