// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		1C1ADFBD1AE50D78007A73E3 /* TextSelectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1ADFBC1AE50D78007A73E3 /* TextSelectionViewController.swift */; };
		1C1ADFBF1AE50D9B007A73E3 /* ManualToolbarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1ADFBE1AE50D9B007A73E3 /* ManualToolbarViewController.swift */; };
		1C1ADFC11AE50DAF007A73E3 /* BottomBlankSpaceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1ADFC01AE50DAF007A73E3 /* BottomBlankSpaceViewController.swift */; };
		1C1ADFC31AE50E28007A73E3 /* CollectionViewDemoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1ADFC21AE50E28007A73E3 /* CollectionViewDemoController.swift */; };
		1C1ADFC51AE50E66007A73E3 /* TableViewInContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1ADFC41AE50E66007A73E3 /* TableViewInContainerViewController.swift */; };
		1C1ADFC91AE51FB5007A73E3 /* ExampleTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1ADFC81AE51FB5007A73E3 /* ExampleTableViewController.swift */; };
		1C22700F1AE68EEE003A9D15 /* CustomSubclassView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C22700E1AE68EEE003A9D15 /* CustomSubclassView.m */; };
		1C2270121AE69224003A9D15 /* CustomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C2270111AE69224003A9D15 /* CustomViewController.m */; };
		53CF2B7F1903D02200E3FDEA /* NavigationBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53CF2B7E1903D02200E3FDEA /* NavigationBarViewController.m */; };
		9D03F06F18BDC19400F4970D /* SpecialCaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D03F06E18BDC19400F4970D /* SpecialCaseViewController.m */; };
		9D0BB87418BB232B00667349 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63BA11781FAB1008D3B64 /* Foundation.framework */; };
		9D0BB87A18BB232B00667349 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9D0BB87818BB232B00667349 /* InfoPlist.strings */; };
		9D8E5DAC18BC8E1D005695CF /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D8E5DAB18BC8E1D005695CF /* ViewController.m */; };
		9D9A0FC318C9DB5700585D3F /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D9A0FC218C9DB5700585D3F /* Social.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
		9DFD564D18BCAA1F001007A2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63B9F1781FAB1008D3B64 /* UIKit.framework */; };
		9DFD564E18BCAA26001007A2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63BA31781FAB1008D3B64 /* CoreGraphics.framework */; };
		B53A8A2D1A4C2A3900951878 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = B53A8A2B1A4C2A3900951878 /* iTunesArtwork */; };
		B53A8A2E1A4C2A3900951878 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = B53A8A2B1A4C2A3900951878 /* iTunesArtwork */; };
		B53A8A2F1A4C2A3900951878 /* iTunesArtwork@2x in Resources */ = {isa = PBXBuildFile; fileRef = B53A8A2C1A4C2A3900951878 /* iTunesArtwork@2x */; };
		B53A8A301A4C2A3900951878 /* iTunesArtwork@2x in Resources */ = {isa = PBXBuildFile; fileRef = B53A8A2C1A4C2A3900951878 /* iTunesArtwork@2x */; };
		B53A8A321A4C2D7A00951878 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B53A8A311A4C2D7A00951878 /* icon.png */; };
		B53A8A331A4C2D7A00951878 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B53A8A311A4C2D7A00951878 /* icon.png */; };
		B5C98E0A1A4C28FD00AD5C11 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C0ACB10019CF104E0057B571 /* Images.xcassets */; };
		C02790341A01404000FCB517 /* CollectionViewDemoController.m in Sources */ = {isa = PBXBuildFile; fileRef = C02790331A01404000FCB517 /* CollectionViewDemoController.m */; };
		C056E1F41AE41B0100F09472 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C056E1F21AE41B0100F09472 /* AppDelegate.swift */; };
		C056E1F51AE41B0100F09472 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C056E1F31AE41B0100F09472 /* ViewController.swift */; };
		C056E1F61AE434DF00F09472 /* IQDropDownTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = C05DD9FE1A591D2D00A6ECD4 /* IQDropDownTextField.m */; };
		C05C59401A4C7F0E0007BD8F /* IQKeyboardManagerScreenshot.png in Resources */ = {isa = PBXBuildFile; fileRef = C0032C8819D82253004E2A1C /* IQKeyboardManagerScreenshot.png */; };
		C05C59411A4C7F110007BD8F /* IQKeyboardManagerScreenshot.png in Resources */ = {isa = PBXBuildFile; fileRef = C0032C8819D82253004E2A1C /* IQKeyboardManagerScreenshot.png */; };
		C05DD9FF1A591D2D00A6ECD4 /* IQDropDownTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = C05DD9FE1A591D2D00A6ECD4 /* IQDropDownTextField.m */; };
		C06579BD19D6024800DAA3EA /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579BC19D6024800DAA3EA /* SettingsViewController.m */; };
		C06579C019D6028100DAA3EA /* ExampleTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579BF19D6028100DAA3EA /* ExampleTableViewController.m */; };
		C06579C419D60ACB00DAA3EA /* SwitchTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579C319D60ACB00DAA3EA /* SwitchTableViewCell.m */; };
		C06579C819D60AF600DAA3EA /* StepperTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579C719D60AF600DAA3EA /* StepperTableViewCell.m */; };
		C06579CB19D60B0400DAA3EA /* NavigationTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579CA19D60B0400DAA3EA /* NavigationTableViewCell.m */; };
		C06579CE19D61BF000DAA3EA /* OptionTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579CD19D61BF000DAA3EA /* OptionTableViewCell.m */; };
		C06579D119D61C0B00DAA3EA /* OptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C06579D019D61C0B00DAA3EA /* OptionsViewController.m */; };
		C07E20B51858FF54001699A8 /* ScrollViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C07E20B41858FF54001699A8 /* ScrollViewController.m */; };
		C07E20BE18590085001699A8 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C07E20BA18590085001699A8 /* WebViewController.m */; };
		C07E20C3185900BD001699A8 /* TextFieldViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C07E20C1185900BD001699A8 /* TextFieldViewController.m */; };
		C080A59318740EFF0088441B /* TextViewSpecialCaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C080A59118740EFF0088441B /* TextViewSpecialCaseViewController.m */; };
		C08549AF19FAA91E00973573 /* IQNSArray+Sort.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499019FAA91E00973573 /* IQNSArray+Sort.h */; };
		C08549B019FAA91E00973573 /* IQNSArray+Sort.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499119FAA91E00973573 /* IQNSArray+Sort.m */; };
		C08549B119FAA91E00973573 /* IQNSArray+Sort.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499119FAA91E00973573 /* IQNSArray+Sort.m */; };
		C08549B219FAA91E00973573 /* IQUIView+Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499219FAA91E00973573 /* IQUIView+Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549B319FAA91E00973573 /* IQUIView+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499319FAA91E00973573 /* IQUIView+Hierarchy.m */; };
		C08549B419FAA91E00973573 /* IQUIView+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499319FAA91E00973573 /* IQUIView+Hierarchy.m */; };
		C08549B519FAA91E00973573 /* IQUIWindow+Hierarchy.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499419FAA91E00973573 /* IQUIWindow+Hierarchy.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549B619FAA91E00973573 /* IQUIWindow+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499519FAA91E00973573 /* IQUIWindow+Hierarchy.m */; };
		C08549B719FAA91E00973573 /* IQUIWindow+Hierarchy.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499519FAA91E00973573 /* IQUIWindow+Hierarchy.m */; };
		C08549B819FAA91E00973573 /* IQKeyboardManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499719FAA91E00973573 /* IQKeyboardManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549B919FAA91E00973573 /* IQKeyboardManagerConstantsInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499819FAA91E00973573 /* IQKeyboardManagerConstantsInternal.h */; };
		C08549BA19FAA91E00973573 /* IQKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499919FAA91E00973573 /* IQKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549BB19FAA91E00973573 /* IQKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499A19FAA91E00973573 /* IQKeyboardManager.m */; };
		C08549BC19FAA91E00973573 /* IQKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499A19FAA91E00973573 /* IQKeyboardManager.m */; };
		C08549BD19FAA91E00973573 /* IQKeyboardReturnKeyHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499B19FAA91E00973573 /* IQKeyboardReturnKeyHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549BE19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499C19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m */; };
		C08549BF19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499C19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m */; };
		C08549C019FAA91E00973573 /* IQSegmentedNextPrevious.h in Headers */ = {isa = PBXBuildFile; fileRef = C085499E19FAA91E00973573 /* IQSegmentedNextPrevious.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549C119FAA91E00973573 /* IQSegmentedNextPrevious.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499F19FAA91E00973573 /* IQSegmentedNextPrevious.m */; };
		C08549C219FAA91E00973573 /* IQSegmentedNextPrevious.m in Sources */ = {isa = PBXBuildFile; fileRef = C085499F19FAA91E00973573 /* IQSegmentedNextPrevious.m */; };
		C08549C319FAA91E00973573 /* IQTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = C08549A119FAA91E00973573 /* IQTextView.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549C419FAA91E00973573 /* IQTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A219FAA91E00973573 /* IQTextView.m */; };
		C08549C519FAA91E00973573 /* IQTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A219FAA91E00973573 /* IQTextView.m */; };
		C08549C619FAA91E00973573 /* IQBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C08549A419FAA91E00973573 /* IQBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549C719FAA91E00973573 /* IQBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A519FAA91E00973573 /* IQBarButtonItem.m */; };
		C08549C819FAA91E00973573 /* IQBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A519FAA91E00973573 /* IQBarButtonItem.m */; };
		C08549C919FAA91E00973573 /* IQTitleBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C08549A619FAA91E00973573 /* IQTitleBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549CA19FAA91E00973573 /* IQTitleBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A719FAA91E00973573 /* IQTitleBarButtonItem.m */; };
		C08549CB19FAA91E00973573 /* IQTitleBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A719FAA91E00973573 /* IQTitleBarButtonItem.m */; };
		C08549CC19FAA91E00973573 /* IQToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = C08549A819FAA91E00973573 /* IQToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549CD19FAA91E00973573 /* IQToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A919FAA91E00973573 /* IQToolbar.m */; };
		C08549CE19FAA91E00973573 /* IQToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549A919FAA91E00973573 /* IQToolbar.m */; };
		C08549CF19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = C08549AA19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549D019FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549AB19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m */; };
		C08549D119FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = C08549AB19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m */; };
		C08549D219FAA91E00973573 /* KeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C08549AC19FAA91E00973573 /* KeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
		C08549D319FAA91E00973573 /* IQKeyboardManager.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C08549AE19FAA91E00973573 /* IQKeyboardManager.bundle */; };
		C08549D419FAA91E00973573 /* IQKeyboardManager.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C08549AE19FAA91E00973573 /* IQKeyboardManager.bundle */; };
		C08A654D19DB18C700D255E2 /* ManualToolbarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C08A654C19DB18C700D255E2 /* ManualToolbarViewController.m */; };
		C08B91BB19D7558800AF16E7 /* TextSelectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C08B91B819D7558800AF16E7 /* TextSelectionViewController.m */; };
		C08CE0BD1A5C5EAC00FD9273 /* Swift Pending.rtf in Resources */ = {isa = PBXBuildFile; fileRef = C08CE0BC1A5C5EAC00FD9273 /* Swift Pending.rtf */; };
		C09576A819D811E00081DEB9 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C09576A719D811E00081DEB9 /* Default-568h@2x.png */; };
		C0A392151B208F8300783FDD /* IQUITextFieldView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = C0A392121B208F8300783FDD /* IQUITextFieldView+Additions.m */; };
		C0A392161B208F8300783FDD /* IQUIViewController+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = C0A392141B208F8300783FDD /* IQUIViewController+Additions.m */; };
		C0AB9307195F57BB00447049 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9DC4CE2E18DAF77300DB2CB0 /* Main.storyboard */; };
		C0ACB10119CF104E0057B571 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C0ACB10019CF104E0057B571 /* Images.xcassets */; };
		C0ACB10419CF104F0057B571 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0ACB10219CF104F0057B571 /* LaunchScreen.xib */; };
		C0B63BA01781FAB1008D3B64 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63B9F1781FAB1008D3B64 /* UIKit.framework */; };
		C0B63BA21781FAB1008D3B64 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63BA11781FAB1008D3B64 /* Foundation.framework */; };
		C0B63BA41781FAB1008D3B64 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63BA31781FAB1008D3B64 /* CoreGraphics.framework */; };
		C0B63BAC1781FAB1008D3B64 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C0B63BAB1781FAB1008D3B64 /* main.m */; };
		C0B63BB01781FAB1008D3B64 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C0B63BAF1781FAB1008D3B64 /* AppDelegate.m */; };
		C0DDEB6119FCD56300FAB29F /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB4E19FCD56300FAB29F /* IQNSArray+Sort.swift */; };
		C0DDEB6219FCD56300FAB29F /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB4F19FCD56300FAB29F /* IQUIView+Hierarchy.swift */; };
		C0DDEB6319FCD56300FAB29F /* IQUIWindow+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5019FCD56300FAB29F /* IQUIWindow+Hierarchy.swift */; };
		C0DDEB6419FCD56300FAB29F /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5219FCD56300FAB29F /* IQKeyboardManagerConstants.swift */; };
		C0DDEB6519FCD56300FAB29F /* IQKeyboardManagerConstantsInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5319FCD56300FAB29F /* IQKeyboardManagerConstantsInternal.swift */; };
		C0DDEB6619FCD56300FAB29F /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5419FCD56300FAB29F /* IQKeyboardManager.swift */; };
		C0DDEB6719FCD56300FAB29F /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5519FCD56300FAB29F /* IQKeyboardReturnKeyHandler.swift */; };
		C0DDEB6919FCD56300FAB29F /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5919FCD56300FAB29F /* IQTextView.swift */; };
		C0DDEB6A19FCD56300FAB29F /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5B19FCD56300FAB29F /* IQBarButtonItem.swift */; };
		C0DDEB6B19FCD56300FAB29F /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5C19FCD56300FAB29F /* IQTitleBarButtonItem.swift */; };
		C0DDEB6C19FCD56300FAB29F /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5D19FCD56300FAB29F /* IQToolbar.swift */; };
		C0DDEB6D19FCD56300FAB29F /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DDEB5E19FCD56300FAB29F /* IQUIView+IQKeyboardToolbar.swift */; };
		C0DDEB6E19FCD56300FAB29F /* IQKeyboardManager.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C0DDEB6019FCD56300FAB29F /* IQKeyboardManager.bundle */; };
		C0EC59D219D0C0B100997FFE /* TextFieldViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EC59D119D0C0B100997FFE /* TextFieldViewController.swift */; };
		C0EC59D419D0C0C600997FFE /* ScrollViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EC59D319D0C0C600997FFE /* ScrollViewController.swift */; };
		C0EC59D619D0C0D200997FFE /* WebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EC59D519D0C0D200997FFE /* WebViewController.swift */; };
		C0EC59D819D0C0DF00997FFE /* TextViewSpecialCaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EC59D719D0C0DF00997FFE /* TextViewSpecialCaseViewController.swift */; };
		C0EC59DA19D0C0EE00997FFE /* NavigationBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EC59D919D0C0EE00997FFE /* NavigationBarViewController.swift */; };
		C0EC59DC19D0C0FB00997FFE /* SpecialCaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EC59DB19D0C0FB00997FFE /* SpecialCaseViewController.swift */; };
		C0EC59DE19D0C11200997FFE /* MainSwift.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C0EC59DD19D0C11200997FFE /* MainSwift.storyboard */; };
		C0F1193A19EEDCD500708D17 /* BottomBlankSpaceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F1193919EEDCD500708D17 /* BottomBlankSpaceViewController.m */; };
		DDAA29F21A320057002C0ED8 /* TableViewInContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DDAA29F11A320057002C0ED8 /* TableViewInContainerViewController.m */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		1C1ADFBC1AE50D78007A73E3 /* TextSelectionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TextSelectionViewController.swift; path = "IQKeyboardManager Swift/TextSelectionViewController.swift"; sourceTree = "<group>"; };
		1C1ADFBE1AE50D9B007A73E3 /* ManualToolbarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ManualToolbarViewController.swift; path = "IQKeyboardManager Swift/ManualToolbarViewController.swift"; sourceTree = "<group>"; };
		1C1ADFC01AE50DAF007A73E3 /* BottomBlankSpaceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BottomBlankSpaceViewController.swift; path = "IQKeyboardManager Swift/BottomBlankSpaceViewController.swift"; sourceTree = "<group>"; };
		1C1ADFC21AE50E28007A73E3 /* CollectionViewDemoController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CollectionViewDemoController.swift; path = "IQKeyboardManager Swift/CollectionViewDemoController.swift"; sourceTree = "<group>"; };
		1C1ADFC41AE50E66007A73E3 /* TableViewInContainerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TableViewInContainerViewController.swift; path = "IQKeyboardManager Swift/TableViewInContainerViewController.swift"; sourceTree = "<group>"; };
		1C1ADFC81AE51FB5007A73E3 /* ExampleTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ExampleTableViewController.swift; path = "IQKeyboardManager Swift/ExampleTableViewController.swift"; sourceTree = "<group>"; };
		1C22700D1AE68EEE003A9D15 /* CustomSubclassView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomSubclassView.h; sourceTree = "<group>"; };
		1C22700E1AE68EEE003A9D15 /* CustomSubclassView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomSubclassView.m; sourceTree = "<group>"; };
		1C2270101AE69224003A9D15 /* CustomViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomViewController.h; sourceTree = "<group>"; };
		1C2270111AE69224003A9D15 /* CustomViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomViewController.m; sourceTree = "<group>"; };
		53CF2B7D1903D02200E3FDEA /* NavigationBarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationBarViewController.h; sourceTree = "<group>"; };
		53CF2B7E1903D02200E3FDEA /* NavigationBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavigationBarViewController.m; sourceTree = "<group>"; };
		9D03F06D18BDC19400F4970D /* SpecialCaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpecialCaseViewController.h; sourceTree = "<group>"; };
		9D03F06E18BDC19400F4970D /* SpecialCaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpecialCaseViewController.m; sourceTree = "<group>"; };
		9D0BB82F18BB1AE100667349 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		9D0BB83018BB1AE100667349 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		9D0BB83118BB1AE100667349 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		9D0BB84118BB1AE100667349 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
		9D0BB87318BB232B00667349 /* KeyboardManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework.static; includeInIndex = 0; path = KeyboardManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		9D0BB87718BB232B00667349 /* KeyboardManager-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "KeyboardManager-Info.plist"; sourceTree = "<group>"; };
		9D0BB87918BB232B00667349 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		9D1F46981977B06C0057B4A2 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
		9D8E5DAA18BC8E1D005695CF /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
		9D8E5DAB18BC8E1D005695CF /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
		9D9A0FC218C9DB5700585D3F /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
		9D9A0FC418C9DB5F00585D3F /* Twitter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Twitter.framework; path = System/Library/Frameworks/Twitter.framework; sourceTree = SDKROOT; };
		9DC4CE2218DAE03800DB2CB0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		9DC4CE2418DAE03800DB2CB0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		9DC4CE3118DAF77700DB2CB0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		9DFD56AB18BCB281001007A2 /* IQKeyboardManager-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "IQKeyboardManager-Info.plist"; sourceTree = "<group>"; };
		B53A8A2B1A4C2A3900951878 /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = "<group>"; };
		B53A8A2C1A4C2A3900951878 /* iTunesArtwork@2x */ = {isa = PBXFileReference; lastKnownFileType = file; path = "iTunesArtwork@2x"; sourceTree = "<group>"; };
		B53A8A311A4C2D7A00951878 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
		C0032C8819D82253004E2A1C /* IQKeyboardManagerScreenshot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = IQKeyboardManagerScreenshot.png; path = Screenshot/IQKeyboardManagerScreenshot.png; sourceTree = "<group>"; };
		C00EAA6B1858D5A500968DE2 /* ScrollViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollViewController.h; sourceTree = "<group>"; };
		C02790321A01404000FCB517 /* CollectionViewDemoController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionViewDemoController.h; sourceTree = "<group>"; };
		C02790331A01404000FCB517 /* CollectionViewDemoController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionViewDemoController.m; sourceTree = "<group>"; };
		C056E1F21AE41B0100F09472 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = "IQKeyboardManager Swift/AppDelegate.swift"; sourceTree = "<group>"; };
		C056E1F31AE41B0100F09472 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = "IQKeyboardManager Swift/ViewController.swift"; sourceTree = "<group>"; };
		C056E1F71AE4371A00F09472 /* IQKeyboardManger-Swift-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "IQKeyboardManger-Swift-Bridging-Header.h"; path = "IQKeyboardManager Swift/IQKeyboardManger-Swift-Bridging-Header.h"; sourceTree = "<group>"; };
		C05DD9FD1A591D2D00A6ECD4 /* IQDropDownTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = IQDropDownTextField.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C05DD9FE1A591D2D00A6ECD4 /* IQDropDownTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQDropDownTextField.m; sourceTree = "<group>"; };
		C06579BB19D6024800DAA3EA /* SettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = "<group>"; };
		C06579BC19D6024800DAA3EA /* SettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = SettingsViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
		C06579BE19D6028100DAA3EA /* ExampleTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExampleTableViewController.h; sourceTree = "<group>"; };
		C06579BF19D6028100DAA3EA /* ExampleTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExampleTableViewController.m; sourceTree = "<group>"; };
		C06579C219D60ACB00DAA3EA /* SwitchTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwitchTableViewCell.h; sourceTree = "<group>"; };
		C06579C319D60ACB00DAA3EA /* SwitchTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SwitchTableViewCell.m; sourceTree = "<group>"; };
		C06579C619D60AF600DAA3EA /* StepperTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StepperTableViewCell.h; sourceTree = "<group>"; };
		C06579C719D60AF600DAA3EA /* StepperTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StepperTableViewCell.m; sourceTree = "<group>"; };
		C06579C919D60B0400DAA3EA /* NavigationTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationTableViewCell.h; sourceTree = "<group>"; };
		C06579CA19D60B0400DAA3EA /* NavigationTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavigationTableViewCell.m; sourceTree = "<group>"; };
		C06579CC19D61BF000DAA3EA /* OptionTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionTableViewCell.h; sourceTree = "<group>"; };
		C06579CD19D61BF000DAA3EA /* OptionTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OptionTableViewCell.m; sourceTree = "<group>"; };
		C06579CF19D61C0B00DAA3EA /* OptionsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsViewController.h; sourceTree = "<group>"; };
		C06579D019D61C0B00DAA3EA /* OptionsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OptionsViewController.m; sourceTree = "<group>"; };
		C07E20B41858FF54001699A8 /* ScrollViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScrollViewController.m; sourceTree = "<group>"; };
		C07E20B918590085001699A8 /* WebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewController.h; sourceTree = "<group>"; };
		C07E20BA18590085001699A8 /* WebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebViewController.m; sourceTree = "<group>"; };
		C07E20C0185900BD001699A8 /* TextFieldViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextFieldViewController.h; sourceTree = "<group>"; };
		C07E20C1185900BD001699A8 /* TextFieldViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextFieldViewController.m; sourceTree = "<group>"; };
		C080A59018740EFF0088441B /* TextViewSpecialCaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextViewSpecialCaseViewController.h; sourceTree = "<group>"; };
		C080A59118740EFF0088441B /* TextViewSpecialCaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextViewSpecialCaseViewController.m; sourceTree = "<group>"; };
		C085499019FAA91E00973573 /* IQNSArray+Sort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "IQNSArray+Sort.h"; sourceTree = "<group>"; };
		C085499119FAA91E00973573 /* IQNSArray+Sort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "IQNSArray+Sort.m"; sourceTree = "<group>"; };
		C085499219FAA91E00973573 /* IQUIView+Hierarchy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = "IQUIView+Hierarchy.h"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C085499319FAA91E00973573 /* IQUIView+Hierarchy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "IQUIView+Hierarchy.m"; sourceTree = "<group>"; };
		C085499419FAA91E00973573 /* IQUIWindow+Hierarchy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = "IQUIWindow+Hierarchy.h"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C085499519FAA91E00973573 /* IQUIWindow+Hierarchy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "IQUIWindow+Hierarchy.m"; sourceTree = "<group>"; };
		C085499719FAA91E00973573 /* IQKeyboardManagerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = IQKeyboardManagerConstants.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C085499819FAA91E00973573 /* IQKeyboardManagerConstantsInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = IQKeyboardManagerConstantsInternal.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C085499919FAA91E00973573 /* IQKeyboardManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = IQKeyboardManager.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C085499A19FAA91E00973573 /* IQKeyboardManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = IQKeyboardManager.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
		C085499B19FAA91E00973573 /* IQKeyboardReturnKeyHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = IQKeyboardReturnKeyHandler.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C085499C19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQKeyboardReturnKeyHandler.m; sourceTree = "<group>"; };
		C085499E19FAA91E00973573 /* IQSegmentedNextPrevious.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IQSegmentedNextPrevious.h; sourceTree = "<group>"; };
		C085499F19FAA91E00973573 /* IQSegmentedNextPrevious.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQSegmentedNextPrevious.m; sourceTree = "<group>"; };
		C08549A119FAA91E00973573 /* IQTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IQTextView.h; sourceTree = "<group>"; };
		C08549A219FAA91E00973573 /* IQTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQTextView.m; sourceTree = "<group>"; };
		C08549A419FAA91E00973573 /* IQBarButtonItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = IQBarButtonItem.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C08549A519FAA91E00973573 /* IQBarButtonItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQBarButtonItem.m; sourceTree = "<group>"; };
		C08549A619FAA91E00973573 /* IQTitleBarButtonItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IQTitleBarButtonItem.h; sourceTree = "<group>"; };
		C08549A719FAA91E00973573 /* IQTitleBarButtonItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQTitleBarButtonItem.m; sourceTree = "<group>"; };
		C08549A819FAA91E00973573 /* IQToolbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IQToolbar.h; sourceTree = "<group>"; };
		C08549A919FAA91E00973573 /* IQToolbar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IQToolbar.m; sourceTree = "<group>"; };
		C08549AA19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = "IQUIView+IQKeyboardToolbar.h"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		C08549AB19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "IQUIView+IQKeyboardToolbar.m"; sourceTree = "<group>"; };
		C08549AC19FAA91E00973573 /* KeyboardManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyboardManager.h; sourceTree = "<group>"; };
		C08549AE19FAA91E00973573 /* IQKeyboardManager.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = IQKeyboardManager.bundle; sourceTree = "<group>"; };
		C08A654B19DB18C700D255E2 /* ManualToolbarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ManualToolbarViewController.h; sourceTree = "<group>"; };
		C08A654C19DB18C700D255E2 /* ManualToolbarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ManualToolbarViewController.m; sourceTree = "<group>"; };
		C08B91B719D7558800AF16E7 /* TextSelectionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextSelectionViewController.h; sourceTree = "<group>"; };
		C08B91B819D7558800AF16E7 /* TextSelectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextSelectionViewController.m; sourceTree = "<group>"; };
		C08CE0BC1A5C5EAC00FD9273 /* Swift Pending.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; name = "Swift Pending.rtf"; path = "IQKeyboardManager Swift/Swift Pending.rtf"; sourceTree = "<group>"; };
		C09576A719D811E00081DEB9 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
		C0A392111B208F8300783FDD /* IQUITextFieldView+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "IQUITextFieldView+Additions.h"; sourceTree = "<group>"; };
		C0A392121B208F8300783FDD /* IQUITextFieldView+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "IQUITextFieldView+Additions.m"; sourceTree = "<group>"; };
		C0A392131B208F8300783FDD /* IQUIViewController+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "IQUIViewController+Additions.h"; sourceTree = "<group>"; };
		C0A392141B208F8300783FDD /* IQUIViewController+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "IQUIViewController+Additions.m"; sourceTree = "<group>"; };
		C0ACB0F519CF104B0057B571 /* IQKeyboardManager Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "IQKeyboardManager Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		C0ACB0F819CF104D0057B571 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		C0ACB10019CF104E0057B571 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = "../IQKeyboardManager Swift/Images.xcassets"; sourceTree = "<group>"; };
		C0ACB10319CF104F0057B571 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
		C0B63B9B1781FAB1008D3B64 /* IQKeyboardManager.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IQKeyboardManager.app; sourceTree = BUILT_PRODUCTS_DIR; };
		C0B63B9F1781FAB1008D3B64 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		C0B63BA11781FAB1008D3B64 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		C0B63BA31781FAB1008D3B64 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
		C0B63BA91781FAB1008D3B64 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		C0B63BAB1781FAB1008D3B64 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		C0B63BAD1781FAB1008D3B64 /* IQKeyboardManager-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManager-Prefix.pch"; sourceTree = "<group>"; };
		C0B63BAE1781FAB1008D3B64 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		C0B63BAF1781FAB1008D3B64 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		C0DDEB4E19FCD56300FAB29F /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "IQNSArray+Sort.swift"; sourceTree = "<group>"; };
		C0DDEB4F19FCD56300FAB29F /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "IQUIView+Hierarchy.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
		C0DDEB5019FCD56300FAB29F /* IQUIWindow+Hierarchy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "IQUIWindow+Hierarchy.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
		C0DDEB5219FCD56300FAB29F /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQKeyboardManagerConstants.swift; sourceTree = "<group>"; };
		C0DDEB5319FCD56300FAB29F /* IQKeyboardManagerConstantsInternal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQKeyboardManagerConstantsInternal.swift; sourceTree = "<group>"; };
		C0DDEB5419FCD56300FAB29F /* IQKeyboardManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = IQKeyboardManager.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
		C0DDEB5519FCD56300FAB29F /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQKeyboardReturnKeyHandler.swift; sourceTree = "<group>"; };
		C0DDEB5919FCD56300FAB29F /* IQTextView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQTextView.swift; sourceTree = "<group>"; };
		C0DDEB5B19FCD56300FAB29F /* IQBarButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQBarButtonItem.swift; sourceTree = "<group>"; };
		C0DDEB5C19FCD56300FAB29F /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQTitleBarButtonItem.swift; sourceTree = "<group>"; };
		C0DDEB5D19FCD56300FAB29F /* IQToolbar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IQToolbar.swift; sourceTree = "<group>"; };
		C0DDEB5E19FCD56300FAB29F /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "IQUIView+IQKeyboardToolbar.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
		C0DDEB6019FCD56300FAB29F /* IQKeyboardManager.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = IQKeyboardManager.bundle; sourceTree = "<group>"; };
		C0EC59D119D0C0B100997FFE /* TextFieldViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TextFieldViewController.swift; path = "IQKeyboardManager Swift/TextFieldViewController.swift"; sourceTree = "<group>"; };
		C0EC59D319D0C0C600997FFE /* ScrollViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ScrollViewController.swift; path = "IQKeyboardManager Swift/ScrollViewController.swift"; sourceTree = "<group>"; };
		C0EC59D519D0C0D200997FFE /* WebViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebViewController.swift; path = "IQKeyboardManager Swift/WebViewController.swift"; sourceTree = "<group>"; };
		C0EC59D719D0C0DF00997FFE /* TextViewSpecialCaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TextViewSpecialCaseViewController.swift; path = "IQKeyboardManager Swift/TextViewSpecialCaseViewController.swift"; sourceTree = "<group>"; };
		C0EC59D919D0C0EE00997FFE /* NavigationBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NavigationBarViewController.swift; path = "IQKeyboardManager Swift/NavigationBarViewController.swift"; sourceTree = "<group>"; };
		C0EC59DB19D0C0FB00997FFE /* SpecialCaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SpecialCaseViewController.swift; path = "IQKeyboardManager Swift/SpecialCaseViewController.swift"; sourceTree = "<group>"; };
		C0EC59DD19D0C11200997FFE /* MainSwift.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = MainSwift.storyboard; path = "IQKeyboardManager Swift/MainSwift.storyboard"; sourceTree = "<group>"; };
		C0F1193819EEDCD500708D17 /* BottomBlankSpaceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomBlankSpaceViewController.h; sourceTree = "<group>"; };
		C0F1193919EEDCD500708D17 /* BottomBlankSpaceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BottomBlankSpaceViewController.m; sourceTree = "<group>"; };
		DDAA29F01A320057002C0ED8 /* TableViewInContainerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewInContainerViewController.h; sourceTree = "<group>"; };
		DDAA29F11A320057002C0ED8 /* TableViewInContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewInContainerViewController.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		9D0BB86E18BB232B00667349 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9DFD564E18BCAA26001007A2 /* CoreGraphics.framework in Frameworks */,
				9DFD564D18BCAA1F001007A2 /* UIKit.framework in Frameworks */,
				9D0BB87418BB232B00667349 /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		C0ACB0F219CF104B0057B571 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		C0B63B981781FAB1008D3B64 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9D9A0FC318C9DB5700585D3F /* Social.framework in Frameworks */,
				C0B63BA01781FAB1008D3B64 /* UIKit.framework in Frameworks */,
				C0B63BA21781FAB1008D3B64 /* Foundation.framework in Frameworks */,
				C0B63BA41781FAB1008D3B64 /* CoreGraphics.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		1C1ADFC61AE51F64007A73E3 /* TableViewController Example */ = {
			isa = PBXGroup;
			children = (
				1C1ADFC81AE51FB5007A73E3 /* ExampleTableViewController.swift */,
			);
			name = "TableViewController Example";
			sourceTree = "<group>";
		};
		1C1ADFC71AE51F74007A73E3 /* Settings */ = {
			isa = PBXGroup;
			children = (
			);
			name = Settings;
			sourceTree = "<group>";
		};
		9D0BB82E18BB1AE100667349 /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				9D0BB82F18BB1AE100667349 /* Foundation.framework */,
				9D0BB83018BB1AE100667349 /* CoreData.framework */,
				9D0BB83118BB1AE100667349 /* AppKit.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		9D0BB87518BB232B00667349 /* KeyboardManager */ = {
			isa = PBXGroup;
			children = (
				9D0BB87618BB232B00667349 /* Supporting Files */,
			);
			path = KeyboardManager;
			sourceTree = "<group>";
		};
		9D0BB87618BB232B00667349 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				9D0BB87718BB232B00667349 /* KeyboardManager-Info.plist */,
				9D0BB87818BB232B00667349 /* InfoPlist.strings */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		C05DD9FC1A591D2D00A6ECD4 /* IQDropDownTextField */ = {
			isa = PBXGroup;
			children = (
				C05DD9FD1A591D2D00A6ECD4 /* IQDropDownTextField.h */,
				C05DD9FE1A591D2D00A6ECD4 /* IQDropDownTextField.m */,
			);
			path = IQDropDownTextField;
			sourceTree = "<group>";
		};
		C06579C119D60AAF00DAA3EA /* Settings */ = {
			isa = PBXGroup;
			children = (
				C06579C519D60AD400DAA3EA /* CustomCell */,
				C06579BB19D6024800DAA3EA /* SettingsViewController.h */,
				C06579BC19D6024800DAA3EA /* SettingsViewController.m */,
				C06579CF19D61C0B00DAA3EA /* OptionsViewController.h */,
				C06579D019D61C0B00DAA3EA /* OptionsViewController.m */,
			);
			name = Settings;
			sourceTree = "<group>";
		};
		C06579C519D60AD400DAA3EA /* CustomCell */ = {
			isa = PBXGroup;
			children = (
				C06579C219D60ACB00DAA3EA /* SwitchTableViewCell.h */,
				C06579C319D60ACB00DAA3EA /* SwitchTableViewCell.m */,
				C06579C619D60AF600DAA3EA /* StepperTableViewCell.h */,
				C06579C719D60AF600DAA3EA /* StepperTableViewCell.m */,
				C06579C919D60B0400DAA3EA /* NavigationTableViewCell.h */,
				C06579CA19D60B0400DAA3EA /* NavigationTableViewCell.m */,
				C06579CC19D61BF000DAA3EA /* OptionTableViewCell.h */,
				C06579CD19D61BF000DAA3EA /* OptionTableViewCell.m */,
			);
			name = CustomCell;
			sourceTree = "<group>";
		};
		C085498E19FAA91E00973573 /* IQKeyBoardManager */ = {
			isa = PBXGroup;
			children = (
				C085499919FAA91E00973573 /* IQKeyboardManager.h */,
				C085499A19FAA91E00973573 /* IQKeyboardManager.m */,
				C085499B19FAA91E00973573 /* IQKeyboardReturnKeyHandler.h */,
				C085499C19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m */,
				C08549AC19FAA91E00973573 /* KeyboardManager.h */,
				C085498F19FAA91E00973573 /* Categories */,
				C085499619FAA91E00973573 /* Constants */,
				C085499D19FAA91E00973573 /* IQSegmentedNextPrevious */,
				C08549A019FAA91E00973573 /* IQTextView */,
				C08549A319FAA91E00973573 /* IQToolbar */,
				C08549AD19FAA91E00973573 /* Resources */,
			);
			name = IQKeyBoardManager;
			path = ../IQKeyBoardManager;
			sourceTree = "<group>";
		};
		C085498F19FAA91E00973573 /* Categories */ = {
			isa = PBXGroup;
			children = (
				C085499019FAA91E00973573 /* IQNSArray+Sort.h */,
				C085499119FAA91E00973573 /* IQNSArray+Sort.m */,
				C0A392111B208F8300783FDD /* IQUITextFieldView+Additions.h */,
				C0A392121B208F8300783FDD /* IQUITextFieldView+Additions.m */,
				C085499219FAA91E00973573 /* IQUIView+Hierarchy.h */,
				C085499319FAA91E00973573 /* IQUIView+Hierarchy.m */,
				C0A392131B208F8300783FDD /* IQUIViewController+Additions.h */,
				C0A392141B208F8300783FDD /* IQUIViewController+Additions.m */,
				C085499419FAA91E00973573 /* IQUIWindow+Hierarchy.h */,
				C085499519FAA91E00973573 /* IQUIWindow+Hierarchy.m */,
			);
			path = Categories;
			sourceTree = "<group>";
		};
		C085499619FAA91E00973573 /* Constants */ = {
			isa = PBXGroup;
			children = (
				C085499719FAA91E00973573 /* IQKeyboardManagerConstants.h */,
				C085499819FAA91E00973573 /* IQKeyboardManagerConstantsInternal.h */,
			);
			path = Constants;
			sourceTree = "<group>";
		};
		C085499D19FAA91E00973573 /* IQSegmentedNextPrevious */ = {
			isa = PBXGroup;
			children = (
				C085499E19FAA91E00973573 /* IQSegmentedNextPrevious.h */,
				C085499F19FAA91E00973573 /* IQSegmentedNextPrevious.m */,
			);
			path = IQSegmentedNextPrevious;
			sourceTree = "<group>";
		};
		C08549A019FAA91E00973573 /* IQTextView */ = {
			isa = PBXGroup;
			children = (
				C08549A119FAA91E00973573 /* IQTextView.h */,
				C08549A219FAA91E00973573 /* IQTextView.m */,
			);
			path = IQTextView;
			sourceTree = "<group>";
		};
		C08549A319FAA91E00973573 /* IQToolbar */ = {
			isa = PBXGroup;
			children = (
				C08549A419FAA91E00973573 /* IQBarButtonItem.h */,
				C08549A519FAA91E00973573 /* IQBarButtonItem.m */,
				C08549A619FAA91E00973573 /* IQTitleBarButtonItem.h */,
				C08549A719FAA91E00973573 /* IQTitleBarButtonItem.m */,
				C08549A819FAA91E00973573 /* IQToolbar.h */,
				C08549A919FAA91E00973573 /* IQToolbar.m */,
				C08549AA19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.h */,
				C08549AB19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m */,
			);
			path = IQToolbar;
			sourceTree = "<group>";
		};
		C08549AD19FAA91E00973573 /* Resources */ = {
			isa = PBXGroup;
			children = (
				C08549AE19FAA91E00973573 /* IQKeyboardManager.bundle */,
			);
			path = Resources;
			sourceTree = "<group>";
		};
		C08549D519FAA92E00973573 /* Swift Demo */ = {
			isa = PBXGroup;
			children = (
				C08CE0BC1A5C5EAC00FD9273 /* Swift Pending.rtf */,
				C0DDEB4C19FCD56300FAB29F /* IQKeybordManagerSwift */,
				C0DD7E9F19D0A0AE007604CF /* KeyboardTextFieldDemoSwift */,
				C0ACB0F619CF104C0057B571 /* IQKeyboardManager Swift */,
			);
			name = "Swift Demo";
			sourceTree = "<group>";
		};
		C0A25BD219D72AAA009E074D /* TableViewController Example */ = {
			isa = PBXGroup;
			children = (
				C06579BE19D6028100DAA3EA /* ExampleTableViewController.h */,
				C06579BF19D6028100DAA3EA /* ExampleTableViewController.m */,
			);
			name = "TableViewController Example";
			sourceTree = "<group>";
		};
		C0ACB0F619CF104C0057B571 /* IQKeyboardManager Swift */ = {
			isa = PBXGroup;
			children = (
				C0ACB10219CF104F0057B571 /* LaunchScreen.xib */,
				C0ACB0F719CF104D0057B571 /* Supporting Files */,
			);
			path = "IQKeyboardManager Swift";
			sourceTree = "<group>";
		};
		C0ACB0F719CF104D0057B571 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				C0ACB0F819CF104D0057B571 /* Info.plist */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		C0B63B901781FAB0008D3B64 = {
			isa = PBXGroup;
			children = (
				C08549D519FAA92E00973573 /* Swift Demo */,
				C085498E19FAA91E00973573 /* IQKeyBoardManager */,
				C0B63BA51781FAB1008D3B64 /* KeyboardTextFieldDemo */,
				C0DE7A3019D49D3400B6A582 /* Resources */,
				9D0BB87518BB232B00667349 /* KeyboardManager */,
				C0B63B9E1781FAB1008D3B64 /* Frameworks */,
				C0B63B9C1781FAB1008D3B64 /* Products */,
			);
			sourceTree = "<group>";
		};
		C0B63B9C1781FAB1008D3B64 /* Products */ = {
			isa = PBXGroup;
			children = (
				C0B63B9B1781FAB1008D3B64 /* IQKeyboardManager.app */,
				9D0BB87318BB232B00667349 /* KeyboardManager.framework */,
				C0ACB0F519CF104B0057B571 /* IQKeyboardManager Swift.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		C0B63B9E1781FAB1008D3B64 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				9D1F46981977B06C0057B4A2 /* Accelerate.framework */,
				9D9A0FC418C9DB5F00585D3F /* Twitter.framework */,
				9D9A0FC218C9DB5700585D3F /* Social.framework */,
				C0B63B9F1781FAB1008D3B64 /* UIKit.framework */,
				C0B63BA11781FAB1008D3B64 /* Foundation.framework */,
				C0B63BA31781FAB1008D3B64 /* CoreGraphics.framework */,
				9D0BB84118BB1AE100667349 /* XCTest.framework */,
				9D0BB82E18BB1AE100667349 /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		C0B63BA51781FAB1008D3B64 /* KeyboardTextFieldDemo */ = {
			isa = PBXGroup;
			children = (
				C05DD9FC1A591D2D00A6ECD4 /* IQDropDownTextField */,
				C0ACB10019CF104E0057B571 /* Images.xcassets */,
				C07E20C0185900BD001699A8 /* TextFieldViewController.h */,
				C07E20C1185900BD001699A8 /* TextFieldViewController.m */,
				C00EAA6B1858D5A500968DE2 /* ScrollViewController.h */,
				C07E20B41858FF54001699A8 /* ScrollViewController.m */,
				C07E20B918590085001699A8 /* WebViewController.h */,
				C07E20BA18590085001699A8 /* WebViewController.m */,
				C080A59018740EFF0088441B /* TextViewSpecialCaseViewController.h */,
				C080A59118740EFF0088441B /* TextViewSpecialCaseViewController.m */,
				53CF2B7D1903D02200E3FDEA /* NavigationBarViewController.h */,
				53CF2B7E1903D02200E3FDEA /* NavigationBarViewController.m */,
				9D03F06D18BDC19400F4970D /* SpecialCaseViewController.h */,
				9D03F06E18BDC19400F4970D /* SpecialCaseViewController.m */,
				9D8E5DAA18BC8E1D005695CF /* ViewController.h */,
				9D8E5DAB18BC8E1D005695CF /* ViewController.m */,
				C08B91B719D7558800AF16E7 /* TextSelectionViewController.h */,
				C08B91B819D7558800AF16E7 /* TextSelectionViewController.m */,
				C08A654B19DB18C700D255E2 /* ManualToolbarViewController.h */,
				C08A654C19DB18C700D255E2 /* ManualToolbarViewController.m */,
				C0F1193819EEDCD500708D17 /* BottomBlankSpaceViewController.h */,
				C0F1193919EEDCD500708D17 /* BottomBlankSpaceViewController.m */,
				C02790321A01404000FCB517 /* CollectionViewDemoController.h */,
				C02790331A01404000FCB517 /* CollectionViewDemoController.m */,
				DDAA29F01A320057002C0ED8 /* TableViewInContainerViewController.h */,
				DDAA29F11A320057002C0ED8 /* TableViewInContainerViewController.m */,
				1C2270101AE69224003A9D15 /* CustomViewController.h */,
				1C2270111AE69224003A9D15 /* CustomViewController.m */,
				1C22700D1AE68EEE003A9D15 /* CustomSubclassView.h */,
				1C22700E1AE68EEE003A9D15 /* CustomSubclassView.m */,
				C0A25BD219D72AAA009E074D /* TableViewController Example */,
				C06579C119D60AAF00DAA3EA /* Settings */,
				9DC4CE2E18DAF77300DB2CB0 /* Main.storyboard */,
				C0B63BAE1781FAB1008D3B64 /* AppDelegate.h */,
				C0B63BAF1781FAB1008D3B64 /* AppDelegate.m */,
				C0B63BA61781FAB1008D3B64 /* Supporting Files */,
			);
			path = KeyboardTextFieldDemo;
			sourceTree = "<group>";
		};
		C0B63BA61781FAB1008D3B64 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				B53A8A311A4C2D7A00951878 /* icon.png */,
				B53A8A2B1A4C2A3900951878 /* iTunesArtwork */,
				B53A8A2C1A4C2A3900951878 /* iTunesArtwork@2x */,
				C09576A719D811E00081DEB9 /* Default-568h@2x.png */,
				C0B63BA81781FAB1008D3B64 /* InfoPlist.strings */,
				9DFD56AB18BCB281001007A2 /* IQKeyboardManager-Info.plist */,
				C0B63BAB1781FAB1008D3B64 /* main.m */,
				C0B63BAD1781FAB1008D3B64 /* IQKeyboardManager-Prefix.pch */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		C0DD7E9F19D0A0AE007604CF /* KeyboardTextFieldDemoSwift */ = {
			isa = PBXGroup;
			children = (
				C0EC59D119D0C0B100997FFE /* TextFieldViewController.swift */,
				C0EC59D319D0C0C600997FFE /* ScrollViewController.swift */,
				C0EC59D519D0C0D200997FFE /* WebViewController.swift */,
				C0EC59D719D0C0DF00997FFE /* TextViewSpecialCaseViewController.swift */,
				C0EC59D919D0C0EE00997FFE /* NavigationBarViewController.swift */,
				C0EC59DB19D0C0FB00997FFE /* SpecialCaseViewController.swift */,
				C056E1F31AE41B0100F09472 /* ViewController.swift */,
				C0EC59DD19D0C11200997FFE /* MainSwift.storyboard */,
				C056E1F71AE4371A00F09472 /* IQKeyboardManger-Swift-Bridging-Header.h */,
				C056E1F21AE41B0100F09472 /* AppDelegate.swift */,
				1C1ADFBC1AE50D78007A73E3 /* TextSelectionViewController.swift */,
				1C1ADFBE1AE50D9B007A73E3 /* ManualToolbarViewController.swift */,
				1C1ADFC01AE50DAF007A73E3 /* BottomBlankSpaceViewController.swift */,
				1C1ADFC21AE50E28007A73E3 /* CollectionViewDemoController.swift */,
				1C1ADFC41AE50E66007A73E3 /* TableViewInContainerViewController.swift */,
				1C1ADFC61AE51F64007A73E3 /* TableViewController Example */,
				1C1ADFC71AE51F74007A73E3 /* Settings */,
			);
			name = KeyboardTextFieldDemoSwift;
			sourceTree = "<group>";
		};
		C0DDEB4C19FCD56300FAB29F /* IQKeybordManagerSwift */ = {
			isa = PBXGroup;
			children = (
				C0DDEB5419FCD56300FAB29F /* IQKeyboardManager.swift */,
				C0DDEB5519FCD56300FAB29F /* IQKeyboardReturnKeyHandler.swift */,
				C0DDEB4D19FCD56300FAB29F /* Categories */,
				C0DDEB5119FCD56300FAB29F /* Constants */,
				C0DDEB5819FCD56300FAB29F /* IQTextView */,
				C0DDEB5A19FCD56300FAB29F /* IQToolbar */,
				C0DDEB5F19FCD56300FAB29F /* Resources */,
			);
			name = IQKeybordManagerSwift;
			path = ../IQKeybordManagerSwift;
			sourceTree = "<group>";
		};
		C0DDEB4D19FCD56300FAB29F /* Categories */ = {
			isa = PBXGroup;
			children = (
				C0DDEB4E19FCD56300FAB29F /* IQNSArray+Sort.swift */,
				C0DDEB4F19FCD56300FAB29F /* IQUIView+Hierarchy.swift */,
				C0DDEB5019FCD56300FAB29F /* IQUIWindow+Hierarchy.swift */,
			);
			path = Categories;
			sourceTree = "<group>";
		};
		C0DDEB5119FCD56300FAB29F /* Constants */ = {
			isa = PBXGroup;
			children = (
				C0DDEB5219FCD56300FAB29F /* IQKeyboardManagerConstants.swift */,
				C0DDEB5319FCD56300FAB29F /* IQKeyboardManagerConstantsInternal.swift */,
			);
			path = Constants;
			sourceTree = "<group>";
		};
		C0DDEB5819FCD56300FAB29F /* IQTextView */ = {
			isa = PBXGroup;
			children = (
				C0DDEB5919FCD56300FAB29F /* IQTextView.swift */,
			);
			path = IQTextView;
			sourceTree = "<group>";
		};
		C0DDEB5A19FCD56300FAB29F /* IQToolbar */ = {
			isa = PBXGroup;
			children = (
				C0DDEB5B19FCD56300FAB29F /* IQBarButtonItem.swift */,
				C0DDEB5C19FCD56300FAB29F /* IQTitleBarButtonItem.swift */,
				C0DDEB5D19FCD56300FAB29F /* IQToolbar.swift */,
				C0DDEB5E19FCD56300FAB29F /* IQUIView+IQKeyboardToolbar.swift */,
			);
			path = IQToolbar;
			sourceTree = "<group>";
		};
		C0DDEB5F19FCD56300FAB29F /* Resources */ = {
			isa = PBXGroup;
			children = (
				C0DDEB6019FCD56300FAB29F /* IQKeyboardManager.bundle */,
			);
			path = Resources;
			sourceTree = "<group>";
		};
		C0DE7A3019D49D3400B6A582 /* Resources */ = {
			isa = PBXGroup;
			children = (
				C0032C8819D82253004E2A1C /* IQKeyboardManagerScreenshot.png */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		9D0BB86F18BB232B00667349 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C08549C619FAA91E00973573 /* IQBarButtonItem.h in Headers */,
				C08549BA19FAA91E00973573 /* IQKeyboardManager.h in Headers */,
				C08549B819FAA91E00973573 /* IQKeyboardManagerConstants.h in Headers */,
				C08549BD19FAA91E00973573 /* IQKeyboardReturnKeyHandler.h in Headers */,
				C08549C019FAA91E00973573 /* IQSegmentedNextPrevious.h in Headers */,
				C08549C319FAA91E00973573 /* IQTextView.h in Headers */,
				C08549C919FAA91E00973573 /* IQTitleBarButtonItem.h in Headers */,
				C08549CC19FAA91E00973573 /* IQToolbar.h in Headers */,
				C08549B219FAA91E00973573 /* IQUIView+Hierarchy.h in Headers */,
				C08549CF19FAA91E00973573 /* IQUIView+IQKeyboardToolbar.h in Headers */,
				C08549B519FAA91E00973573 /* IQUIWindow+Hierarchy.h in Headers */,
				C08549D219FAA91E00973573 /* KeyboardManager.h in Headers */,
				C08549AF19FAA91E00973573 /* IQNSArray+Sort.h in Headers */,
				C08549B919FAA91E00973573 /* IQKeyboardManagerConstantsInternal.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		9D0BB87218BB232B00667349 /* KeyboardManager */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9D0BB87F18BB232B00667349 /* Build configuration list for PBXNativeTarget "KeyboardManager" */;
			buildPhases = (
				9D0BB86D18BB232B00667349 /* Sources */,
				9D0BB86E18BB232B00667349 /* Frameworks */,
				9D0BB86F18BB232B00667349 /* Headers */,
				9D0BB87018BB232B00667349 /* Resources */,
				9D0BB87118BB232B00667349 /* ShellScript */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = KeyboardManager;
			productName = KeyboardManager;
			productReference = 9D0BB87318BB232B00667349 /* KeyboardManager.framework */;
			productType = "com.apple.product-type.framework.static";
		};
		C0ACB0F419CF104B0057B571 /* IQKeyboardManager Swift */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = C0ACB11119CF10510057B571 /* Build configuration list for PBXNativeTarget "IQKeyboardManager Swift" */;
			buildPhases = (
				C0ACB0F119CF104B0057B571 /* Sources */,
				C0ACB0F219CF104B0057B571 /* Frameworks */,
				C0ACB0F319CF104B0057B571 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "IQKeyboardManager Swift";
			productName = "IQKeyboardManager Swift";
			productReference = C0ACB0F519CF104B0057B571 /* IQKeyboardManager Swift.app */;
			productType = "com.apple.product-type.application";
		};
		C0B63B9A1781FAB1008D3B64 /* IQKeyboardManager */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = C0B63BB91781FAB1008D3B64 /* Build configuration list for PBXNativeTarget "IQKeyboardManager" */;
			buildPhases = (
				C0B63B971781FAB1008D3B64 /* Sources */,
				C0B63B981781FAB1008D3B64 /* Frameworks */,
				C0B63B991781FAB1008D3B64 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = IQKeyboardManager;
			productName = KeyboardTextFieldDemo;
			productReference = C0B63B9B1781FAB1008D3B64 /* IQKeyboardManager.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		C0B63B921781FAB0008D3B64 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0600;
				ORGANIZATIONNAME = Iftekhar;
				TargetAttributes = {
					C0ACB0F419CF104B0057B571 = {
						CreatedOnToolsVersion = 6.0.1;
					};
					C0B63B9A1781FAB1008D3B64 = {
						DevelopmentTeam = 7UUTF6T5P9;
					};
				};
			};
			buildConfigurationList = C0B63B951781FAB0008D3B64 /* Build configuration list for PBXProject "IQKeyboardManager" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				es,
				Base,
			);
			mainGroup = C0B63B901781FAB0008D3B64;
			productRefGroup = C0B63B9C1781FAB1008D3B64 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				C0B63B9A1781FAB1008D3B64 /* IQKeyboardManager */,
				9D0BB87218BB232B00667349 /* KeyboardManager */,
				C0ACB0F419CF104B0057B571 /* IQKeyboardManager Swift */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		9D0BB87018BB232B00667349 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C08549D419FAA91E00973573 /* IQKeyboardManager.bundle in Resources */,
				9D0BB87A18BB232B00667349 /* InfoPlist.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		C0ACB0F319CF104B0057B571 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C0DDEB6E19FCD56300FAB29F /* IQKeyboardManager.bundle in Resources */,
				B53A8A2E1A4C2A3900951878 /* iTunesArtwork in Resources */,
				B53A8A301A4C2A3900951878 /* iTunesArtwork@2x in Resources */,
				C05C59411A4C7F110007BD8F /* IQKeyboardManagerScreenshot.png in Resources */,
				B53A8A331A4C2D7A00951878 /* icon.png in Resources */,
				C0ACB10419CF104F0057B571 /* LaunchScreen.xib in Resources */,
				C0ACB10119CF104E0057B571 /* Images.xcassets in Resources */,
				C0EC59DE19D0C11200997FFE /* MainSwift.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		C0B63B991781FAB1008D3B64 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C08549D319FAA91E00973573 /* IQKeyboardManager.bundle in Resources */,
				B53A8A2D1A4C2A3900951878 /* iTunesArtwork in Resources */,
				B53A8A2F1A4C2A3900951878 /* iTunesArtwork@2x in Resources */,
				C05C59401A4C7F0E0007BD8F /* IQKeyboardManagerScreenshot.png in Resources */,
				B5C98E0A1A4C28FD00AD5C11 /* Images.xcassets in Resources */,
				B53A8A321A4C2D7A00951878 /* icon.png in Resources */,
				C0AB9307195F57BB00447049 /* Main.storyboard in Resources */,
				C09576A819D811E00081DEB9 /* Default-568h@2x.png in Resources */,
				C08CE0BD1A5C5EAC00FD9273 /* Swift Pending.rtf in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		9D0BB87118BB232B00667349 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /usr/bin/python;
			shellScript = "# TAG: BUILD SCRIPT (do not remove this comment)\n# Build script generated using https://github.com/kstenerud/iOS-Universal-Framework Mk 8 (beta 2012-06-16)\nimport logging\n\n\n##############################################################################\n#\n# Configuration\n#\n##############################################################################\n\n# Select which kind of framework to build.\n#\n# Note: Due to issues with Xcode's build process, if you select\n#       'embeddedframework', it will still show the regular framework\n#       (as a symlink) along side of the embedded framework. Be sure to\n#       instruct your users to copy/move the embedded framework in this case!\n#\n# If your framework contains resources such as images, nibs, momds, plists,\n# zipfiles and such, choose 'embeddedframework'.\n#\n# If your framework contains no resources, choose 'framework'.\n#\nconfig_framework_type = 'framework'\n#config_framework_type = 'embeddedframework'\n\n# Open the build directory in Finder when the universal framework is\n# successfully built.\n#\n# This value can be overridden by setting the UFW_OPEN_BUILD_DIR env variable\n# to True or False.\n#\n# Recommended setting: True\n#\nconfig_open_build_dir = True\n\n# If true, ensures that all public headers are stored in the framework under\n# the same directory hierarchy as they were in the source tree.\n#\n# Xcode by default places all headers at the same top level, but every other\n# build tool in the known universe preserves directory structure. For simple\n# libraries it doesn't really matter much, but for ports of existing software\n# packages or for bigger libraries, it makes sense to have more structure.\n#\n# The default is set to \"False\" since that's what most Xcode users are used to.\n#\n# Recommended setting: True for deep hierarchy projects, False otherwise.\n#\nconfig_deep_header_hierarchy = False\n\n# Specify where the top of the public header hierarchy is. This path is\n# relative to the project's dir (PROJECT_DIR). You can reference environment\n# variables using templating syntax (e.g. \"${TARGET_NAME}/Some/Subdir\")\n#\n# NOTE: Only used if config_deep_header_hierarchy is True.\n#\n# If this is set to None, the script will attempt to figure out for itself\n# where the top of the header hierarchy is by looking for common path prefixes\n# in the public header files. This process can fail if:\n# - You only have one public header file.\n# - Your source header files don't all have a common root.\n#\n# A common approach is to use \"${TARGET_NAME}\", working under the assumption\n# that all of your header files share the common root of a directory under\n# your project with the same name as your target (which is the Xcode default).\n#\n# Recommended setting: \"${TARGET_NAME}\"\n#\nconfig_deep_header_top = \"${TARGET_NAME}\"\n\n# Warn when \"DerivedData\" is detected in any of the header, library, or\n# framework search paths. In almost all cases, references to directories under\n# DerivedData are added as a result of an Xcode bug and must be manually\n# removed.\n#\n# Recommended setting: True\n#\nconfig_warn_derived_data = True\n\n# Warn if no headers were marked public in this framework.\n#\n# Recommended setting: True\n#\nconfig_warn_no_public_headers = True\n\n# Cause the build to fail if any warnings are issued.\n#\n# Recommended setting: True\n#\nconfig_fail_on_warnings = True\n\n# Minimum log level\n#\n# Recommended setting: logging.INFO\n#\nconfig_log_level = logging.INFO\n\n\n##############################################################################\n#\n# Don't touch anything below here unless you know what you're doing.\n#\n##############################################################################\n\nimport collections\nimport json\nimport os\nimport re\nimport shlex\nimport shutil\nimport string\nimport subprocess\nimport sys\nimport time\nimport traceback\n\n\n##############################################################################\n#\n# Globals\n#\n##############################################################################\n\nlog = logging.getLogger('UFW')\n\nissued_warnings = False\n\n\n##############################################################################\n#\n# Classes\n#\n##############################################################################\n\n# Allows the slave build to communicate with the master build.\n#\nclass BuildState:\n\n    def __init__(self):\n        self.reload()\n\n    def reset(self):\n        self.slave_platform = None\n        self.slave_architectures = []\n        self.slave_linked_archive_paths = []\n        self.slave_built_fw_path = None\n        self.slave_built_embedded_fw_path = None\n\n    def set_slave_properties(self, architectures,\n                             linked_archive_paths,\n                             built_fw_path,\n                             built_embedded_fw_path):\n        self.slave_platform = os.environ['PLATFORM_NAME']\n        self.slave_architectures = architectures\n        self.slave_linked_archive_paths = linked_archive_paths\n        self.slave_built_fw_path = built_fw_path\n        self.slave_built_embedded_fw_path = built_embedded_fw_path\n\n    def get_save_path(self):\n        return os.path.join(os.environ['PROJECT_TEMP_DIR'], \"ufw_build_state.json\")\n\n    def persist(self):\n        filename = self.get_save_path()\n        parent = os.path.dirname(filename)\n        if not os.path.isdir(parent):\n            os.makedirs(parent)\n        with open(filename, \"w\") as f:\n            f.write(json.dumps(self.__dict__))\n\n    def reload(self):\n        self.reset()\n        filename = self.get_save_path()\n        if os.path.exists(filename):\n            with open(filename, \"r\") as f:\n                new_dict = json.loads(f.read())\n                if new_dict is not None:\n                    self.__dict__ = dict(self.__dict__.items() + new_dict.items())\n\n\n# Holds information about the current project and build environment.\n#\nclass Project:\n\n    def __init__(self, filename):\n        sourcecode_types = ['sourcecode.c.c',\n                            'sourcecode.c.objc',\n                            'sourcecode.cpp.cpp',\n                            'sourcecode.cpp.objcpp',\n                            'sourcecode.asm.asm',\n                            'sourcecode.asm.llvm',\n                            'sourcecode.nasm']\n\n        self.build_state = BuildState()\n        self.project_data = self.load_from_file(filename)\n        self.target = filter(lambda x: x['name'] == os.environ['TARGET_NAME'], self.project_data['targets'])[0]\n        self.public_headers = self.get_build_phase_files('PBXHeadersBuildPhase', lambda x: x.get('settings', False) and x['settings'].get('ATTRIBUTES', False) and 'Public' in x['settings']['ATTRIBUTES'])\n        self.static_libraries = self.get_build_phase_files('PBXFrameworksBuildPhase', lambda x: x['fileRef']['fileType'] == 'archive.ar' and x['fileRef']['sourceTree'] not in ['DEVELOPER_DIR', 'SDKROOT'])\n        self.static_frameworks = self.get_build_phase_files('PBXFrameworksBuildPhase', lambda x: x['fileRef']['fileType'] == 'wrapper.framework' and x['fileRef']['sourceTree'] not in ['DEVELOPER_DIR', 'SDKROOT'])\n        self.compilable_sources = self.get_build_phase_files('PBXSourcesBuildPhase', lambda x: x['fileRef']['fileType'] in sourcecode_types)\n        self.header_paths = [os.path.join(*x['pathComponents']) for x in self.public_headers]\n\n        self.headers_dir = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['CONTENTS_FOLDER_PATH'], 'Headers')\n        self.libtool_path = os.path.join(os.environ['DT_TOOLCHAIN_DIR'], 'usr', 'bin', 'libtool')\n        self.project_filename = os.path.join(os.environ['PROJECT_FILE_PATH'], \"project.pbxproj\")\n        self.local_exe_path = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['EXECUTABLE_PATH'])\n        self.local_architectures = os.environ['ARCHS'].split(' ')\n        self.local_built_fw_path = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['WRAPPER_NAME'])\n        self.local_built_embedded_fw_path = os.path.splitext(self.local_built_fw_path)[0] + \".embeddedframework\"\n        self.local_linked_archive_paths = [self.get_linked_ufw_archive_path(arch) for arch in self.local_architectures]\n        self.local_platform = os.environ['PLATFORM_NAME']\n        other_platforms = os.environ['SUPPORTED_PLATFORMS'].split(' ')\n        other_platforms.remove(self.local_platform)\n        self.other_platform = other_platforms[0]\n\n        sdk_name = os.environ['SDK_NAME']\n        if not sdk_name.startswith(self.local_platform):\n            raise Exception(\"%s didn't start with %s\" % (sdk_name, self.local_platform))\n        self.sdk_version = sdk_name[len(self.local_platform):]\n\n    # Load an Xcode project file.\n    #\n    def load_from_file(self, filename):\n        project_file = json.loads(subprocess.check_output([\"plutil\", \"-convert\", \"json\", \"-o\", \"-\", filename]))\n        all_objects = project_file['objects']\n        del project_file['objects']\n        for obj in all_objects.values():\n            self.fix_keys(obj)\n        self.unpack_objects(self.build_dereference_list(all_objects, None, None, project_file))\n        self.unpack_objects(self.build_dereference_list(all_objects, None, None, all_objects.values()))\n        project_data = project_file['rootObject']\n        self.build_full_paths(project_data, splitpath(os.environ['SOURCE_ROOT']))\n        return project_data\n\n    def is_key(self, obj):        \n        return isinstance(obj, basestring) and len(obj) == 24 and re.search('^[0-9a-fA-F]+$', obj) is not None\n    \n    def build_dereference_list(self, all_objects, parent, key, obj):\n        deref_list = []\n        if self.is_key(obj):\n            dereferenced = all_objects.get(obj, obj)\n            if dereferenced is not obj:\n                deref_list.append((parent, key, obj, dereferenced))\n        elif isinstance(obj, collections.Mapping):\n            for k, v in obj.iteritems():\n                deref_list += self.build_dereference_list(all_objects, obj, k, v)\n        elif isinstance(obj, collections.Iterable) and not isinstance(obj, basestring):\n            for item in obj:\n                deref_list += self.build_dereference_list(all_objects, obj, None, item)\n        return deref_list\n    \n    def unpack_objects(self, deref_list):\n        for parent, key, orig, obj in deref_list:\n            if key is None:\n                parent.remove(orig)\n                parent.append(obj)\n            else:\n                parent[key] = obj\n\n    # Store the full path, separated into components, to a node inside the node\n    # as \"pathComponents\". Also recurse into that node if it's a group.\n    #\n    def build_full_paths(self, node, base_path):\n        # Some nodes are relative to a different source tree, specified as an\n        # env variable.\n        if node.get('sourceTree', '<group>') != '<group>':\n            new_base_path = os.environ.get(node['sourceTree'], None)\n            if new_base_path:\n                base_path = splitpath(new_base_path)\n        # Add the current node's path, if any.\n        if node.get('path', False):\n            base_path = base_path + splitpath(node['path'])\n        node['pathComponents'] = base_path\n        # Recurse if this is a group.\n        if node['isa'] == 'PBXGroup':\n            for child in node['children']:\n                self.build_full_paths(child, base_path)\n        elif node['isa'] == 'PBXProject':\n            self.build_full_paths(node['mainGroup'], base_path)\n            self.build_full_paths(node['productRefGroup'], base_path)\n            for child in node['targets']:\n                self.build_full_paths(child, base_path)\n            projectRefs = node.get('projectReferences', None)\n            if projectRefs is not None:\n                for child in projectRefs[0].values():\n                    self.build_full_paths(child, base_path)\n\n    # Fix up any inconvenient keys.\n    #\n    def fix_keys(self, obj):\n        key_remappings = {'lastKnownFileType': 'fileType', 'explicitFileType': 'fileType'}\n        for key in list(set(key_remappings.keys()) & set(obj.keys())):\n            obj[key_remappings[key]] = obj[key]\n            del obj[key]\n\n    # Get the files from a build phase.\n    #\n    def get_build_phase_files(self, build_phase_name, filter_func):\n        build_phase = filter(lambda x: x['isa'] == build_phase_name, self.target['buildPhases'])[0]\n        build_files = filter(filter_func, build_phase['files'])\n        return [x['fileRef'] for x in build_files]\n\n    # Get the truncated paths of all headers that start with the specified\n    # relative path. Paths are read and returned as fully separated lists.\n    # e.g. ['Some', 'Path', 'To', 'A', 'Header'] with relative_path of\n    # ['Some', 'Path'] gets truncated to ['To', 'A', 'Header']\n    #\n    def movable_headers_relative_to(self, relative_path):\n        rel_path_length = len(relative_path)\n        result = filter(lambda path: len(path) >= rel_path_length and\n                                     path[:rel_path_length] == relative_path, self.header_paths)\n        return [path[rel_path_length:] for path in result]\n\n    # Get the full path to where a linkable archive (library or framework)\n    # is supposed to be.\n    #\n    def get_linked_archive_path(self, architecture):\n        return os.path.join(os.environ['OBJECT_FILE_DIR_%s' % os.environ['CURRENT_VARIANT']],\n                            architecture,\n                            os.environ['EXECUTABLE_NAME'])\n\n    # Get the full path to our custom linked archive of the project.\n    #\n    def get_linked_ufw_archive_path(self, architecture):\n        return self.get_linked_archive_path(architecture) + \".ufwbuild\"\n\n    # Get the full path to the executable of an archive.\n    #\n    def get_exe_path(self, node):\n        path = os.path.join(*node['pathComponents'])\n        if node['fileType'] == 'wrapper.framework':\n            # Frameworks are directories, so go one deeper\n            path = os.path.join(path, os.path.splitext(node['pathComponents'][-1])[0])\n        return path\n\n    # Get the path to the directory containing the archive.\n    #\n    def get_containing_path(self, node):\n        return os.path.join(*node['pathComponents'])\n    \n    def get_archive_search_paths(self):\n        log.info(\"Search paths = %s\" % set([self.get_containing_path(fw) for fw in self.static_frameworks] + [self.get_containing_path(fw) for fw in self.static_libraries]))\n        return set([self.get_containing_path(fw) for fw in self.static_frameworks] + [self.get_containing_path(fw) for fw in self.static_libraries])\n\n    # Command to link all objects of a single architecture.\n    #\n    def get_single_arch_link_command(self, architecture):\n        cmd = [self.libtool_path,\n               \"-static\",\n               \"-arch_only\", architecture,\n               \"-syslibroot\", os.environ['SDKROOT'],\n               \"-L%s\" % os.environ['TARGET_BUILD_DIR'],\n               \"-filelist\", os.environ['LINK_FILE_LIST_%s_%s' % (os.environ['CURRENT_VARIANT'], architecture)]]\n        if os.environ.get('OTHER_LDFLAGS', False):\n            cmd += [os.environ['OTHER_LDFLAGS']]\n        if os.environ.get('WARNING_LDFLAGS', False):\n            cmd += [os.environ['WARNING_LDFLAGS']]\n#        cmd += [\"-L%s\" % libpath for libpath in self.get_archive_search_paths()]\n        cmd += [self.get_exe_path(fw) for fw in self.static_frameworks]\n        cmd += [self.get_exe_path(lib) for lib in self.static_libraries]\n        cmd += [\"-o\", self.get_linked_ufw_archive_path(architecture)]\n        return cmd\n\n    # Command to link all local architectures for the current configuration\n    # into an archive. This reads all libraries + the UFW-built archives and\n    # overwrites the final product.\n    #\n    def get_local_archs_link_command(self):\n        cmd = [self.libtool_path,\n               \"-static\"]\n        cmd += self.local_linked_archive_paths\n        cmd += [self.get_exe_path(fw) for fw in self.static_frameworks]\n        cmd += [self.get_exe_path(lib) for lib in self.static_libraries]\n        cmd += [\"-o\", os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['EXECUTABLE_PATH'])]\n        return cmd\n\n    # Command to link all architectures into a universal archive.\n    # This reads all UFW-built archives and overwrites the final product.\n    #\n    def get_all_archs_link_command(self):\n        cmd = [self.libtool_path,\n               \"-static\"]\n        cmd += self.local_linked_archive_paths + self.build_state.slave_linked_archive_paths\n        cmd += [\"-o\", os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['EXECUTABLE_PATH'])]\n        return cmd\n\n    # Build up an environment for the slave process. This uses BUILD_ROOT\n    # and TEMP_ROOT to convert all environment variables to values suitable\n    # for the slave build environment so that xcodebuild doesn't try to build\n    # in the project directory under \"build\".\n    #\n    def get_slave_environment(self):\n        ignored = ['LD_MAP_FILE_PATH',\n        'HEADER_SEARCH_PATHS',\n        'LIBRARY_SEARCH_PATHS',\n        'FRAMEWORK_SEARCH_PATHS']\n        build_root = os.environ['BUILD_ROOT']\n        temp_root = os.environ['TEMP_ROOT']\n        newenv = {}\n        for key, value in os.environ.items():\n            if key not in ignored and not key.startswith('LINK_FILE_LIST_') and not key.startswith('LD_DEPENDENCY_'):\n                if build_root in value or temp_root in value:\n                    newenv[key] = value.replace(self.local_platform, self.other_platform)\n        return newenv\n\n    # Command to invoke xcodebuild on the slave platform.\n    #\n    def get_slave_project_build_command(self):\n        cmd = [\"xcodebuild\",\n               \"-project\",\n               os.environ['PROJECT_FILE_PATH'],\n               \"-target\",\n               os.environ['TARGET_NAME'],\n               \"-configuration\",\n               os.environ['CONFIGURATION'],\n               \"-sdk\",\n               self.other_platform + self.sdk_version]\n        cmd += [\"%s=%s\" % (key, value) for key, value in self.get_slave_environment().items()]\n        cmd += [\"UFW_MASTER_PLATFORM=\" + os.environ['PLATFORM_NAME']]\n        cmd += [os.environ['ACTION']]\n        return cmd\n\n\n\n##############################################################################\n#\n# Utility Functions\n#\n##############################################################################\n\n# Split a path into a list of path components.\n#\ndef splitpath(path, maxdepth=20):\n     (head, tail) = os.path.split(path)\n     return splitpath(head, maxdepth - 1) + [tail] if maxdepth and head and head != path else [ head or tail ]\n\n# Remove all subdirectories under a path.\n#\ndef remove_subdirs(path, ignore_files):\n    if os.path.exists(path):\n        for filename in filter(lambda x: x not in ignore_files, os.listdir(path)):\n            fullpath = os.path.join(path, filename)\n            if os.path.isdir(fullpath):\n                log.info(\"Remove %s\" % fullpath)\n                shutil.rmtree(fullpath)\n\n# Make whatever parent paths are necessary for a path to exist.\n#\ndef ensure_path_exists(path):\n    if not os.path.isdir(path):\n        os.makedirs(path)\n\n# Make whatever parent paths are necessary for a path's parent to exist.\n#\ndef ensure_parent_exists(path):\n    parent = os.path.dirname(path)\n    if not os.path.isdir(parent):\n        os.makedirs(parent)\n\n# Remove a file or dir if it exists.\n#\ndef remove_path(path):\n    if os.path.exists(path):\n        if os.path.isdir(path) and not os.path.islink(path):\n            shutil.rmtree(path)\n        else:\n            os.remove(path)\n\n# Move a file or dir, replacing the destination if it exists.\n#\ndef move_file(src, dst):\n    if src == dst or not os.path.isfile(src):\n        return\n    log.info(\"Move %s to %s\" % (src, dst))\n    ensure_parent_exists(dst)\n    remove_path(dst)\n    shutil.move(src, dst)\n\n# Copy a file or dir, replacing the destination if it exists already.\n#\ndef copy_overwrite(src, dst):\n    if src != dst:\n        remove_path(dst)\n        ensure_parent_exists(dst)\n        shutil.copytree(src, dst, symlinks=True)\n\n# Attempt to symlink link_path -> link_to.\n# link_to must be a path relative to link_path's parent and must exist.\n# If link_path already exists, do nothing.\n#\ndef attempt_symlink(link_path, link_to):\n    # Only allow linking to an existing file\n    os.stat(os.path.abspath(os.path.join(link_path, \"..\", link_to)))\n\n    # Only make the link if it hasn't already been made\n    if not os.path.exists(link_path):\n        log.info(\"Symlink %s -> %s\" % (link_path, link_to))\n        os.symlink(link_to, link_path)\n\n# Takes the last entry in an array-based path and returns a normal path\n# relative to base_path.\n#\ndef top_level_file_path(base_path, path_list):\n    return os.path.join(base_path, os.path.split(path_list[-1])[-1])\n\n# Takes all entries in an array-based path and returns a normal path\n# relative to base_path.\n#\ndef full_file_path(base_path, path_list):\n    return os.path.join(*([base_path] + path_list))\n\n# Print a command before executing it.\n# Also print out all output from the command to STDOUT.\n#\ndef print_and_call(cmd):\n    log.info(\"Cmd \" + \" \".join(cmd))\n    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n    result = p.communicate()[0]\n    if len(result) > 0:\n        log.info(result)\n    if p.returncode != 0:\n        raise subprocess.CalledProcessError(p.returncode, cmd)\n\n# Special print-and-call command for the slave build that strips out\n# xcodebuild's spammy list of environment variables.\n#\ndef print_and_call_slave_build(cmd, other_platform):\n    separator = '=== BUILD NATIVE TARGET '\n    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n    result = p.communicate()[0].split(separator)\n    if len(result) == 1:\n        result = result[0]\n    else:\n        result = separator + result[1]\n    log.info(\"Cmd \" + \" \".join(cmd) + \"\\n\" + result)\n    if p.returncode != 0:\n        raise subprocess.CalledProcessError(p.returncode, cmd)\n\n# Issue a warning and record that a warning has been issued.\n#\ndef issue_warning(msg, *args, **kwargs):\n    global issued_warnings\n    issued_warnings = True\n    log.warn(msg, *args, **kwargs)\n\n\n\n##############################################################################\n#\n# Main Application\n#\n##############################################################################\n\n# Check if we are running as master.\n#\ndef is_master():\n    return os.environ.get('UFW_MASTER_PLATFORM', os.environ['PLATFORM_NAME']) == os.environ['PLATFORM_NAME']\n\n# DerivedData should almost never appear in any framework, library, or header\n# search paths. However, Xcode will sometimes add them in, so we check to make\n# sure.\n#\ndef check_for_derived_data_in_search_paths(project):\n    search_path_keys = [\"FRAMEWORK_SEARCH_PATHS\", \"LIBRARY_SEARCH_PATHS\", \"HEADER_SEARCH_PATHS\"]\n    build_configs = project.target['buildConfigurationList']['buildConfigurations']\n    build_settings = filter(lambda x: x['name'] == os.environ['CONFIGURATION'], build_configs)[0]['buildSettings']\n    \n    found_something = False\n    for path_key in filter(lambda x: x in build_settings, search_path_keys):\n        path = build_settings[path_key]\n        if \"DerivedData\" in path:\n            found_something = True\n            log.warn(\"Derived data in %s\" % path)\n            issue_warning(\"'%s' contains reference to 'DerivedData'.\" % path_key)\n    if found_something:\n        log.warn(\"Check your build settings and remove any entries that contain paths inside the DerivedData folder.\")\n        log.warn(\"Otherwise you can disable this warning by changing 'config_warn_derived_data' in this script.\")\n\n# Link local architectures into their respective archives.\n#\ndef link_local_archs(project):\n    for arch in project.local_architectures:\n        print_and_call(project.get_single_arch_link_command(arch))\n\n# Link only the local architectures into the final product, not the slave\n# architectures. For iphoneos, this will be armv6, armv7. For simulator, this\n# will be i386.\n#\ndef link_combine_local_archs(project):\n    print_and_call(project.get_local_archs_link_command())\n\n# Link all architectures into the final product.\n#\ndef link_combine_all_archs(project):\n    print_and_call(project.get_all_archs_link_command())\n\n# Check if we should open the build directory after a successful build.\n#\ndef should_open_build_dir():\n    env_setting = os.environ.get('UFW_OPEN_BUILD_DIR', None)\n    if env_setting is not None:\n        return env_setting\n\n    return config_open_build_dir\n\n# Open the build dir in Finder.\n#\ndef open_build_dir():\n    print_and_call(['open', os.environ['TARGET_BUILD_DIR']])\n\n# Check if the build was started by selecting \"Archive\" under \"Product\" in\n# Xcode.\n#\ndef is_archive_build():\n    # ACTION is always 'build', but perhaps Apple will fix this someday?\n    archive_build = os.environ['ACTION'] == 'archive'\n\n    if not archive_build:\n        # This can be passed in as an env variable when building from command line.\n        archive_build = os.environ.get('UFW_ACTION', None) == 'archive'\n\n    build_dir = splitpath(os.environ['BUILD_DIR'])\n    if not archive_build:\n        # This partial path is used when you select \"archive\" from within Xcode.\n        archive_build = 'ArchiveIntermediates' in build_dir\n\n    # It only counts as a full archive build if this target is being built into\n    # its own build dir (not being built as a dependency of another target)\n    if archive_build:\n        archive_build = os.environ['TARGET_NAME'] in build_dir\n    \n    return archive_build\n\n# Xcode by default throws all public headers into the top level directory.\n# This function moves them to their expected deep hierarchy.\n#\ndef build_deep_header_hierarchy(project):\n    header_path_top = config_deep_header_top\n    if not header_path_top:\n        header_path_top = os.path.commonprefix(project.header_paths)\n    else:\n        header_path_top = splitpath(header_path_top)\n\n    built_headers_path = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['PUBLIC_HEADERS_FOLDER_PATH'])\n    movable_headers = project.movable_headers_relative_to(header_path_top)\n\n    # Remove subdirs if they only contain files that have been rebuilt\n    ignore_headers = filter(lambda x: not os.path.isfile(top_level_file_path(built_headers_path, x)), movable_headers)\n    remove_subdirs(built_headers_path, [file[0] for file in ignore_headers])\n\n    # Move rebuilt headers into their proper subdirs\n    for header in movable_headers:\n        move_file(top_level_file_path(built_headers_path, header), full_file_path(built_headers_path, header))\n\n# Add all symlinks needed to make a full framework structure:\n#\n# MyFramework.framework\n# |-- MyFramework -> Versions/Current/MyFramework\n# |-- Headers -> Versions/Current/Headers\n# |-- Resources -> Versions/Current/Resources\n# `-- Versions\n#     |-- A\n#     |   |-- MyFramework\n#     |   |-- Headers\n#     |   |   `-- MyFramework.h\n#     |   `-- Resources\n#     |       |-- Info.plist\n#     |       |-- MyViewController.nib\n#     |       `-- en.lproj\n#     |           `-- InfoPlist.strings\n#     `-- Current -> A\n#\ndef add_symlinks_to_framework(project):\n    base_dir = project.local_built_fw_path\n    attempt_symlink(os.path.join(base_dir, \"Versions\", \"Current\"), os.environ['FRAMEWORK_VERSION'])\n    if os.path.isdir(os.path.join(base_dir, \"Versions\", \"Current\", \"Headers\")):\n        attempt_symlink(os.path.join(base_dir, \"Headers\"), os.path.join(\"Versions\", \"Current\", \"Headers\"))\n    if os.path.isdir(os.path.join(base_dir, \"Versions\", \"Current\", \"Resources\")):\n        attempt_symlink(os.path.join(base_dir, \"Resources\"), os.path.join(\"Versions\", \"Current\", \"Resources\"))\n    attempt_symlink(os.path.join(base_dir, os.environ['EXECUTABLE_NAME']), os.path.join(\"Versions\", \"Current\", os.environ['EXECUTABLE_NAME']))\n\n# Build an embedded framework structure.\n# An embedded framework contains the actual framework, plus a \"Resources\"\n# directory containing symlinks to all resources found in the actual framework,\n# with the exception of \"Info.plist\" and anything ending in \".lproj\":\n#\n# MyFramework.embeddedframework\n# |-- MyFramework.framework\n# |   |-- MyFramework -> Versions/Current/MyFramework\n# |   |-- Headers -> Versions/Current/Headers\n# |   |-- Resources -> Versions/Current/Resources\n# |   `-- Versions\n# |       |-- A\n# |       |   |-- MyFramework\n# |       |   |-- Headers\n# |       |   |   `-- MyFramework.h\n# |       |   `-- Resources\n# |       |       |-- Info.plist\n# |       |       |-- MyViewController.nib\n# |       |       `-- en.lproj\n# |       |           `-- InfoPlist.strings\n# |       `-- Current -> A\n# `-- Resources\n#     `-- MyViewController.nib -> ../MyFramework.framework/Resources/MyViewController.nib\n#\ndef build_embedded_framework(project):\n    fw_path = project.local_built_fw_path\n    embedded_path = project.local_built_embedded_fw_path\n    fw_name = os.environ['WRAPPER_NAME']\n\n    if (os.path.islink(fw_path)):\n        # If the framework path is a link, the build result already in embeddedframework.\n        # Just recreate embeddedframework's Resources\n        remove_path(os.path.join(embedded_path, \"Resources\"))\n    else:\n        remove_path(embedded_path)\n        ensure_path_exists(embedded_path)\n        copy_overwrite(fw_path, os.path.join(embedded_path, fw_name))\n\n    # Create embeddedframework's Resources        \n    ensure_path_exists(os.path.join(embedded_path, \"Resources\"))\n    symlink_source = os.path.join(\"..\", fw_name, \"Resources\")\n    symlink_path = os.path.join(embedded_path, \"Resources\")\n    if os.path.isdir(os.path.join(fw_path, \"Resources\")):\n        for file in filter(lambda x: x != \"Info.plist\" and not x.endswith(\".lproj\"), os.listdir(os.path.join(fw_path, \"Resources\"))):\n            attempt_symlink(os.path.join(symlink_path, file), os.path.join(symlink_source, file))\n\n    # Remove the normal framework and replace it with a symlink to the copy\n    # in the embedded framework. This is needed because Xcode runs its strip\n    # phase AFTER the script runs.\n    embed_fw_wrapper = os.path.splitext(os.environ['WRAPPER_NAME'])[0] + \".embeddedframework\"\n    remove_path(fw_path)\n    attempt_symlink(fw_path, os.path.join(embed_fw_wrapper, os.environ['WRAPPER_NAME']))\n\n\n# Run the build process in slave mode to build the other configuration\n# (device/simulator).\n#\ndef run_slave_build(project):\n    print_and_call_slave_build(project.get_slave_project_build_command(), project.other_platform)\n\n# Run the build process.\n#\ndef run_build():\n    project = Project(os.path.join(os.environ['PROJECT_FILE_PATH'], \"project.pbxproj\"))\n\n    # Issue warnings only if we're master.\n    if is_master():\n        if len(project.compilable_sources) == 0:\n            raise Exception(\"No compilable sources found. Please add at least one source file to build target %s.\" % os.environ['TARGET_NAME'])\n\n        if config_warn_derived_data:\n            check_for_derived_data_in_search_paths(project)\n        if config_warn_no_public_headers and len(project.public_headers) == 0:\n            issue_warning('No headers in build target %s were marked public. Please move at least one header to \"Public\" in the \"Copy Headers\" build phase.' % os.environ['TARGET_NAME'])\n\n    # Only build slave if this is an archive build.\n    if is_archive_build():\n        if is_master():\n            log.debug(\"Building as MASTER\")\n            # The slave-side linker tries to include this (nonexistent) path as\n            # a library path.\n            ensure_path_exists(project.get_slave_environment()['BUILT_PRODUCTS_DIR'])\n            project.build_state.persist()\n            run_slave_build(project)\n            project.build_state.reload()\n        else:\n            log.debug(\"Building as SLAVE\")\n            project.build_state.reload()\n            project.build_state.set_slave_properties(project.local_architectures,\n                                                     project.local_linked_archive_paths,\n                                                     project.local_built_fw_path,\n                                                     project.local_built_embedded_fw_path)\n            project.build_state.persist()\n\n    link_local_archs(project)\n    \n    # Only do a universal binary when building an archive.\n    if is_archive_build() and is_master():\n        link_combine_all_archs(project)\n    else:\n        link_combine_local_archs(project)\n\n    if config_deep_header_hierarchy:\n        build_deep_header_hierarchy(project)\n\n    add_symlinks_to_framework(project)\n    \n    if is_master():\n        if config_framework_type == 'embeddedframework':\n            build_embedded_framework(project)\n        elif config_framework_type != 'framework':\n            raise Exception(\"%s: Unknown framework type for config_framework_type\" % config_framework_type)\n\n\nif __name__ == \"__main__\":\n    log_handler = logging.StreamHandler()\n    log_handler.setFormatter(logging.Formatter(\"%(name)s (\" + os.environ['PLATFORM_NAME'] + \"): %(levelname)s: %(message)s\"))\n    log.addHandler(log_handler)\n    log.setLevel(config_log_level)\n\n    error_code = 0\n    prefix = \"M\" if is_master() else \"S\"\n    log_handler.setFormatter(logging.Formatter(\"%(name)s (\" + prefix + \" \" + os.environ['PLATFORM_NAME'] + \"): %(levelname)s: %(message)s\"))\n\n    log.debug(\"Begin build process\")\n\n    if config_deep_header_top:\n        config_deep_header_top = string.Template(config_deep_header_top).substitute(os.environ)\n\n    try:\n        run_build()\n        if issued_warnings:\n            if config_fail_on_warnings:\n                error_code = 1\n            log.warn(\"Build completed with warnings\")\n        else:\n            log.info(\"Build completed\")\n        if not is_archive_build():\n            log.info(\"Note: This is *NOT* a universal framework build. To build as a universal framework, do an archive build.\")\n            log.info(\"To do an archive build from command line, use \\\"xcodebuild -configuration Release UFW_ACTION=archive clean build\\\"\")\n    except Exception:\n        traceback.print_exc(file=sys.stdout)\n        error_code = 1\n        log.error(\"Build failed\")\n    finally:\n        if error_code == 0 and is_archive_build() and is_master():\n            log.info(\"Built framework is in \" + os.environ['TARGET_BUILD_DIR'])\n            if should_open_build_dir():\n                open_build_dir()\n        sys.exit(error_code)\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		9D0BB86D18BB232B00667349 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C08549BF19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m in Sources */,
				C08549BC19FAA91E00973573 /* IQKeyboardManager.m in Sources */,
				C08549C219FAA91E00973573 /* IQSegmentedNextPrevious.m in Sources */,
				C08549D119FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m in Sources */,
				C08549B719FAA91E00973573 /* IQUIWindow+Hierarchy.m in Sources */,
				C08549CB19FAA91E00973573 /* IQTitleBarButtonItem.m in Sources */,
				C08549CE19FAA91E00973573 /* IQToolbar.m in Sources */,
				C08549B419FAA91E00973573 /* IQUIView+Hierarchy.m in Sources */,
				C08549B119FAA91E00973573 /* IQNSArray+Sort.m in Sources */,
				C08549C819FAA91E00973573 /* IQBarButtonItem.m in Sources */,
				C08549C519FAA91E00973573 /* IQTextView.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		C0ACB0F119CF104B0057B571 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C0DDEB6D19FCD56300FAB29F /* IQUIView+IQKeyboardToolbar.swift in Sources */,
				C0EC59D219D0C0B100997FFE /* TextFieldViewController.swift in Sources */,
				C056E1F41AE41B0100F09472 /* AppDelegate.swift in Sources */,
				1C1ADFC31AE50E28007A73E3 /* CollectionViewDemoController.swift in Sources */,
				C0EC59D619D0C0D200997FFE /* WebViewController.swift in Sources */,
				C0DDEB6919FCD56300FAB29F /* IQTextView.swift in Sources */,
				1C1ADFC91AE51FB5007A73E3 /* ExampleTableViewController.swift in Sources */,
				C0DDEB6C19FCD56300FAB29F /* IQToolbar.swift in Sources */,
				1C1ADFC51AE50E66007A73E3 /* TableViewInContainerViewController.swift in Sources */,
				C0EC59D819D0C0DF00997FFE /* TextViewSpecialCaseViewController.swift in Sources */,
				C0DDEB6B19FCD56300FAB29F /* IQTitleBarButtonItem.swift in Sources */,
				C0EC59DC19D0C0FB00997FFE /* SpecialCaseViewController.swift in Sources */,
				C0DDEB6419FCD56300FAB29F /* IQKeyboardManagerConstants.swift in Sources */,
				C056E1F51AE41B0100F09472 /* ViewController.swift in Sources */,
				C0DDEB6619FCD56300FAB29F /* IQKeyboardManager.swift in Sources */,
				C0DDEB6319FCD56300FAB29F /* IQUIWindow+Hierarchy.swift in Sources */,
				C0EC59D419D0C0C600997FFE /* ScrollViewController.swift in Sources */,
				C0EC59DA19D0C0EE00997FFE /* NavigationBarViewController.swift in Sources */,
				1C1ADFC11AE50DAF007A73E3 /* BottomBlankSpaceViewController.swift in Sources */,
				C056E1F61AE434DF00F09472 /* IQDropDownTextField.m in Sources */,
				C0DDEB6A19FCD56300FAB29F /* IQBarButtonItem.swift in Sources */,
				C0DDEB6719FCD56300FAB29F /* IQKeyboardReturnKeyHandler.swift in Sources */,
				1C1ADFBD1AE50D78007A73E3 /* TextSelectionViewController.swift in Sources */,
				C0DDEB6219FCD56300FAB29F /* IQUIView+Hierarchy.swift in Sources */,
				C0DDEB6519FCD56300FAB29F /* IQKeyboardManagerConstantsInternal.swift in Sources */,
				1C1ADFBF1AE50D9B007A73E3 /* ManualToolbarViewController.swift in Sources */,
				C0DDEB6119FCD56300FAB29F /* IQNSArray+Sort.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		C0B63B971781FAB1008D3B64 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				C06579CE19D61BF000DAA3EA /* OptionTableViewCell.m in Sources */,
				C02790341A01404000FCB517 /* CollectionViewDemoController.m in Sources */,
				C08549D019FAA91E00973573 /* IQUIView+IQKeyboardToolbar.m in Sources */,
				C05DD9FF1A591D2D00A6ECD4 /* IQDropDownTextField.m in Sources */,
				C08549CA19FAA91E00973573 /* IQTitleBarButtonItem.m in Sources */,
				C08549BE19FAA91E00973573 /* IQKeyboardReturnKeyHandler.m in Sources */,
				C0A392151B208F8300783FDD /* IQUITextFieldView+Additions.m in Sources */,
				C06579C019D6028100DAA3EA /* ExampleTableViewController.m in Sources */,
				53CF2B7F1903D02200E3FDEA /* NavigationBarViewController.m in Sources */,
				C08549CD19FAA91E00973573 /* IQToolbar.m in Sources */,
				C08549B619FAA91E00973573 /* IQUIWindow+Hierarchy.m in Sources */,
				C08A654D19DB18C700D255E2 /* ManualToolbarViewController.m in Sources */,
				C08549B019FAA91E00973573 /* IQNSArray+Sort.m in Sources */,
				DDAA29F21A320057002C0ED8 /* TableViewInContainerViewController.m in Sources */,
				C06579C419D60ACB00DAA3EA /* SwitchTableViewCell.m in Sources */,
				C08549C119FAA91E00973573 /* IQSegmentedNextPrevious.m in Sources */,
				C0B63BAC1781FAB1008D3B64 /* main.m in Sources */,
				1C2270121AE69224003A9D15 /* CustomViewController.m in Sources */,
				C0A392161B208F8300783FDD /* IQUIViewController+Additions.m in Sources */,
				C0B63BB01781FAB1008D3B64 /* AppDelegate.m in Sources */,
				C06579BD19D6024800DAA3EA /* SettingsViewController.m in Sources */,
				C07E20B51858FF54001699A8 /* ScrollViewController.m in Sources */,
				C08549C419FAA91E00973573 /* IQTextView.m in Sources */,
				C08549BB19FAA91E00973573 /* IQKeyboardManager.m in Sources */,
				C07E20BE18590085001699A8 /* WebViewController.m in Sources */,
				C07E20C3185900BD001699A8 /* TextFieldViewController.m in Sources */,
				C0F1193A19EEDCD500708D17 /* BottomBlankSpaceViewController.m in Sources */,
				C08549B319FAA91E00973573 /* IQUIView+Hierarchy.m in Sources */,
				1C22700F1AE68EEE003A9D15 /* CustomSubclassView.m in Sources */,
				C06579CB19D60B0400DAA3EA /* NavigationTableViewCell.m in Sources */,
				C08B91BB19D7558800AF16E7 /* TextSelectionViewController.m in Sources */,
				9D8E5DAC18BC8E1D005695CF /* ViewController.m in Sources */,
				C080A59318740EFF0088441B /* TextViewSpecialCaseViewController.m in Sources */,
				9D03F06F18BDC19400F4970D /* SpecialCaseViewController.m in Sources */,
				C06579C819D60AF600DAA3EA /* StepperTableViewCell.m in Sources */,
				C06579D119D61C0B00DAA3EA /* OptionsViewController.m in Sources */,
				C08549C719FAA91E00973573 /* IQBarButtonItem.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		9D0BB87818BB232B00667349 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				9D0BB87918BB232B00667349 /* en */,
				9DC4CE2418DAE03800DB2CB0 /* es */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		9DC4CE2E18DAF77300DB2CB0 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				9DC4CE3118DAF77700DB2CB0 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		C0ACB10219CF104F0057B571 /* LaunchScreen.xib */ = {
			isa = PBXVariantGroup;
			children = (
				C0ACB10319CF104F0057B571 /* Base */,
			);
			name = LaunchScreen.xib;
			sourceTree = "<group>";
		};
		C0B63BA81781FAB1008D3B64 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				C0B63BA91781FAB1008D3B64 /* en */,
				9DC4CE2218DAE03800DB2CB0 /* es */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		9D0BB88018BB232B00667349 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				FRAMEWORK_VERSION = A;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "";
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				INFOPLIST_FILE = "KeyboardManager/KeyboardManager-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SHARED_PRECOMPS_DIR = "";
				SKIP_INSTALL = YES;
				WRAPPER_EXTENSION = framework;
			};
			name = Debug;
		};
		9D0BB88118BB232B00667349 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				ENABLE_NS_ASSERTIONS = NO;
				FRAMEWORK_VERSION = A;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "";
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				INFOPLIST_FILE = "KeyboardManager/KeyboardManager-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SHARED_PRECOMPS_DIR = "";
				SKIP_INSTALL = YES;
				WRAPPER_EXTENSION = framework;
			};
			name = Release;
		};
		C0ACB11219CF10510057B571 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				INFOPLIST_FILE = "IQKeyboardManager Swift/Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				MTL_ENABLE_DEBUG_INFO = YES;
				OTHER_SWIFT_FLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				PROVISIONING_PROFILE = "";
				SWIFT_OBJC_BRIDGING_HEADER = "IQKeyboardManager Swift/IQKeyboardManger-Swift-Bridging-Header.h";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		C0ACB11319CF10510057B571 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				INFOPLIST_FILE = "IQKeyboardManager Swift/Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				MTL_ENABLE_DEBUG_INFO = NO;
				OTHER_SWIFT_FLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
				PROVISIONING_PROFILE = "";
				SWIFT_OBJC_BRIDGING_HEADER = "IQKeyboardManager Swift/IQKeyboardManger-Swift-Bridging-Header.h";
			};
			name = Release;
		};
		C0B63BB71781FAB1008D3B64 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
				MACOSX_DEPLOYMENT_TARGET = 10.10;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		C0B63BB81781FAB1008D3B64 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = YES;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
				MACOSX_DEPLOYMENT_TARGET = 10.10;
				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		C0B63BBA1781FAB1008D3B64 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "KeyboardTextFieldDemo/IQKeyboardManager-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = (
					"IQKEYBOARDMANAGER_DEBUG=1",
					"DEBUG=1",
				);
				INFOPLIST_FILE = "KeyboardTextFieldDemo/IQKeyboardManager-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = IQKeyboardManager;
				PROVISIONING_PROFILE = "";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		C0B63BBB1781FAB1008D3B64 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "KeyboardTextFieldDemo/IQKeyboardManager-Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "";
				INFOPLIST_FILE = "KeyboardTextFieldDemo/IQKeyboardManager-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = IQKeyboardManager;
				PROVISIONING_PROFILE = "";
				TARGETED_DEVICE_FAMILY = "1,2";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		9D0BB87F18BB232B00667349 /* Build configuration list for PBXNativeTarget "KeyboardManager" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9D0BB88018BB232B00667349 /* Debug */,
				9D0BB88118BB232B00667349 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C0ACB11119CF10510057B571 /* Build configuration list for PBXNativeTarget "IQKeyboardManager Swift" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C0ACB11219CF10510057B571 /* Debug */,
				C0ACB11319CF10510057B571 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C0B63B951781FAB0008D3B64 /* Build configuration list for PBXProject "IQKeyboardManager" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C0B63BB71781FAB1008D3B64 /* Debug */,
				C0B63BB81781FAB1008D3B64 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C0B63BB91781FAB1008D3B64 /* Build configuration list for PBXNativeTarget "IQKeyboardManager" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C0B63BBA1781FAB1008D3B64 /* Debug */,
				C0B63BBB1781FAB1008D3B64 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = C0B63B921781FAB0008D3B64 /* Project object */;
}
