diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..890383d
Binary files /dev/null and b/.DS_Store differ
diff --git a/Avatar/.DS_Store b/Avatar/.DS_Store
new file mode 100644
index 0000000..d56fe24
Binary files /dev/null and b/Avatar/.DS_Store differ
diff --git a/Avatar/App/.DS_Store b/Avatar/App/.DS_Store
new file mode 100644
index 0000000..de78fb0
Binary files /dev/null and b/Avatar/App/.DS_Store differ
diff --git a/Avatar/App/Avatar.entitlements b/Avatar/App/Avatar.entitlements
new file mode 100644
index 0000000..7db7d55
--- /dev/null
+++ b/Avatar/App/Avatar.entitlements
@@ -0,0 +1,44 @@
+
+
+
+
+ platform-application
+
+ com.apple.private.security.no-container
+
+ com.apple.private.skip-library-validation
+
+ get-task-allow
+
+ com.apple.security.iokit-user-client-class
+
+ AGXCommandQueue
+ AGXDevice
+ AGXDeviceUserClient
+ AGXSharedUserClient
+ AppleCredentialManagerUserClient
+ AppleJPEGDriverUserClient
+ ApplePPMUserClient
+ AppleSPUHIDDeviceUserClient
+ AppleSPUHIDDriverUserClient
+ IOAccelContext
+ IOAccelContext2
+ IOAccelDevice
+ IOAccelDevice2
+ IOAccelSharedUserClient
+ IOAccelSharedUserClient2
+ IOAccelSubmitter2
+ IOHIDEventServiceFastPathUserClient
+ IOHIDLibUserClient
+ IOMobileFramebufferUserClient
+ IOReportUserClient
+ IOSurfaceAcceleratorClient
+ IOSurfaceRootUserClient
+ RootDomainUserClient
+
+ com.apple.security.exception.files.home-relative-path.read-write
+
+ /var/mobile/Library/Preferences/com.TitanD3v.AvatarApp.plist
+
+
+
\ No newline at end of file
diff --git a/Avatar/App/Avatar.xcodeproj/project.pbxproj b/Avatar/App/Avatar.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..d523be1
--- /dev/null
+++ b/Avatar/App/Avatar.xcodeproj/project.pbxproj
@@ -0,0 +1,862 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 55;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 8415462527348E690085E3DD /* Emoji.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8415462427348E690085E3DD /* Emoji.plist */; };
+ 8415463C27348EC80085E3DD /* TDEmojiPickerCellHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415462727348EC80085E3DD /* TDEmojiPickerCellHeaderView.m */; };
+ 8415463D27348EC80085E3DD /* TDAvatarIdentityToolsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415462927348EC80085E3DD /* TDAvatarIdentityToolsCell.m */; };
+ 8415463E27348EC80085E3DD /* TDAvatarIdentityEmojiCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415462A27348EC80085E3DD /* TDAvatarIdentityEmojiCell.m */; };
+ 8415463F27348EC80085E3DD /* TDAvatarIdentityStickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415462E27348EC80085E3DD /* TDAvatarIdentityStickerCell.m */; };
+ 8415464027348EC80085E3DD /* TDEmojiPickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415463027348EC80085E3DD /* TDEmojiPickerCell.m */; };
+ 8415464127348EC80085E3DD /* TDAvatarIdentityPickerDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415463227348EC80085E3DD /* TDAvatarIdentityPickerDataSource.m */; };
+ 8415464227348EC80085E3DD /* TDEmojiPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415463327348EC80085E3DD /* TDEmojiPickerViewController.m */; };
+ 8415464327348EC80085E3DD /* TDAvatarIdentityPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415463527348EC80085E3DD /* TDAvatarIdentityPickerViewController.m */; };
+ 8415464427348EC80085E3DD /* TDAvatarIdentityCellHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415463627348EC80085E3DD /* TDAvatarIdentityCellHeaderView.m */; };
+ 8415464527348EC80085E3DD /* TDHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415463927348EC80085E3DD /* TDHeaderView.m */; };
+ 8415464827349C740085E3DD /* RecordingActionMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415464627349C740085E3DD /* RecordingActionMenuCell.m */; };
+ 8415464B27354EB30085E3DD /* RecordingButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415464A27354EB30085E3DD /* RecordingButton.m */; };
+ 8415464F273566D10085E3DD /* LibraryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415464E273566D10085E3DD /* LibraryViewController.m */; };
+ 84154652273568F80085E3DD /* LibraryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 84154650273568F80085E3DD /* LibraryCell.m */; };
+ 8415465527356B830085E3DD /* LibraryDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415465427356B830085E3DD /* LibraryDataSource.m */; };
+ 841546942735C6EE0085E3DD /* Stickers.plist in Resources */ = {isa = PBXBuildFile; fileRef = 841546932735C6EE0085E3DD /* Stickers.plist */; };
+ 841546A02735C7260085E3DD /* StickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 841546962735C7260085E3DD /* StickerView.m */; };
+ 841546A12735C7260085E3DD /* TDStickerPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 841546982735C7260085E3DD /* TDStickerPickerViewController.m */; };
+ 841546A22735C7260085E3DD /* TDStickerPickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 841546992735C7260085E3DD /* TDStickerPickerCell.m */; };
+ 841546A32735C7260085E3DD /* SingleHandGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415469A2735C7260085E3DD /* SingleHandGestureRecognizer.m */; };
+ 841546A42735C7260085E3DD /* TDStickerPickerCellHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8415469C2735C7260085E3DD /* TDStickerPickerCellHeaderView.m */; };
+ 841546A72735D5FB0085E3DD /* ARConfiguration+Overrides.m in Sources */ = {isa = PBXBuildFile; fileRef = 841546A62735D5FB0085E3DD /* ARConfiguration+Overrides.m */; };
+ 841546AC2735F3600085E3DD /* AvimojiViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 841546AB2735F3600085E3DD /* AvimojiViewController.m */; };
+ 841546AF2735F39C0085E3DD /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 841546AE2735F39C0085E3DD /* SettingsViewController.m */; };
+ 841546B32736C80D0085E3DD /* TutorialViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546B22736C80D0085E3DD /* TutorialViewController.swift */; };
+ 841546C12736C8A80085E3DD /* WhatsNewContentTitleFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546B62736C8A80085E3DD /* WhatsNewContentTitleFormat.swift */; };
+ 841546C22736C8A80085E3DD /* WhatsNewContentCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546B72736C8A80085E3DD /* WhatsNewContentCard.swift */; };
+ 841546C32736C8A80085E3DD /* WhatsNewContentTitle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546B82736C8A80085E3DD /* WhatsNewContentTitle.swift */; };
+ 841546C42736C8A80085E3DD /* WhatsNewContentBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546B92736C8A80085E3DD /* WhatsNewContentBase.swift */; };
+ 841546C52736C8A80085E3DD /* WhatsNewContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546BA2736C8A80085E3DD /* WhatsNewContent.swift */; };
+ 841546C62736C8A80085E3DD /* WhatsNewContentButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546BB2736C8A80085E3DD /* WhatsNewContentButton.swift */; };
+ 841546C72736C8A80085E3DD /* WhatsNewPrimaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546BD2736C8A80085E3DD /* WhatsNewPrimaryButton.swift */; };
+ 841546C82736C8A80085E3DD /* WhatsNewCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546BE2736C8A80085E3DD /* WhatsNewCardView.swift */; };
+ 841546C92736C8A80085E3DD /* WhatsNewCardsListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546BF2736C8A80085E3DD /* WhatsNewCardsListView.swift */; };
+ 841546CA2736C8A80085E3DD /* WhatsNewBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546C02736C8A80085E3DD /* WhatsNewBaseView.swift */; };
+ 841546CC2736C8CB0085E3DD /* Constraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841546CB2736C8CB0085E3DD /* Constraints.swift */; };
+ 841548BD2737FBBF0085E3DD /* RecordingOnboardingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 841548BC2737FBBF0085E3DD /* RecordingOnboardingViewController.m */; };
+ 843D1F73273946F700C2E0B7 /* DefaultMemojiViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 843D1F72273946F700C2E0B7 /* DefaultMemojiViewController.m */; };
+ 843D1F772739683C00C2E0B7 /* SocialCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 843D1F752739683C00C2E0B7 /* SocialCell.m */; };
+ 843D1F7A27396DC200C2E0B7 /* SwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 843D1F7927396DC200C2E0B7 /* SwitchCell.m */; };
+ 846BED012733456B00DC42D5 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED002733456B00DC42D5 /* AppDelegate.m */; };
+ 846BED042733456B00DC42D5 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED032733456B00DC42D5 /* SceneDelegate.m */; };
+ 846BED072733456B00DC42D5 /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED062733456B00DC42D5 /* HomeViewController.m */; };
+ 846BED0C2733456E00DC42D5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 846BED0B2733456E00DC42D5 /* Assets.xcassets */; };
+ 846BED0F2733456E00DC42D5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 846BED0D2733456E00DC42D5 /* LaunchScreen.storyboard */; };
+ 846BED122733456E00DC42D5 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED112733456E00DC42D5 /* main.m */; };
+ 846BED1B2733484000DC42D5 /* ConstraintExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED1A2733484000DC42D5 /* ConstraintExtension.m */; };
+ 846BED2927334B2000DC42D5 /* AvatarManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED2827334B2000DC42D5 /* AvatarManager.m */; };
+ 846BED3727334DFD00DC42D5 /* AnimojiPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED3627334DFD00DC42D5 /* AnimojiPickerViewController.m */; };
+ 846BED3A27334E1D00DC42D5 /* AnimojiPickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED3927334E1C00DC42D5 /* AnimojiPickerCell.m */; };
+ 846BED3D273352B500DC42D5 /* RecordingStudioViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED3C273352B500DC42D5 /* RecordingStudioViewController.m */; };
+ 846BED40273352EA00DC42D5 /* AvatarMotionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED3F273352EA00DC42D5 /* AvatarMotionView.m */; };
+ 846BED452733F86900DC42D5 /* AvatarKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846BED442733F86900DC42D5 /* AvatarKit.framework */; };
+ 846BED482733FA8C00DC42D5 /* RecordingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED472733FA8C00DC42D5 /* RecordingManager.m */; };
+ 846BED542734235B00DC42D5 /* AvatarVideoPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED532734235B00DC42D5 /* AvatarVideoPreviewViewController.m */; };
+ 846BED6027346AAF00DC42D5 /* Theme.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 846BED5F27346AAF00DC42D5 /* Theme.xcassets */; };
+ 846BED6627346E3D00DC42D5 /* UtilitiesView.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED6227346E3D00DC42D5 /* UtilitiesView.m */; };
+ 846BED6727346E3D00DC42D5 /* GridView.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED6327346E3D00DC42D5 /* GridView.m */; };
+ 846BED6A273475CB00DC42D5 /* HomeNavigationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED69273475CB00DC42D5 /* HomeNavigationViewController.m */; };
+ 846BED6D27348B7000DC42D5 /* SettingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 846BED6C27348B7000DC42D5 /* SettingManager.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 8415462427348E690085E3DD /* Emoji.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Emoji.plist; sourceTree = ""; };
+ 8415462727348EC80085E3DD /* TDEmojiPickerCellHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDEmojiPickerCellHeaderView.m; sourceTree = ""; };
+ 8415462827348EC80085E3DD /* TDAvatarIdentityPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAvatarIdentityPickerViewController.h; sourceTree = ""; };
+ 8415462927348EC80085E3DD /* TDAvatarIdentityToolsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAvatarIdentityToolsCell.m; sourceTree = ""; };
+ 8415462A27348EC80085E3DD /* TDAvatarIdentityEmojiCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAvatarIdentityEmojiCell.m; sourceTree = ""; };
+ 8415462B27348EC80085E3DD /* TDAvatarIdentityEmojiCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAvatarIdentityEmojiCell.h; sourceTree = ""; };
+ 8415462C27348EC80085E3DD /* TDAvatarIdentityToolsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAvatarIdentityToolsCell.h; sourceTree = ""; };
+ 8415462D27348EC80085E3DD /* TDAvatarIdentityStickerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAvatarIdentityStickerCell.h; sourceTree = ""; };
+ 8415462E27348EC80085E3DD /* TDAvatarIdentityStickerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAvatarIdentityStickerCell.m; sourceTree = ""; };
+ 8415462F27348EC80085E3DD /* TDEmojiPickerCellHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDEmojiPickerCellHeaderView.h; sourceTree = ""; };
+ 8415463027348EC80085E3DD /* TDEmojiPickerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDEmojiPickerCell.m; sourceTree = ""; };
+ 8415463127348EC80085E3DD /* TDEmojiPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDEmojiPickerViewController.h; sourceTree = ""; };
+ 8415463227348EC80085E3DD /* TDAvatarIdentityPickerDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAvatarIdentityPickerDataSource.m; sourceTree = ""; };
+ 8415463327348EC80085E3DD /* TDEmojiPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDEmojiPickerViewController.m; sourceTree = ""; };
+ 8415463427348EC80085E3DD /* TDEmojiPickerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDEmojiPickerCell.h; sourceTree = ""; };
+ 8415463527348EC80085E3DD /* TDAvatarIdentityPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAvatarIdentityPickerViewController.m; sourceTree = ""; };
+ 8415463627348EC80085E3DD /* TDAvatarIdentityCellHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDAvatarIdentityCellHeaderView.m; sourceTree = ""; };
+ 8415463727348EC80085E3DD /* TDAvatarIdentityPickerDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAvatarIdentityPickerDataSource.h; sourceTree = ""; };
+ 8415463827348EC80085E3DD /* TDHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDHeaderView.h; sourceTree = ""; };
+ 8415463927348EC80085E3DD /* TDHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDHeaderView.m; sourceTree = ""; };
+ 8415463A27348EC80085E3DD /* PrivateBlurEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrivateBlurEffect.h; sourceTree = ""; };
+ 8415463B27348EC80085E3DD /* TDAvatarIdentityCellHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDAvatarIdentityCellHeaderView.h; sourceTree = ""; };
+ 8415464627349C740085E3DD /* RecordingActionMenuCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordingActionMenuCell.m; sourceTree = ""; };
+ 8415464727349C740085E3DD /* RecordingActionMenuCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordingActionMenuCell.h; sourceTree = ""; };
+ 8415464927354EB30085E3DD /* RecordingButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordingButton.h; sourceTree = ""; };
+ 8415464A27354EB30085E3DD /* RecordingButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordingButton.m; sourceTree = ""; };
+ 8415464D273566D10085E3DD /* LibraryViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LibraryViewController.h; sourceTree = ""; };
+ 8415464E273566D10085E3DD /* LibraryViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LibraryViewController.m; sourceTree = ""; };
+ 84154650273568F80085E3DD /* LibraryCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LibraryCell.m; sourceTree = ""; };
+ 84154651273568F80085E3DD /* LibraryCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LibraryCell.h; sourceTree = ""; };
+ 8415465327356B830085E3DD /* LibraryDataSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LibraryDataSource.h; sourceTree = ""; };
+ 8415465427356B830085E3DD /* LibraryDataSource.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LibraryDataSource.m; sourceTree = ""; };
+ 841546932735C6EE0085E3DD /* Stickers.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Stickers.plist; sourceTree = ""; };
+ 841546962735C7260085E3DD /* StickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StickerView.m; sourceTree = ""; };
+ 841546972735C7260085E3DD /* TDStickerPickerCellHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDStickerPickerCellHeaderView.h; sourceTree = ""; };
+ 841546982735C7260085E3DD /* TDStickerPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDStickerPickerViewController.m; sourceTree = ""; };
+ 841546992735C7260085E3DD /* TDStickerPickerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDStickerPickerCell.m; sourceTree = ""; };
+ 8415469A2735C7260085E3DD /* SingleHandGestureRecognizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SingleHandGestureRecognizer.m; sourceTree = ""; };
+ 8415469B2735C7260085E3DD /* StickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StickerView.h; sourceTree = ""; };
+ 8415469C2735C7260085E3DD /* TDStickerPickerCellHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TDStickerPickerCellHeaderView.m; sourceTree = ""; };
+ 8415469D2735C7260085E3DD /* TDStickerPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDStickerPickerViewController.h; sourceTree = ""; };
+ 8415469E2735C7260085E3DD /* TDStickerPickerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TDStickerPickerCell.h; sourceTree = ""; };
+ 8415469F2735C7260085E3DD /* SingleHandGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SingleHandGestureRecognizer.h; sourceTree = ""; };
+ 841546A52735D5FB0085E3DD /* ARConfiguration+Overrides.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ARConfiguration+Overrides.h"; sourceTree = ""; };
+ 841546A62735D5FB0085E3DD /* ARConfiguration+Overrides.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ARConfiguration+Overrides.m"; sourceTree = ""; };
+ 841546AA2735F3600085E3DD /* AvimojiViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AvimojiViewController.h; sourceTree = ""; };
+ 841546AB2735F3600085E3DD /* AvimojiViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AvimojiViewController.m; sourceTree = ""; };
+ 841546AD2735F39C0085E3DD /* SettingsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = ""; };
+ 841546AE2735F39C0085E3DD /* SettingsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SettingsViewController.m; sourceTree = ""; };
+ 841546B12736C80D0085E3DD /* Avatar-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Avatar-Bridging-Header.h"; sourceTree = ""; };
+ 841546B22736C80D0085E3DD /* TutorialViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TutorialViewController.swift; sourceTree = ""; };
+ 841546B62736C8A80085E3DD /* WhatsNewContentTitleFormat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewContentTitleFormat.swift; sourceTree = ""; };
+ 841546B72736C8A80085E3DD /* WhatsNewContentCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewContentCard.swift; sourceTree = ""; };
+ 841546B82736C8A80085E3DD /* WhatsNewContentTitle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewContentTitle.swift; sourceTree = ""; };
+ 841546B92736C8A80085E3DD /* WhatsNewContentBase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewContentBase.swift; sourceTree = ""; };
+ 841546BA2736C8A80085E3DD /* WhatsNewContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewContent.swift; sourceTree = ""; };
+ 841546BB2736C8A80085E3DD /* WhatsNewContentButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewContentButton.swift; sourceTree = ""; };
+ 841546BD2736C8A80085E3DD /* WhatsNewPrimaryButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewPrimaryButton.swift; sourceTree = ""; };
+ 841546BE2736C8A80085E3DD /* WhatsNewCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewCardView.swift; sourceTree = ""; };
+ 841546BF2736C8A80085E3DD /* WhatsNewCardsListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewCardsListView.swift; sourceTree = ""; };
+ 841546C02736C8A80085E3DD /* WhatsNewBaseView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WhatsNewBaseView.swift; sourceTree = ""; };
+ 841546CB2736C8CB0085E3DD /* Constraints.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constraints.swift; sourceTree = ""; };
+ 841548BB2737FBBF0085E3DD /* RecordingOnboardingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecordingOnboardingViewController.h; sourceTree = ""; };
+ 841548BC2737FBBF0085E3DD /* RecordingOnboardingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RecordingOnboardingViewController.m; sourceTree = ""; };
+ 843D1F71273946F700C2E0B7 /* DefaultMemojiViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DefaultMemojiViewController.h; sourceTree = ""; };
+ 843D1F72273946F700C2E0B7 /* DefaultMemojiViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DefaultMemojiViewController.m; sourceTree = ""; };
+ 843D1F752739683C00C2E0B7 /* SocialCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SocialCell.m; sourceTree = ""; };
+ 843D1F762739683C00C2E0B7 /* SocialCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SocialCell.h; sourceTree = ""; };
+ 843D1F7827396DC200C2E0B7 /* SwitchCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwitchCell.h; sourceTree = ""; };
+ 843D1F7927396DC200C2E0B7 /* SwitchCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SwitchCell.m; sourceTree = ""; };
+ 846BECFC2733456B00DC42D5 /* Avatar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Avatar.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 846BECFF2733456B00DC42D5 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ 846BED002733456B00DC42D5 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 846BED022733456B00DC42D5 /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; };
+ 846BED032733456B00DC42D5 /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; };
+ 846BED052733456B00DC42D5 /* HomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = ""; };
+ 846BED062733456B00DC42D5 /* HomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = ""; };
+ 846BED0B2733456E00DC42D5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ 846BED0E2733456E00DC42D5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
+ 846BED102733456E00DC42D5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 846BED112733456E00DC42D5 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ 846BED192733484000DC42D5 /* ConstraintExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConstraintExtension.h; sourceTree = ""; };
+ 846BED1A2733484000DC42D5 /* ConstraintExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConstraintExtension.m; sourceTree = ""; };
+ 846BED2727334B2000DC42D5 /* AvatarManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AvatarManager.h; sourceTree = ""; };
+ 846BED2827334B2000DC42D5 /* AvatarManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AvatarManager.m; sourceTree = ""; };
+ 846BED2B27334C6700DC42D5 /* AVTAnimoji.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVTAnimoji.h; sourceTree = ""; };
+ 846BED2C27334C6700DC42D5 /* AVTAvatar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVTAvatar.h; sourceTree = ""; };
+ 846BED2E27334C6700DC42D5 /* AVTView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVTView.h; sourceTree = ""; };
+ 846BED2F27334C6700DC42D5 /* AVTRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVTRecordView.h; sourceTree = ""; };
+ 846BED3127334C6700DC42D5 /* AVTAvatarStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVTAvatarStore.h; sourceTree = ""; };
+ 846BED3227334C6700DC42D5 /* AVTAvatarLibraryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AVTAvatarLibraryViewController.h; sourceTree = ""; };
+ 846BED3527334DFD00DC42D5 /* AnimojiPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimojiPickerViewController.h; sourceTree = ""; };
+ 846BED3627334DFD00DC42D5 /* AnimojiPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimojiPickerViewController.m; sourceTree = ""; };
+ 846BED3827334E1C00DC42D5 /* AnimojiPickerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimojiPickerCell.h; sourceTree = ""; };
+ 846BED3927334E1C00DC42D5 /* AnimojiPickerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimojiPickerCell.m; sourceTree = ""; };
+ 846BED3B273352B500DC42D5 /* RecordingStudioViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordingStudioViewController.h; sourceTree = ""; };
+ 846BED3C273352B500DC42D5 /* RecordingStudioViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordingStudioViewController.m; sourceTree = ""; };
+ 846BED3E273352EA00DC42D5 /* AvatarMotionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AvatarMotionView.h; sourceTree = ""; };
+ 846BED3F273352EA00DC42D5 /* AvatarMotionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AvatarMotionView.m; sourceTree = ""; };
+ 846BED442733F86900DC42D5 /* AvatarKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AvatarKit.framework; sourceTree = ""; };
+ 846BED462733FA8C00DC42D5 /* RecordingManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordingManager.h; sourceTree = ""; };
+ 846BED472733FA8C00DC42D5 /* RecordingManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecordingManager.m; sourceTree = ""; };
+ 846BED522734235B00DC42D5 /* AvatarVideoPreviewViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AvatarVideoPreviewViewController.h; sourceTree = ""; };
+ 846BED532734235B00DC42D5 /* AvatarVideoPreviewViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AvatarVideoPreviewViewController.m; sourceTree = ""; };
+ 846BED5F27346AAF00DC42D5 /* Theme.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Theme.xcassets; sourceTree = ""; };
+ 846BED6227346E3D00DC42D5 /* UtilitiesView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UtilitiesView.m; sourceTree = ""; };
+ 846BED6327346E3D00DC42D5 /* GridView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GridView.m; sourceTree = ""; };
+ 846BED6427346E3D00DC42D5 /* GridView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GridView.h; sourceTree = ""; };
+ 846BED6527346E3D00DC42D5 /* UtilitiesView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UtilitiesView.h; sourceTree = ""; };
+ 846BED68273475CB00DC42D5 /* HomeNavigationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeNavigationViewController.h; sourceTree = ""; };
+ 846BED69273475CB00DC42D5 /* HomeNavigationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeNavigationViewController.m; sourceTree = ""; };
+ 846BED6B27348B7000DC42D5 /* SettingManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingManager.h; sourceTree = ""; };
+ 846BED6C27348B7000DC42D5 /* SettingManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingManager.m; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 846BECF92733456B00DC42D5 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 846BED452733F86900DC42D5 /* AvatarKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 8415462627348E900085E3DD /* AvatarPicker */ = {
+ isa = PBXGroup;
+ children = (
+ 8415463A27348EC80085E3DD /* PrivateBlurEffect.h */,
+ 8415463B27348EC80085E3DD /* TDAvatarIdentityCellHeaderView.h */,
+ 8415463627348EC80085E3DD /* TDAvatarIdentityCellHeaderView.m */,
+ 8415462B27348EC80085E3DD /* TDAvatarIdentityEmojiCell.h */,
+ 8415462A27348EC80085E3DD /* TDAvatarIdentityEmojiCell.m */,
+ 8415463727348EC80085E3DD /* TDAvatarIdentityPickerDataSource.h */,
+ 8415463227348EC80085E3DD /* TDAvatarIdentityPickerDataSource.m */,
+ 8415462827348EC80085E3DD /* TDAvatarIdentityPickerViewController.h */,
+ 8415463527348EC80085E3DD /* TDAvatarIdentityPickerViewController.m */,
+ 8415462D27348EC80085E3DD /* TDAvatarIdentityStickerCell.h */,
+ 8415462E27348EC80085E3DD /* TDAvatarIdentityStickerCell.m */,
+ 8415462C27348EC80085E3DD /* TDAvatarIdentityToolsCell.h */,
+ 8415462927348EC80085E3DD /* TDAvatarIdentityToolsCell.m */,
+ 8415463427348EC80085E3DD /* TDEmojiPickerCell.h */,
+ 8415463027348EC80085E3DD /* TDEmojiPickerCell.m */,
+ 8415462F27348EC80085E3DD /* TDEmojiPickerCellHeaderView.h */,
+ 8415462727348EC80085E3DD /* TDEmojiPickerCellHeaderView.m */,
+ 8415463127348EC80085E3DD /* TDEmojiPickerViewController.h */,
+ 8415463327348EC80085E3DD /* TDEmojiPickerViewController.m */,
+ 8415463827348EC80085E3DD /* TDHeaderView.h */,
+ 8415463927348EC80085E3DD /* TDHeaderView.m */,
+ );
+ path = AvatarPicker;
+ sourceTree = "";
+ };
+ 8415464C273566AC0085E3DD /* Library */ = {
+ isa = PBXGroup;
+ children = (
+ 8415464D273566D10085E3DD /* LibraryViewController.h */,
+ 8415464E273566D10085E3DD /* LibraryViewController.m */,
+ 8415465327356B830085E3DD /* LibraryDataSource.h */,
+ 8415465427356B830085E3DD /* LibraryDataSource.m */,
+ 84154651273568F80085E3DD /* LibraryCell.h */,
+ 84154650273568F80085E3DD /* LibraryCell.m */,
+ );
+ path = Library;
+ sourceTree = "";
+ };
+ 841546952735C6F50085E3DD /* StickerPicker */ = {
+ isa = PBXGroup;
+ children = (
+ 8415469F2735C7260085E3DD /* SingleHandGestureRecognizer.h */,
+ 8415469A2735C7260085E3DD /* SingleHandGestureRecognizer.m */,
+ 8415469B2735C7260085E3DD /* StickerView.h */,
+ 841546962735C7260085E3DD /* StickerView.m */,
+ 8415469E2735C7260085E3DD /* TDStickerPickerCell.h */,
+ 841546992735C7260085E3DD /* TDStickerPickerCell.m */,
+ 841546972735C7260085E3DD /* TDStickerPickerCellHeaderView.h */,
+ 8415469C2735C7260085E3DD /* TDStickerPickerCellHeaderView.m */,
+ 8415469D2735C7260085E3DD /* TDStickerPickerViewController.h */,
+ 841546982735C7260085E3DD /* TDStickerPickerViewController.m */,
+ );
+ path = StickerPicker;
+ sourceTree = "";
+ };
+ 841546A82735F33B0085E3DD /* Settings */ = {
+ isa = PBXGroup;
+ children = (
+ 841546AD2735F39C0085E3DD /* SettingsViewController.h */,
+ 841546AE2735F39C0085E3DD /* SettingsViewController.m */,
+ 843D1F762739683C00C2E0B7 /* SocialCell.h */,
+ 843D1F752739683C00C2E0B7 /* SocialCell.m */,
+ 843D1F7827396DC200C2E0B7 /* SwitchCell.h */,
+ 843D1F7927396DC200C2E0B7 /* SwitchCell.m */,
+ );
+ path = Settings;
+ sourceTree = "";
+ };
+ 841546A92735F3460085E3DD /* Avimoji */ = {
+ isa = PBXGroup;
+ children = (
+ 841546AA2735F3600085E3DD /* AvimojiViewController.h */,
+ 841546AB2735F3600085E3DD /* AvimojiViewController.m */,
+ );
+ path = Avimoji;
+ sourceTree = "";
+ };
+ 841546B02736C7DE0085E3DD /* Swift */ = {
+ isa = PBXGroup;
+ children = (
+ 841546B42736C8A80085E3DD /* What's New */,
+ 841546CB2736C8CB0085E3DD /* Constraints.swift */,
+ 841546B22736C80D0085E3DD /* TutorialViewController.swift */,
+ 841546B12736C80D0085E3DD /* Avatar-Bridging-Header.h */,
+ );
+ path = Swift;
+ sourceTree = "";
+ };
+ 841546B42736C8A80085E3DD /* What's New */ = {
+ isa = PBXGroup;
+ children = (
+ 841546B52736C8A80085E3DD /* Content */,
+ 841546BC2736C8A80085E3DD /* Views */,
+ );
+ path = "What's New";
+ sourceTree = "";
+ };
+ 841546B52736C8A80085E3DD /* Content */ = {
+ isa = PBXGroup;
+ children = (
+ 841546B62736C8A80085E3DD /* WhatsNewContentTitleFormat.swift */,
+ 841546B72736C8A80085E3DD /* WhatsNewContentCard.swift */,
+ 841546B82736C8A80085E3DD /* WhatsNewContentTitle.swift */,
+ 841546B92736C8A80085E3DD /* WhatsNewContentBase.swift */,
+ 841546BA2736C8A80085E3DD /* WhatsNewContent.swift */,
+ 841546BB2736C8A80085E3DD /* WhatsNewContentButton.swift */,
+ );
+ path = Content;
+ sourceTree = "";
+ };
+ 841546BC2736C8A80085E3DD /* Views */ = {
+ isa = PBXGroup;
+ children = (
+ 841546BD2736C8A80085E3DD /* WhatsNewPrimaryButton.swift */,
+ 841546BE2736C8A80085E3DD /* WhatsNewCardView.swift */,
+ 841546BF2736C8A80085E3DD /* WhatsNewCardsListView.swift */,
+ 841546C02736C8A80085E3DD /* WhatsNewBaseView.swift */,
+ );
+ path = Views;
+ sourceTree = "";
+ };
+ 843D1F742739475B00C2E0B7 /* Onboarding */ = {
+ isa = PBXGroup;
+ children = (
+ 843D1F71273946F700C2E0B7 /* DefaultMemojiViewController.h */,
+ 843D1F72273946F700C2E0B7 /* DefaultMemojiViewController.m */,
+ 841548BB2737FBBF0085E3DD /* RecordingOnboardingViewController.h */,
+ 841548BC2737FBBF0085E3DD /* RecordingOnboardingViewController.m */,
+ );
+ path = Onboarding;
+ sourceTree = "";
+ };
+ 846BECF32733456B00DC42D5 = {
+ isa = PBXGroup;
+ children = (
+ 846BECFE2733456B00DC42D5 /* Avatar */,
+ 846BECFD2733456B00DC42D5 /* Products */,
+ 846BED1C273348B500DC42D5 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ 846BECFD2733456B00DC42D5 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 846BECFC2733456B00DC42D5 /* Avatar.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 846BECFE2733456B00DC42D5 /* Avatar */ = {
+ isa = PBXGroup;
+ children = (
+ 841546B02736C7DE0085E3DD /* Swift */,
+ 846BED2627334B0900DC42D5 /* Manager */,
+ 846BED2A27334C6700DC42D5 /* AvatarKit */,
+ 846BED5A273444F500DC42D5 /* Extensions */,
+ 846BED6127346D9800DC42D5 /* CustomClasses */,
+ 8415462627348E900085E3DD /* AvatarPicker */,
+ 841546952735C6F50085E3DD /* StickerPicker */,
+ 846BED182733459A00DC42D5 /* Core */,
+ 846BED59273444DB00DC42D5 /* Home */,
+ 846BED5D27345D6400DC42D5 /* Animoji */,
+ 846BED5C27345D5900DC42D5 /* Recording */,
+ 8415464C273566AC0085E3DD /* Library */,
+ 846BED5B27344A3000DC42D5 /* Preview */,
+ 841546A92735F3460085E3DD /* Avimoji */,
+ 841546A82735F33B0085E3DD /* Settings */,
+ 843D1F742739475B00C2E0B7 /* Onboarding */,
+ 846BED0B2733456E00DC42D5 /* Assets.xcassets */,
+ 846BED5F27346AAF00DC42D5 /* Theme.xcassets */,
+ 846BED0D2733456E00DC42D5 /* LaunchScreen.storyboard */,
+ 846BED102733456E00DC42D5 /* Info.plist */,
+ 846BED112733456E00DC42D5 /* main.m */,
+ );
+ path = Avatar;
+ sourceTree = "";
+ };
+ 846BED182733459A00DC42D5 /* Core */ = {
+ isa = PBXGroup;
+ children = (
+ 841546932735C6EE0085E3DD /* Stickers.plist */,
+ 8415462427348E690085E3DD /* Emoji.plist */,
+ 846BECFF2733456B00DC42D5 /* AppDelegate.h */,
+ 846BED002733456B00DC42D5 /* AppDelegate.m */,
+ 846BED022733456B00DC42D5 /* SceneDelegate.h */,
+ 846BED032733456B00DC42D5 /* SceneDelegate.m */,
+ );
+ path = Core;
+ sourceTree = "";
+ };
+ 846BED1C273348B500DC42D5 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 846BED2627334B0900DC42D5 /* Manager */ = {
+ isa = PBXGroup;
+ children = (
+ 841546A52735D5FB0085E3DD /* ARConfiguration+Overrides.h */,
+ 841546A62735D5FB0085E3DD /* ARConfiguration+Overrides.m */,
+ 846BED462733FA8C00DC42D5 /* RecordingManager.h */,
+ 846BED472733FA8C00DC42D5 /* RecordingManager.m */,
+ 846BED2727334B2000DC42D5 /* AvatarManager.h */,
+ 846BED2827334B2000DC42D5 /* AvatarManager.m */,
+ 846BED6B27348B7000DC42D5 /* SettingManager.h */,
+ 846BED6C27348B7000DC42D5 /* SettingManager.m */,
+ );
+ path = Manager;
+ sourceTree = "";
+ };
+ 846BED2A27334C6700DC42D5 /* AvatarKit */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED442733F86900DC42D5 /* AvatarKit.framework */,
+ 846BED3E273352EA00DC42D5 /* AvatarMotionView.h */,
+ 846BED3F273352EA00DC42D5 /* AvatarMotionView.m */,
+ 846BED2B27334C6700DC42D5 /* AVTAnimoji.h */,
+ 846BED2C27334C6700DC42D5 /* AVTAvatar.h */,
+ 846BED2E27334C6700DC42D5 /* AVTView.h */,
+ 846BED2F27334C6700DC42D5 /* AVTRecordView.h */,
+ 846BED3127334C6700DC42D5 /* AVTAvatarStore.h */,
+ 846BED3227334C6700DC42D5 /* AVTAvatarLibraryViewController.h */,
+ );
+ path = AvatarKit;
+ sourceTree = "";
+ };
+ 846BED59273444DB00DC42D5 /* Home */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED052733456B00DC42D5 /* HomeViewController.h */,
+ 846BED062733456B00DC42D5 /* HomeViewController.m */,
+ );
+ path = Home;
+ sourceTree = "";
+ };
+ 846BED5A273444F500DC42D5 /* Extensions */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED192733484000DC42D5 /* ConstraintExtension.h */,
+ 846BED1A2733484000DC42D5 /* ConstraintExtension.m */,
+ );
+ path = Extensions;
+ sourceTree = "";
+ };
+ 846BED5B27344A3000DC42D5 /* Preview */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED522734235B00DC42D5 /* AvatarVideoPreviewViewController.h */,
+ 846BED532734235B00DC42D5 /* AvatarVideoPreviewViewController.m */,
+ );
+ path = Preview;
+ sourceTree = "";
+ };
+ 846BED5C27345D5900DC42D5 /* Recording */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED3B273352B500DC42D5 /* RecordingStudioViewController.h */,
+ 846BED3C273352B500DC42D5 /* RecordingStudioViewController.m */,
+ 8415464727349C740085E3DD /* RecordingActionMenuCell.h */,
+ 8415464627349C740085E3DD /* RecordingActionMenuCell.m */,
+ );
+ path = Recording;
+ sourceTree = "";
+ };
+ 846BED5D27345D6400DC42D5 /* Animoji */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED3527334DFD00DC42D5 /* AnimojiPickerViewController.h */,
+ 846BED3627334DFD00DC42D5 /* AnimojiPickerViewController.m */,
+ 846BED3827334E1C00DC42D5 /* AnimojiPickerCell.h */,
+ 846BED3927334E1C00DC42D5 /* AnimojiPickerCell.m */,
+ );
+ path = Animoji;
+ sourceTree = "";
+ };
+ 846BED6127346D9800DC42D5 /* CustomClasses */ = {
+ isa = PBXGroup;
+ children = (
+ 846BED68273475CB00DC42D5 /* HomeNavigationViewController.h */,
+ 846BED69273475CB00DC42D5 /* HomeNavigationViewController.m */,
+ 846BED6427346E3D00DC42D5 /* GridView.h */,
+ 846BED6327346E3D00DC42D5 /* GridView.m */,
+ 846BED6527346E3D00DC42D5 /* UtilitiesView.h */,
+ 846BED6227346E3D00DC42D5 /* UtilitiesView.m */,
+ 8415464927354EB30085E3DD /* RecordingButton.h */,
+ 8415464A27354EB30085E3DD /* RecordingButton.m */,
+ );
+ path = CustomClasses;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 846BECFB2733456B00DC42D5 /* Avatar */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 846BED152733456E00DC42D5 /* Build configuration list for PBXNativeTarget "Avatar" */;
+ buildPhases = (
+ 846BECF82733456B00DC42D5 /* Sources */,
+ 846BECF92733456B00DC42D5 /* Frameworks */,
+ 846BECFA2733456B00DC42D5 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Avatar;
+ productName = Avatar;
+ productReference = 846BECFC2733456B00DC42D5 /* Avatar.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 846BECF42733456B00DC42D5 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ BuildIndependentTargetsInParallel = 1;
+ LastUpgradeCheck = 1300;
+ TargetAttributes = {
+ 846BECFB2733456B00DC42D5 = {
+ CreatedOnToolsVersion = 13.0;
+ LastSwiftMigration = 1300;
+ };
+ };
+ };
+ buildConfigurationList = 846BECF72733456B00DC42D5 /* Build configuration list for PBXProject "Avatar" */;
+ compatibilityVersion = "Xcode 13.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 846BECF32733456B00DC42D5;
+ productRefGroup = 846BECFD2733456B00DC42D5 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 846BECFB2733456B00DC42D5 /* Avatar */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 846BECFA2733456B00DC42D5 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 841546942735C6EE0085E3DD /* Stickers.plist in Resources */,
+ 846BED0F2733456E00DC42D5 /* LaunchScreen.storyboard in Resources */,
+ 8415462527348E690085E3DD /* Emoji.plist in Resources */,
+ 846BED6027346AAF00DC42D5 /* Theme.xcassets in Resources */,
+ 846BED0C2733456E00DC42D5 /* Assets.xcassets in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 846BECF82733456B00DC42D5 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8415465527356B830085E3DD /* LibraryDataSource.m in Sources */,
+ 8415463C27348EC80085E3DD /* TDEmojiPickerCellHeaderView.m in Sources */,
+ 841546B32736C80D0085E3DD /* TutorialViewController.swift in Sources */,
+ 846BED3727334DFD00DC42D5 /* AnimojiPickerViewController.m in Sources */,
+ 841546C62736C8A80085E3DD /* WhatsNewContentButton.swift in Sources */,
+ 846BED2927334B2000DC42D5 /* AvatarManager.m in Sources */,
+ 8415464427348EC80085E3DD /* TDAvatarIdentityCellHeaderView.m in Sources */,
+ 841546C52736C8A80085E3DD /* WhatsNewContent.swift in Sources */,
+ 846BED6A273475CB00DC42D5 /* HomeNavigationViewController.m in Sources */,
+ 841546C12736C8A80085E3DD /* WhatsNewContentTitleFormat.swift in Sources */,
+ 846BED6727346E3D00DC42D5 /* GridView.m in Sources */,
+ 843D1F73273946F700C2E0B7 /* DefaultMemojiViewController.m in Sources */,
+ 846BED6D27348B7000DC42D5 /* SettingManager.m in Sources */,
+ 8415464B27354EB30085E3DD /* RecordingButton.m in Sources */,
+ 8415463F27348EC80085E3DD /* TDAvatarIdentityStickerCell.m in Sources */,
+ 841546CA2736C8A80085E3DD /* WhatsNewBaseView.swift in Sources */,
+ 8415464227348EC80085E3DD /* TDEmojiPickerViewController.m in Sources */,
+ 846BED482733FA8C00DC42D5 /* RecordingManager.m in Sources */,
+ 841546AF2735F39C0085E3DD /* SettingsViewController.m in Sources */,
+ 846BED542734235B00DC42D5 /* AvatarVideoPreviewViewController.m in Sources */,
+ 841546CC2736C8CB0085E3DD /* Constraints.swift in Sources */,
+ 841546A22735C7260085E3DD /* TDStickerPickerCell.m in Sources */,
+ 841546AC2735F3600085E3DD /* AvimojiViewController.m in Sources */,
+ 84154652273568F80085E3DD /* LibraryCell.m in Sources */,
+ 841546C92736C8A80085E3DD /* WhatsNewCardsListView.swift in Sources */,
+ 841546C72736C8A80085E3DD /* WhatsNewPrimaryButton.swift in Sources */,
+ 843D1F772739683C00C2E0B7 /* SocialCell.m in Sources */,
+ 8415464F273566D10085E3DD /* LibraryViewController.m in Sources */,
+ 841546C82736C8A80085E3DD /* WhatsNewCardView.swift in Sources */,
+ 8415464127348EC80085E3DD /* TDAvatarIdentityPickerDataSource.m in Sources */,
+ 846BED3A27334E1D00DC42D5 /* AnimojiPickerCell.m in Sources */,
+ 846BED072733456B00DC42D5 /* HomeViewController.m in Sources */,
+ 841546A72735D5FB0085E3DD /* ARConfiguration+Overrides.m in Sources */,
+ 846BED6627346E3D00DC42D5 /* UtilitiesView.m in Sources */,
+ 846BED40273352EA00DC42D5 /* AvatarMotionView.m in Sources */,
+ 8415464327348EC80085E3DD /* TDAvatarIdentityPickerViewController.m in Sources */,
+ 8415464027348EC80085E3DD /* TDEmojiPickerCell.m in Sources */,
+ 843D1F7A27396DC200C2E0B7 /* SwitchCell.m in Sources */,
+ 841546A12735C7260085E3DD /* TDStickerPickerViewController.m in Sources */,
+ 846BED012733456B00DC42D5 /* AppDelegate.m in Sources */,
+ 841548BD2737FBBF0085E3DD /* RecordingOnboardingViewController.m in Sources */,
+ 846BED122733456E00DC42D5 /* main.m in Sources */,
+ 841546A02735C7260085E3DD /* StickerView.m in Sources */,
+ 841546C32736C8A80085E3DD /* WhatsNewContentTitle.swift in Sources */,
+ 8415463E27348EC80085E3DD /* TDAvatarIdentityEmojiCell.m in Sources */,
+ 841546A32735C7260085E3DD /* SingleHandGestureRecognizer.m in Sources */,
+ 8415464827349C740085E3DD /* RecordingActionMenuCell.m in Sources */,
+ 846BED1B2733484000DC42D5 /* ConstraintExtension.m in Sources */,
+ 846BED042733456B00DC42D5 /* SceneDelegate.m in Sources */,
+ 8415464527348EC80085E3DD /* TDHeaderView.m in Sources */,
+ 841546C22736C8A80085E3DD /* WhatsNewContentCard.swift in Sources */,
+ 841546A42735C7260085E3DD /* TDStickerPickerCellHeaderView.m in Sources */,
+ 8415463D27348EC80085E3DD /* TDAvatarIdentityToolsCell.m in Sources */,
+ 846BED3D273352B500DC42D5 /* RecordingStudioViewController.m in Sources */,
+ 841546C42736C8A80085E3DD /* WhatsNewContentBase.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 846BED0D2733456E00DC42D5 /* LaunchScreen.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 846BED0E2733456E00DC42D5 /* Base */,
+ );
+ name = LaunchScreen.storyboard;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 846BED132733456E00DC42D5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 846BED142733456E00DC42D5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 846BED162733456E00DC42D5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEVELOPMENT_TEAM = "";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/Avatar",
+ "$(PROJECT_DIR)/Avatar/Manager/AvatarKit",
+ "$(PROJECT_DIR)/Avatar/AvatarKit",
+ );
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = Avatar/Info.plist;
+ INFOPLIST_KEY_NSCameraUsageDescription = "I need to access your camera to capture your facial expressions";
+ INFOPLIST_KEY_NSMicrophoneUsageDescription = "I need access to the microphone to record audio";
+ INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "I need access to your photo library to save your video";
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+ INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = com.titand3v.Avatar;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_OBJC_BRIDGING_HEADER = "Avatar/Swift/Avatar-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
+ };
+ name = Debug;
+ };
+ 846BED172733456E00DC42D5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEVELOPMENT_TEAM = "";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/Avatar",
+ "$(PROJECT_DIR)/Avatar/Manager/AvatarKit",
+ "$(PROJECT_DIR)/Avatar/AvatarKit",
+ );
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = Avatar/Info.plist;
+ INFOPLIST_KEY_NSCameraUsageDescription = "I need to access your camera to capture your facial expressions";
+ INFOPLIST_KEY_NSMicrophoneUsageDescription = "I need access to the microphone to record audio";
+ INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "I need access to your photo library to save your video";
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+ INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 14.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = com.titand3v.Avatar;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_OBJC_BRIDGING_HEADER = "Avatar/Swift/Avatar-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 846BECF72733456B00DC42D5 /* Build configuration list for PBXProject "Avatar" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 846BED132733456E00DC42D5 /* Debug */,
+ 846BED142733456E00DC42D5 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 846BED152733456E00DC42D5 /* Build configuration list for PBXNativeTarget "Avatar" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 846BED162733456E00DC42D5 /* Debug */,
+ 846BED172733456E00DC42D5 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 846BECF42733456B00DC42D5 /* Project object */;
+}
diff --git a/Avatar/App/Avatar.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Avatar/App/Avatar.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/Avatar/App/Avatar.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/Avatar/App/Avatar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Avatar/App/Avatar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/Avatar/App/Avatar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/Avatar/App/Avatar.xcodeproj/project.xcworkspace/xcuserdata/Prysm.xcuserdatad/UserInterfaceState.xcuserstate b/Avatar/App/Avatar.xcodeproj/project.xcworkspace/xcuserdata/Prysm.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..b628e2e
Binary files /dev/null and b/Avatar/App/Avatar.xcodeproj/project.xcworkspace/xcuserdata/Prysm.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Avatar/App/Avatar.xcodeproj/xcuserdata/Prysm.xcuserdatad/xcschemes/xcschememanagement.plist b/Avatar/App/Avatar.xcodeproj/xcuserdata/Prysm.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..2d14bd4
--- /dev/null
+++ b/Avatar/App/Avatar.xcodeproj/xcuserdata/Prysm.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,14 @@
+
+
+
+
+ SchemeUserState
+
+ Avatar.xcscheme_^#shared#^_
+
+ orderHint
+ 0
+
+
+
+
diff --git a/Avatar/App/Avatar/Animoji/AnimojiPickerCell.h b/Avatar/App/Avatar/Animoji/AnimojiPickerCell.h
new file mode 100644
index 0000000..c146123
--- /dev/null
+++ b/Avatar/App/Avatar/Animoji/AnimojiPickerCell.h
@@ -0,0 +1,7 @@
+@import UIKit;
+#import "AVTAnimoji.h"
+
+@interface AnimojiPickerCell : UICollectionViewCell
+@property (nonatomic, strong) UIImageView *puppetImageView;
+@property (nonatomic, copy) NSString *puppetName;
+@end
diff --git a/Avatar/App/Avatar/Animoji/AnimojiPickerCell.m b/Avatar/App/Avatar/Animoji/AnimojiPickerCell.m
new file mode 100644
index 0000000..6798018
--- /dev/null
+++ b/Avatar/App/Avatar/Animoji/AnimojiPickerCell.m
@@ -0,0 +1,38 @@
+#import "AnimojiPickerCell.h"
+
+
+@implementation AnimojiPickerCell
+
+- (void)willMoveToSuperview:(UIView *)newSuperview {
+ [super willMoveToSuperview:newSuperview];
+
+ [self layoutImageView];
+}
+
+
+- (void)layoutImageView {
+
+ if (self.puppetImageView) return;
+
+ self.puppetImageView = [UIImageView new];
+ self.puppetImageView.contentMode = UIViewContentModeScaleAspectFit;
+ self.puppetImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+ self.puppetImageView.frame = self.contentView.bounds;
+ [self.contentView addSubview:self.puppetImageView];
+
+ [self updateImage];
+}
+
+
+- (void)setPuppetName:(NSString *)puppetName {
+ _puppetName = [puppetName copy];
+ [self updateImage];
+}
+
+
+- (void)updateImage {
+ if (!_puppetName.length) return;
+ self.puppetImageView.image = [ASAnimoji thumbnailForAnimojiNamed:_puppetName options:nil];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Animoji/AnimojiPickerViewController.h b/Avatar/App/Avatar/Animoji/AnimojiPickerViewController.h
new file mode 100644
index 0000000..30313ff
--- /dev/null
+++ b/Avatar/App/Avatar/Animoji/AnimojiPickerViewController.h
@@ -0,0 +1,17 @@
+#import
+#import "AVTAnimoji.h"
+#import "AnimojiPickerCell.h"
+
+
+@protocol AnimojiPickerDelegate
+- (void)didSelectAnimojiWithName:(NSString *)animojiName;
+@end
+
+
+@interface AnimojiPickerViewController : UIViewController
+@property (nonatomic, weak) id delegate;
+@property (nonatomic, assign) CGFloat referenceHeight;
+-(void)selectPuppetWithName:(NSString *)puppetName;
+@property (nonatomic, strong) UICollectionViewFlowLayout *flowLayout;
+@property (nonatomic, strong) UICollectionView *collectionView;
+@end
diff --git a/Avatar/App/Avatar/Animoji/AnimojiPickerViewController.m b/Avatar/App/Avatar/Animoji/AnimojiPickerViewController.m
new file mode 100644
index 0000000..f05aa97
--- /dev/null
+++ b/Avatar/App/Avatar/Animoji/AnimojiPickerViewController.m
@@ -0,0 +1,94 @@
+#import "AnimojiPickerViewController.h"
+
+@interface AnimojiPickerViewController ()
+@property (nonatomic, copy) NSArray *puppetNames;
+@end
+
+
+@implementation AnimojiPickerViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+ self.puppetNames = [ASAnimoji puppetNames];
+
+ [self layoutCollectionView];
+}
+
+
+- (void)layoutCollectionView {
+
+ self.flowLayout = [self makeFlowLayout];
+ self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:self.flowLayout];
+ self.collectionView.showsVerticalScrollIndicator = NO;
+ self.collectionView.showsHorizontalScrollIndicator = NO;
+ self.collectionView.backgroundColor = UIColor.clearColor;
+ self.collectionView.backgroundView = nil;
+ self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+ self.collectionView.frame = self.view.bounds;
+ [self.collectionView registerClass:[AnimojiPickerCell class] forCellWithReuseIdentifier:@"AnimojiCell"];
+ [self.view addSubview:self.collectionView];
+
+ self.collectionView.delegate = self;
+ self.collectionView.dataSource = self;
+}
+
+
+- (UICollectionViewFlowLayout *)makeFlowLayout {
+
+ UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout new];
+ layout.scrollDirection = UICollectionViewScrollDirectionVertical;
+
+ CGFloat itemSize;
+ CGFloat padding = 28;
+ CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
+ CGFloat puppetsPerLine = 3;
+
+ itemSize = (screenWidth / puppetsPerLine) - (padding * puppetsPerLine) + (padding * 2);
+
+ layout.sectionInset = UIEdgeInsetsMake(padding, padding, padding, padding);
+ layout.itemSize = CGSizeMake(itemSize, itemSize);
+
+ return layout;
+}
+
+
+- (void)setPuppetNames:(NSArray *)puppetNames {
+ _puppetNames = [puppetNames copy];
+ [self.collectionView reloadData];
+}
+
+
+- (void)selectPuppetWithName:(NSString *)puppetName {
+ if (![self.puppetNames containsObject:puppetName]) return;
+ NSUInteger idx = [self.puppetNames indexOfObject:puppetName];
+ [self.collectionView selectItemAtIndexPath:[NSIndexPath indexPathForItem:idx inSection:0] animated:NO scrollPosition:UICollectionViewScrollPositionCenteredHorizontally];
+}
+
+
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
+ return 1;
+}
+
+
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+ return self.puppetNames.count;
+}
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
+ AnimojiPickerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"AnimojiCell" forIndexPath:indexPath];
+
+ cell.puppetName = self.puppetNames[indexPath.item];
+
+ return cell;
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+ NSString *animoji = self.puppetNames[indexPath.item];
+ [self.delegate didSelectAnimojiWithName:animoji];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Assets.xcassets/AccentColor.colorset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 0000000..eb87897
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,11 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..c83c82b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,100 @@
+{
+ "images" : [
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "icon-120.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "icon-180.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "1x",
+ "size" : "76x76"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "76x76"
+ },
+ {
+ "idiom" : "ipad",
+ "scale" : "2x",
+ "size" : "83.5x83.5"
+ },
+ {
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/icon-120.png b/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/icon-120.png
new file mode 100644
index 0000000..8c75455
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/icon-120.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/icon-180.png b/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/icon-180.png
new file mode 100644
index 0000000..a6f64c4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/AppIcon.appiconset/icon-180.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Onboarding/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Onboarding/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Onboarding/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Onboarding/recording-tutorial.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Onboarding/recording-tutorial.imageset/Contents.json
new file mode 100644
index 0000000..eacdbbe
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Onboarding/recording-tutorial.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "recording-tutorial.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Onboarding/recording-tutorial.imageset/recording-tutorial.png b/Avatar/App/Avatar/Assets.xcassets/Onboarding/recording-tutorial.imageset/recording-tutorial.png
new file mode 100644
index 0000000..17bb67e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Onboarding/recording-tutorial.imageset/recording-tutorial.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Social/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Social/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/discord.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Social/discord.imageset/Contents.json
new file mode 100644
index 0000000..5411b23
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Social/discord.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "discord.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/discord.imageset/discord.png b/Avatar/App/Avatar/Assets.xcassets/Social/discord.imageset/discord.png
new file mode 100644
index 0000000..4af26f4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Social/discord.imageset/discord.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/paypal.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Social/paypal.imageset/Contents.json
new file mode 100644
index 0000000..c659efb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Social/paypal.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "paypal.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/paypal.imageset/paypal.png b/Avatar/App/Avatar/Assets.xcassets/Social/paypal.imageset/paypal.png
new file mode 100644
index 0000000..a4bc7f5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Social/paypal.imageset/paypal.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/twitter.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Social/twitter.imageset/Contents.json
new file mode 100644
index 0000000..2c808b8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Social/twitter.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "twitter.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Social/twitter.imageset/twitter.png b/Avatar/App/Avatar/Assets.xcassets/Social/twitter.imageset/twitter.png
new file mode 100644
index 0000000..7f96314
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Social/twitter.imageset/twitter.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/Contents.json
new file mode 100644
index 0000000..b3a1d25
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/Contents.json
@@ -0,0 +1,32 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_delete@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "btn_delete@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ },
+ {
+ "filename" : "btn_delete~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_delete@2x~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@2x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@2x.png
new file mode 100644
index 0000000..dfbd123
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@2x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@2x~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@2x~ipad.png
new file mode 100644
index 0000000..c6d90e5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@2x~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@3x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@3x.png
new file mode 100644
index 0000000..900ddd1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete@3x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete~ipad.png
new file mode 100644
index 0000000..843ccec
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_delete.imageset/btn_delete~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/Contents.json
new file mode 100644
index 0000000..27c0493
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/Contents.json
@@ -0,0 +1,32 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_flip@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "btn_flip@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ },
+ {
+ "filename" : "btn_flip~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_flip@2x~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@2x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@2x.png
new file mode 100644
index 0000000..008e5e4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@2x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@2x~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@2x~ipad.png
new file mode 100644
index 0000000..47bd407
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@2x~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@3x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@3x.png
new file mode 100644
index 0000000..236c3a1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip@3x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip~ipad.png
new file mode 100644
index 0000000..e0e7444
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_flip.imageset/btn_flip~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/Contents.json
new file mode 100644
index 0000000..62f2c00
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/Contents.json
@@ -0,0 +1,32 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_resize@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "btn_resize@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ },
+ {
+ "filename" : "btn_resize~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_resize@2x~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@2x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@2x.png
new file mode 100644
index 0000000..98b5d99
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@2x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@2x~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@2x~ipad.png
new file mode 100644
index 0000000..890fe73
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@2x~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@3x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@3x.png
new file mode 100644
index 0000000..a1f2595
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize@3x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize~ipad.png
new file mode 100644
index 0000000..a9f729a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_resize.imageset/btn_resize~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/Contents.json
new file mode 100644
index 0000000..2c137c5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/Contents.json
@@ -0,0 +1,32 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_smile@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "btn_smile@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ },
+ {
+ "filename" : "btn_smile~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "btn_smile@2x~ipad.png",
+ "idiom" : "ipad",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@2x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@2x.png
new file mode 100644
index 0000000..7b46d5e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@2x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@2x~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@2x~ipad.png
new file mode 100644
index 0000000..8a1461c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@2x~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@3x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@3x.png
new file mode 100644
index 0000000..6bef98c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile@3x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile~ipad.png b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile~ipad.png
new file mode 100644
index 0000000..f5791a1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers Action/btn_smile.imageset/btn_smile~ipad.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_000.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_000.imageset/Contents.json
new file mode 100644
index 0000000..89a8b35
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_000.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_000.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_000.imageset/icons_000.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_000.imageset/icons_000.png
new file mode 100644
index 0000000..de60131
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_000.imageset/icons_000.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_001.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_001.imageset/Contents.json
new file mode 100644
index 0000000..0410544
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_001.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_001.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_001.imageset/icons_001.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_001.imageset/icons_001.png
new file mode 100644
index 0000000..2434a92
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_001.imageset/icons_001.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_002.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_002.imageset/Contents.json
new file mode 100644
index 0000000..865acc8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_002.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_002.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_002.imageset/icons_002.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_002.imageset/icons_002.png
new file mode 100644
index 0000000..7a4efe9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_002.imageset/icons_002.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_003.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_003.imageset/Contents.json
new file mode 100644
index 0000000..92dc408
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_003.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_003.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_003.imageset/icons_003.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_003.imageset/icons_003.png
new file mode 100644
index 0000000..beedb67
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_003.imageset/icons_003.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_004.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_004.imageset/Contents.json
new file mode 100644
index 0000000..183e561
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_004.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_004.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_004.imageset/icons_004.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_004.imageset/icons_004.png
new file mode 100644
index 0000000..8eb0407
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_004.imageset/icons_004.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_005.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_005.imageset/Contents.json
new file mode 100644
index 0000000..85b90d0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_005.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_005.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_005.imageset/icons_005.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_005.imageset/icons_005.png
new file mode 100644
index 0000000..fd2b733
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_005.imageset/icons_005.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_006.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_006.imageset/Contents.json
new file mode 100644
index 0000000..15890f9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_006.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_006.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_006.imageset/icons_006.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_006.imageset/icons_006.png
new file mode 100644
index 0000000..84f1e30
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_006.imageset/icons_006.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_007.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_007.imageset/Contents.json
new file mode 100644
index 0000000..d7e55aa
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_007.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_007.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_007.imageset/icons_007.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_007.imageset/icons_007.png
new file mode 100644
index 0000000..5b6f1b8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_007.imageset/icons_007.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_008.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_008.imageset/Contents.json
new file mode 100644
index 0000000..5311ac9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_008.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_008.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_008.imageset/icons_008.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_008.imageset/icons_008.png
new file mode 100644
index 0000000..3cf6e1f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_008.imageset/icons_008.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_009.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_009.imageset/Contents.json
new file mode 100644
index 0000000..2ba33ad
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_009.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_009.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_009.imageset/icons_009.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_009.imageset/icons_009.png
new file mode 100644
index 0000000..d1ef2c0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_009.imageset/icons_009.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_010.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_010.imageset/Contents.json
new file mode 100644
index 0000000..dbcc9f8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_010.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_010.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_010.imageset/icons_010.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_010.imageset/icons_010.png
new file mode 100644
index 0000000..b962671
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_010.imageset/icons_010.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_011.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_011.imageset/Contents.json
new file mode 100644
index 0000000..d2cff23
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_011.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_011.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_011.imageset/icons_011.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_011.imageset/icons_011.png
new file mode 100644
index 0000000..835d3eb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_011.imageset/icons_011.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_012.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_012.imageset/Contents.json
new file mode 100644
index 0000000..c1f0728
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_012.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_012.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_012.imageset/icons_012.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_012.imageset/icons_012.png
new file mode 100644
index 0000000..84cc52e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_012.imageset/icons_012.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_013.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_013.imageset/Contents.json
new file mode 100644
index 0000000..0a43390
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_013.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_013.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_013.imageset/icons_013.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_013.imageset/icons_013.png
new file mode 100644
index 0000000..24c002c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_013.imageset/icons_013.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_014.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_014.imageset/Contents.json
new file mode 100644
index 0000000..1bb945f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_014.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_014.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_014.imageset/icons_014.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_014.imageset/icons_014.png
new file mode 100644
index 0000000..44ed734
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_014.imageset/icons_014.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_015.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_015.imageset/Contents.json
new file mode 100644
index 0000000..8d345da
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_015.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_015.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_015.imageset/icons_015.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_015.imageset/icons_015.png
new file mode 100644
index 0000000..8978bb3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_015.imageset/icons_015.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_016.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_016.imageset/Contents.json
new file mode 100644
index 0000000..d8b6519
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_016.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_016.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_016.imageset/icons_016.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_016.imageset/icons_016.png
new file mode 100644
index 0000000..6a0f1e5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_016.imageset/icons_016.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_017.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_017.imageset/Contents.json
new file mode 100644
index 0000000..5e9287f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_017.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_017.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_017.imageset/icons_017.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_017.imageset/icons_017.png
new file mode 100644
index 0000000..fd93322
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_017.imageset/icons_017.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_018.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_018.imageset/Contents.json
new file mode 100644
index 0000000..5bbdf23
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_018.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_018.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_018.imageset/icons_018.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_018.imageset/icons_018.png
new file mode 100644
index 0000000..7ed31bf
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_018.imageset/icons_018.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_019.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_019.imageset/Contents.json
new file mode 100644
index 0000000..95a28e8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_019.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_019.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_019.imageset/icons_019.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_019.imageset/icons_019.png
new file mode 100644
index 0000000..dc21510
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_019.imageset/icons_019.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_020.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_020.imageset/Contents.json
new file mode 100644
index 0000000..935f1c7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_020.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_020.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_020.imageset/icons_020.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_020.imageset/icons_020.png
new file mode 100644
index 0000000..42097b6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_020.imageset/icons_020.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_021.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_021.imageset/Contents.json
new file mode 100644
index 0000000..bff38c5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_021.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_021.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_021.imageset/icons_021.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_021.imageset/icons_021.png
new file mode 100644
index 0000000..c5fd5ff
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_021.imageset/icons_021.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_022.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_022.imageset/Contents.json
new file mode 100644
index 0000000..b9f7868
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_022.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_022.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_022.imageset/icons_022.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_022.imageset/icons_022.png
new file mode 100644
index 0000000..c264e21
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_022.imageset/icons_022.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_023.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_023.imageset/Contents.json
new file mode 100644
index 0000000..421657e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_023.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_023.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_023.imageset/icons_023.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_023.imageset/icons_023.png
new file mode 100644
index 0000000..3086247
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_023.imageset/icons_023.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_024.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_024.imageset/Contents.json
new file mode 100644
index 0000000..e1f351c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_024.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_024.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_024.imageset/icons_024.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_024.imageset/icons_024.png
new file mode 100644
index 0000000..03971e8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_024.imageset/icons_024.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_025.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_025.imageset/Contents.json
new file mode 100644
index 0000000..99507b7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_025.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_025.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_025.imageset/icons_025.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_025.imageset/icons_025.png
new file mode 100644
index 0000000..9051490
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_025.imageset/icons_025.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_026.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_026.imageset/Contents.json
new file mode 100644
index 0000000..1f2ec9a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_026.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_026.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_026.imageset/icons_026.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_026.imageset/icons_026.png
new file mode 100644
index 0000000..1604b5d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_026.imageset/icons_026.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_027.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_027.imageset/Contents.json
new file mode 100644
index 0000000..49384c6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_027.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_027.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_027.imageset/icons_027.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_027.imageset/icons_027.png
new file mode 100644
index 0000000..ea73c86
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_027.imageset/icons_027.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_028.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_028.imageset/Contents.json
new file mode 100644
index 0000000..60cb444
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_028.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_028.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_028.imageset/icons_028.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_028.imageset/icons_028.png
new file mode 100644
index 0000000..19f7d3b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_028.imageset/icons_028.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_029.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_029.imageset/Contents.json
new file mode 100644
index 0000000..ff97b04
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_029.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_029.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_029.imageset/icons_029.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_029.imageset/icons_029.png
new file mode 100644
index 0000000..19282fd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_029.imageset/icons_029.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_030.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_030.imageset/Contents.json
new file mode 100644
index 0000000..6f003d9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_030.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_030.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_030.imageset/icons_030.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_030.imageset/icons_030.png
new file mode 100644
index 0000000..4442698
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_030.imageset/icons_030.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_031.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_031.imageset/Contents.json
new file mode 100644
index 0000000..99382e8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_031.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_031.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_031.imageset/icons_031.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_031.imageset/icons_031.png
new file mode 100644
index 0000000..d0c9832
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_031.imageset/icons_031.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_032.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_032.imageset/Contents.json
new file mode 100644
index 0000000..0a4deca
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_032.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_032.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_032.imageset/icons_032.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_032.imageset/icons_032.png
new file mode 100644
index 0000000..14d348d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_032.imageset/icons_032.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_033.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_033.imageset/Contents.json
new file mode 100644
index 0000000..3a1f1f3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_033.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_033.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_033.imageset/icons_033.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_033.imageset/icons_033.png
new file mode 100644
index 0000000..2a692b4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_033.imageset/icons_033.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_034.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_034.imageset/Contents.json
new file mode 100644
index 0000000..e65984c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_034.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_034.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_034.imageset/icons_034.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_034.imageset/icons_034.png
new file mode 100644
index 0000000..c86a583
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_034.imageset/icons_034.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_035.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_035.imageset/Contents.json
new file mode 100644
index 0000000..e98accf
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_035.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_035.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_035.imageset/icons_035.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_035.imageset/icons_035.png
new file mode 100644
index 0000000..73f09cf
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_035.imageset/icons_035.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_036.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_036.imageset/Contents.json
new file mode 100644
index 0000000..63a60f8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_036.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_036.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_036.imageset/icons_036.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_036.imageset/icons_036.png
new file mode 100644
index 0000000..ee23a0b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_036.imageset/icons_036.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_037.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_037.imageset/Contents.json
new file mode 100644
index 0000000..9e255e2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_037.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_037.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_037.imageset/icons_037.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_037.imageset/icons_037.png
new file mode 100644
index 0000000..9674d45
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_037.imageset/icons_037.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_038.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_038.imageset/Contents.json
new file mode 100644
index 0000000..57f6ab9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_038.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_038.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_038.imageset/icons_038.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_038.imageset/icons_038.png
new file mode 100644
index 0000000..517efff
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_038.imageset/icons_038.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_039.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_039.imageset/Contents.json
new file mode 100644
index 0000000..71f2f04
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_039.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_039.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_039.imageset/icons_039.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_039.imageset/icons_039.png
new file mode 100644
index 0000000..dbc9dcb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_039.imageset/icons_039.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_040.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_040.imageset/Contents.json
new file mode 100644
index 0000000..cb69921
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_040.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_040.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_040.imageset/icons_040.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_040.imageset/icons_040.png
new file mode 100644
index 0000000..226b179
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_040.imageset/icons_040.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_041.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_041.imageset/Contents.json
new file mode 100644
index 0000000..77d7f2b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_041.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_041.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_041.imageset/icons_041.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_041.imageset/icons_041.png
new file mode 100644
index 0000000..656cdc9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_041.imageset/icons_041.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_042.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_042.imageset/Contents.json
new file mode 100644
index 0000000..88b9811
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_042.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_042.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_042.imageset/icons_042.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_042.imageset/icons_042.png
new file mode 100644
index 0000000..9e9a103
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_042.imageset/icons_042.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_043.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_043.imageset/Contents.json
new file mode 100644
index 0000000..ff436b4
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_043.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_043.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_043.imageset/icons_043.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_043.imageset/icons_043.png
new file mode 100644
index 0000000..9518dda
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_043.imageset/icons_043.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_044.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_044.imageset/Contents.json
new file mode 100644
index 0000000..9fada1b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_044.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_044.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_044.imageset/icons_044.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_044.imageset/icons_044.png
new file mode 100644
index 0000000..a430b48
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_044.imageset/icons_044.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_045.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_045.imageset/Contents.json
new file mode 100644
index 0000000..33579da
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_045.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_045.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_045.imageset/icons_045.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_045.imageset/icons_045.png
new file mode 100644
index 0000000..2e3a854
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_045.imageset/icons_045.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_046.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_046.imageset/Contents.json
new file mode 100644
index 0000000..554cb9c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_046.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_046.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_046.imageset/icons_046.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_046.imageset/icons_046.png
new file mode 100644
index 0000000..e9f3f3a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_046.imageset/icons_046.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_047.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_047.imageset/Contents.json
new file mode 100644
index 0000000..b7790c0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_047.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_047.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_047.imageset/icons_047.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_047.imageset/icons_047.png
new file mode 100644
index 0000000..5d4cf94
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_047.imageset/icons_047.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_048.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_048.imageset/Contents.json
new file mode 100644
index 0000000..d2f867a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_048.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_048.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_048.imageset/icons_048.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_048.imageset/icons_048.png
new file mode 100644
index 0000000..fc4172d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_048.imageset/icons_048.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_049.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_049.imageset/Contents.json
new file mode 100644
index 0000000..40ad6ef
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_049.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_049.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_049.imageset/icons_049.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_049.imageset/icons_049.png
new file mode 100644
index 0000000..2853814
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_049.imageset/icons_049.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_050.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_050.imageset/Contents.json
new file mode 100644
index 0000000..9d038ed
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_050.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_050.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_050.imageset/icons_050.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_050.imageset/icons_050.png
new file mode 100644
index 0000000..60aa791
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_050.imageset/icons_050.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_051.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_051.imageset/Contents.json
new file mode 100644
index 0000000..00d0386
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_051.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_051.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_051.imageset/icons_051.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_051.imageset/icons_051.png
new file mode 100644
index 0000000..65c0b8d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_051.imageset/icons_051.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_052.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_052.imageset/Contents.json
new file mode 100644
index 0000000..648bdc7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_052.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_052.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_052.imageset/icons_052.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_052.imageset/icons_052.png
new file mode 100644
index 0000000..e329199
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_052.imageset/icons_052.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_053.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_053.imageset/Contents.json
new file mode 100644
index 0000000..191084e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_053.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_053.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_053.imageset/icons_053.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_053.imageset/icons_053.png
new file mode 100644
index 0000000..654aafd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_053.imageset/icons_053.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_054.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_054.imageset/Contents.json
new file mode 100644
index 0000000..e261014
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_054.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_054.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_054.imageset/icons_054.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_054.imageset/icons_054.png
new file mode 100644
index 0000000..30af995
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_054.imageset/icons_054.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_055.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_055.imageset/Contents.json
new file mode 100644
index 0000000..ac64519
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_055.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_055.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_055.imageset/icons_055.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_055.imageset/icons_055.png
new file mode 100644
index 0000000..1698235
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_055.imageset/icons_055.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_056.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_056.imageset/Contents.json
new file mode 100644
index 0000000..7fa01ba
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_056.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_056.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_056.imageset/icons_056.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_056.imageset/icons_056.png
new file mode 100644
index 0000000..809c66c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_056.imageset/icons_056.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_057.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_057.imageset/Contents.json
new file mode 100644
index 0000000..42a5c5a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_057.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_057.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_057.imageset/icons_057.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_057.imageset/icons_057.png
new file mode 100644
index 0000000..3474f57
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_057.imageset/icons_057.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_058.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_058.imageset/Contents.json
new file mode 100644
index 0000000..b11893b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_058.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_058.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_058.imageset/icons_058.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_058.imageset/icons_058.png
new file mode 100644
index 0000000..2ba11e6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_058.imageset/icons_058.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_059.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_059.imageset/Contents.json
new file mode 100644
index 0000000..5a1cff7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_059.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_059.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_059.imageset/icons_059.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_059.imageset/icons_059.png
new file mode 100644
index 0000000..1ea24e7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_059.imageset/icons_059.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_060.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_060.imageset/Contents.json
new file mode 100644
index 0000000..7dce52b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_060.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_060.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_060.imageset/icons_060.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_060.imageset/icons_060.png
new file mode 100644
index 0000000..fb60062
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_060.imageset/icons_060.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_061.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_061.imageset/Contents.json
new file mode 100644
index 0000000..a0af53f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_061.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_061.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_061.imageset/icons_061.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_061.imageset/icons_061.png
new file mode 100644
index 0000000..b744df0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_061.imageset/icons_061.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_062.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_062.imageset/Contents.json
new file mode 100644
index 0000000..87f8ca9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_062.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_062.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_062.imageset/icons_062.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_062.imageset/icons_062.png
new file mode 100644
index 0000000..a598b38
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_062.imageset/icons_062.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_063.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_063.imageset/Contents.json
new file mode 100644
index 0000000..d6b922f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_063.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_063.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_063.imageset/icons_063.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_063.imageset/icons_063.png
new file mode 100644
index 0000000..bef047b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_063.imageset/icons_063.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_064.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_064.imageset/Contents.json
new file mode 100644
index 0000000..6d68715
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_064.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_064.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_064.imageset/icons_064.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_064.imageset/icons_064.png
new file mode 100644
index 0000000..2a4db35
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_064.imageset/icons_064.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_065.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_065.imageset/Contents.json
new file mode 100644
index 0000000..ef34bbe
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_065.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_065.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_065.imageset/icons_065.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_065.imageset/icons_065.png
new file mode 100644
index 0000000..00c470b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_065.imageset/icons_065.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_066.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_066.imageset/Contents.json
new file mode 100644
index 0000000..66f588f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_066.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_066.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_066.imageset/icons_066.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_066.imageset/icons_066.png
new file mode 100644
index 0000000..7b03b8e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_066.imageset/icons_066.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_067.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_067.imageset/Contents.json
new file mode 100644
index 0000000..3eb349b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_067.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_067.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_067.imageset/icons_067.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_067.imageset/icons_067.png
new file mode 100644
index 0000000..62e9e43
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_067.imageset/icons_067.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_068.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_068.imageset/Contents.json
new file mode 100644
index 0000000..1a114b6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_068.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_068.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_068.imageset/icons_068.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_068.imageset/icons_068.png
new file mode 100644
index 0000000..04c56fe
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_068.imageset/icons_068.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_069.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_069.imageset/Contents.json
new file mode 100644
index 0000000..628d073
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_069.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_069.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_069.imageset/icons_069.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_069.imageset/icons_069.png
new file mode 100644
index 0000000..b5fa6c1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_069.imageset/icons_069.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_070.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_070.imageset/Contents.json
new file mode 100644
index 0000000..c73a3a2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_070.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_070.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_070.imageset/icons_070.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_070.imageset/icons_070.png
new file mode 100644
index 0000000..06b8679
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_070.imageset/icons_070.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_071.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_071.imageset/Contents.json
new file mode 100644
index 0000000..05fd5b5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_071.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_071.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_071.imageset/icons_071.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_071.imageset/icons_071.png
new file mode 100644
index 0000000..5dfdc57
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_071.imageset/icons_071.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_072.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_072.imageset/Contents.json
new file mode 100644
index 0000000..bf55394
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_072.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_072.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_072.imageset/icons_072.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_072.imageset/icons_072.png
new file mode 100644
index 0000000..c442264
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_072.imageset/icons_072.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_073.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_073.imageset/Contents.json
new file mode 100644
index 0000000..d5f6604
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_073.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_073.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_073.imageset/icons_073.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_073.imageset/icons_073.png
new file mode 100644
index 0000000..206957a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_073.imageset/icons_073.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_074.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_074.imageset/Contents.json
new file mode 100644
index 0000000..151b164
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_074.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_074.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_074.imageset/icons_074.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_074.imageset/icons_074.png
new file mode 100644
index 0000000..86aa4c7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_074.imageset/icons_074.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_075.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_075.imageset/Contents.json
new file mode 100644
index 0000000..aa4d087
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_075.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_075.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_075.imageset/icons_075.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_075.imageset/icons_075.png
new file mode 100644
index 0000000..18a3ae3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_075.imageset/icons_075.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_076.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_076.imageset/Contents.json
new file mode 100644
index 0000000..bb6dbc9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_076.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_076.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_076.imageset/icons_076.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_076.imageset/icons_076.png
new file mode 100644
index 0000000..b6980a2
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_076.imageset/icons_076.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_077.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_077.imageset/Contents.json
new file mode 100644
index 0000000..6174fd8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_077.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_077.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_077.imageset/icons_077.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_077.imageset/icons_077.png
new file mode 100644
index 0000000..a8a05c9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_077.imageset/icons_077.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_078.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_078.imageset/Contents.json
new file mode 100644
index 0000000..160c404
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_078.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_078.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_078.imageset/icons_078.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_078.imageset/icons_078.png
new file mode 100644
index 0000000..940cc97
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_078.imageset/icons_078.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_079.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_079.imageset/Contents.json
new file mode 100644
index 0000000..5ac0f55
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_079.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_079.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_079.imageset/icons_079.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_079.imageset/icons_079.png
new file mode 100644
index 0000000..bd0bf39
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_079.imageset/icons_079.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_080.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_080.imageset/Contents.json
new file mode 100644
index 0000000..f8af109
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_080.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_080.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_080.imageset/icons_080.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_080.imageset/icons_080.png
new file mode 100644
index 0000000..567d744
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_080.imageset/icons_080.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_081.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_081.imageset/Contents.json
new file mode 100644
index 0000000..dd34875
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_081.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_081.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_081.imageset/icons_081.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_081.imageset/icons_081.png
new file mode 100644
index 0000000..b5dc9d7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_081.imageset/icons_081.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_082.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_082.imageset/Contents.json
new file mode 100644
index 0000000..f058683
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_082.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_082.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_082.imageset/icons_082.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_082.imageset/icons_082.png
new file mode 100644
index 0000000..3cf98fb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_082.imageset/icons_082.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_083.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_083.imageset/Contents.json
new file mode 100644
index 0000000..33d8ad9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_083.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_083.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_083.imageset/icons_083.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_083.imageset/icons_083.png
new file mode 100644
index 0000000..85c1801
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_083.imageset/icons_083.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_084.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_084.imageset/Contents.json
new file mode 100644
index 0000000..4301030
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_084.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_084.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_084.imageset/icons_084.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_084.imageset/icons_084.png
new file mode 100644
index 0000000..0992fdf
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_084.imageset/icons_084.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_085.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_085.imageset/Contents.json
new file mode 100644
index 0000000..9891c17
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_085.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_085.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_085.imageset/icons_085.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_085.imageset/icons_085.png
new file mode 100644
index 0000000..71bfa7b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_085.imageset/icons_085.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_086.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_086.imageset/Contents.json
new file mode 100644
index 0000000..e8d6fd8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_086.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_086.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_086.imageset/icons_086.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_086.imageset/icons_086.png
new file mode 100644
index 0000000..54bc30d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_086.imageset/icons_086.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_087.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_087.imageset/Contents.json
new file mode 100644
index 0000000..0307766
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_087.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icons_087.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_087.imageset/icons_087.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_087.imageset/icons_087.png
new file mode 100644
index 0000000..ad3e23e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/icons_087.imageset/icons_087.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_000.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_000.imageset/Contents.json
new file mode 100644
index 0000000..ae4bdb7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_000.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_000.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_000.imageset/love_000.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_000.imageset/love_000.png
new file mode 100644
index 0000000..0567e92
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_000.imageset/love_000.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_001.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_001.imageset/Contents.json
new file mode 100644
index 0000000..8307913
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_001.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_001.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_001.imageset/love_001.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_001.imageset/love_001.png
new file mode 100644
index 0000000..2e55c96
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_001.imageset/love_001.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_002.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_002.imageset/Contents.json
new file mode 100644
index 0000000..1f3cbf0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_002.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_002.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_002.imageset/love_002.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_002.imageset/love_002.png
new file mode 100644
index 0000000..908a396
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_002.imageset/love_002.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_003.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_003.imageset/Contents.json
new file mode 100644
index 0000000..a157b3e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_003.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_003.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_003.imageset/love_003.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_003.imageset/love_003.png
new file mode 100644
index 0000000..774b8e6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_003.imageset/love_003.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_004.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_004.imageset/Contents.json
new file mode 100644
index 0000000..3fab13e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_004.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_004.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_004.imageset/love_004.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_004.imageset/love_004.png
new file mode 100644
index 0000000..03c542e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_004.imageset/love_004.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_005.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_005.imageset/Contents.json
new file mode 100644
index 0000000..b9f66fe
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_005.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_005.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_005.imageset/love_005.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_005.imageset/love_005.png
new file mode 100644
index 0000000..bf23888
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_005.imageset/love_005.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_006.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_006.imageset/Contents.json
new file mode 100644
index 0000000..62f7c61
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_006.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_006.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_006.imageset/love_006.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_006.imageset/love_006.png
new file mode 100644
index 0000000..db31f5d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_006.imageset/love_006.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_007.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_007.imageset/Contents.json
new file mode 100644
index 0000000..0d6dde2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_007.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_007.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_007.imageset/love_007.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_007.imageset/love_007.png
new file mode 100644
index 0000000..d22f4cb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_007.imageset/love_007.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_008.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_008.imageset/Contents.json
new file mode 100644
index 0000000..395bc3f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_008.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_008.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_008.imageset/love_008.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_008.imageset/love_008.png
new file mode 100644
index 0000000..5e647f0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_008.imageset/love_008.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_009.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_009.imageset/Contents.json
new file mode 100644
index 0000000..8f773c8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_009.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_009.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_009.imageset/love_009.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_009.imageset/love_009.png
new file mode 100644
index 0000000..a9c40b9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_009.imageset/love_009.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_010.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_010.imageset/Contents.json
new file mode 100644
index 0000000..ff01360
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_010.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_010.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_010.imageset/love_010.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_010.imageset/love_010.png
new file mode 100644
index 0000000..929f732
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_010.imageset/love_010.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_011.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_011.imageset/Contents.json
new file mode 100644
index 0000000..dd154c0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_011.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_011.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_011.imageset/love_011.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_011.imageset/love_011.png
new file mode 100644
index 0000000..9c0de8f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_011.imageset/love_011.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_012.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_012.imageset/Contents.json
new file mode 100644
index 0000000..313615a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_012.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_012.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_012.imageset/love_012.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_012.imageset/love_012.png
new file mode 100644
index 0000000..608caa5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_012.imageset/love_012.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_013.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_013.imageset/Contents.json
new file mode 100644
index 0000000..e54c956
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_013.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_013.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_013.imageset/love_013.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_013.imageset/love_013.png
new file mode 100644
index 0000000..ef1f658
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_013.imageset/love_013.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_014.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_014.imageset/Contents.json
new file mode 100644
index 0000000..c13e2e7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_014.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_014.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_014.imageset/love_014.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_014.imageset/love_014.png
new file mode 100644
index 0000000..e59a0a9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_014.imageset/love_014.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_015.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_015.imageset/Contents.json
new file mode 100644
index 0000000..93ff440
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_015.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_015.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_015.imageset/love_015.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_015.imageset/love_015.png
new file mode 100644
index 0000000..02108de
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_015.imageset/love_015.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_016.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_016.imageset/Contents.json
new file mode 100644
index 0000000..73be3b8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_016.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_016.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_016.imageset/love_016.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_016.imageset/love_016.png
new file mode 100644
index 0000000..256288f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_016.imageset/love_016.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_017.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_017.imageset/Contents.json
new file mode 100644
index 0000000..2eb7fce
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_017.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_017.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_017.imageset/love_017.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_017.imageset/love_017.png
new file mode 100644
index 0000000..7946894
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_017.imageset/love_017.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_018.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_018.imageset/Contents.json
new file mode 100644
index 0000000..cdcd4c6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_018.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_018.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_018.imageset/love_018.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_018.imageset/love_018.png
new file mode 100644
index 0000000..f191dd6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_018.imageset/love_018.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_019.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_019.imageset/Contents.json
new file mode 100644
index 0000000..6913cb3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_019.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_019.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_019.imageset/love_019.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_019.imageset/love_019.png
new file mode 100644
index 0000000..df4ec92
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_019.imageset/love_019.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_020.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_020.imageset/Contents.json
new file mode 100644
index 0000000..69e2e81
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_020.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_020.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_020.imageset/love_020.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_020.imageset/love_020.png
new file mode 100644
index 0000000..f00ea23
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_020.imageset/love_020.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_021.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_021.imageset/Contents.json
new file mode 100644
index 0000000..04dabf3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_021.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_021.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_021.imageset/love_021.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_021.imageset/love_021.png
new file mode 100644
index 0000000..2b509fa
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_021.imageset/love_021.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_022.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_022.imageset/Contents.json
new file mode 100644
index 0000000..982e83f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_022.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_022.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_022.imageset/love_022.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_022.imageset/love_022.png
new file mode 100644
index 0000000..062ab1c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_022.imageset/love_022.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_023.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_023.imageset/Contents.json
new file mode 100644
index 0000000..d7666e0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_023.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_023.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_023.imageset/love_023.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_023.imageset/love_023.png
new file mode 100644
index 0000000..37a601d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_023.imageset/love_023.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_024.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_024.imageset/Contents.json
new file mode 100644
index 0000000..5f949f6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_024.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_024.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_024.imageset/love_024.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_024.imageset/love_024.png
new file mode 100644
index 0000000..8aa5d2f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_024.imageset/love_024.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_025.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_025.imageset/Contents.json
new file mode 100644
index 0000000..c5a8df1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_025.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_025.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_025.imageset/love_025.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_025.imageset/love_025.png
new file mode 100644
index 0000000..7e3b173
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_025.imageset/love_025.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_026.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_026.imageset/Contents.json
new file mode 100644
index 0000000..7c56592
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_026.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_026.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_026.imageset/love_026.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_026.imageset/love_026.png
new file mode 100644
index 0000000..f59eb0a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_026.imageset/love_026.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_027.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_027.imageset/Contents.json
new file mode 100644
index 0000000..959ef80
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_027.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_027.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_027.imageset/love_027.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_027.imageset/love_027.png
new file mode 100644
index 0000000..f683664
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_027.imageset/love_027.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_028.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_028.imageset/Contents.json
new file mode 100644
index 0000000..19fb002
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_028.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_028.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_028.imageset/love_028.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_028.imageset/love_028.png
new file mode 100644
index 0000000..f0492bb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_028.imageset/love_028.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_029.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_029.imageset/Contents.json
new file mode 100644
index 0000000..f12247f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_029.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_029.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_029.imageset/love_029.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_029.imageset/love_029.png
new file mode 100644
index 0000000..f5191a8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_029.imageset/love_029.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_030.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_030.imageset/Contents.json
new file mode 100644
index 0000000..ad82383
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_030.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_030.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_030.imageset/love_030.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_030.imageset/love_030.png
new file mode 100644
index 0000000..9cb767e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_030.imageset/love_030.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_031.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_031.imageset/Contents.json
new file mode 100644
index 0000000..a4204d7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_031.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_031.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_031.imageset/love_031.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_031.imageset/love_031.png
new file mode 100644
index 0000000..ec87cd4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_031.imageset/love_031.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_032.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_032.imageset/Contents.json
new file mode 100644
index 0000000..bf761f0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_032.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_032.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_032.imageset/love_032.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_032.imageset/love_032.png
new file mode 100644
index 0000000..2f04871
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_032.imageset/love_032.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_033.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_033.imageset/Contents.json
new file mode 100644
index 0000000..0a0201e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_033.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_033.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_033.imageset/love_033.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_033.imageset/love_033.png
new file mode 100644
index 0000000..8fa97d9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_033.imageset/love_033.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_034.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_034.imageset/Contents.json
new file mode 100644
index 0000000..6a0f620
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_034.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_034.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_034.imageset/love_034.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_034.imageset/love_034.png
new file mode 100644
index 0000000..ac39e17
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_034.imageset/love_034.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_035.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_035.imageset/Contents.json
new file mode 100644
index 0000000..1436e11
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_035.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_035.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_035.imageset/love_035.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_035.imageset/love_035.png
new file mode 100644
index 0000000..d727650
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_035.imageset/love_035.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_036.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_036.imageset/Contents.json
new file mode 100644
index 0000000..5f433c7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_036.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_036.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_036.imageset/love_036.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_036.imageset/love_036.png
new file mode 100644
index 0000000..ace624a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_036.imageset/love_036.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_037.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_037.imageset/Contents.json
new file mode 100644
index 0000000..3622cc3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_037.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_037.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_037.imageset/love_037.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_037.imageset/love_037.png
new file mode 100644
index 0000000..2730986
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_037.imageset/love_037.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_038.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_038.imageset/Contents.json
new file mode 100644
index 0000000..2fb0049
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_038.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_038.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_038.imageset/love_038.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_038.imageset/love_038.png
new file mode 100644
index 0000000..6fc3288
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_038.imageset/love_038.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_039.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_039.imageset/Contents.json
new file mode 100644
index 0000000..6876f91
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_039.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_039.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_039.imageset/love_039.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_039.imageset/love_039.png
new file mode 100644
index 0000000..fe49109
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_039.imageset/love_039.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_040.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_040.imageset/Contents.json
new file mode 100644
index 0000000..915ce55
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_040.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_040.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_040.imageset/love_040.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_040.imageset/love_040.png
new file mode 100644
index 0000000..6dd9530
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_040.imageset/love_040.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_041.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_041.imageset/Contents.json
new file mode 100644
index 0000000..fb1e125
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_041.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_041.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_041.imageset/love_041.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_041.imageset/love_041.png
new file mode 100644
index 0000000..81f44a6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_041.imageset/love_041.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_042.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_042.imageset/Contents.json
new file mode 100644
index 0000000..0985eea
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_042.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_042.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_042.imageset/love_042.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_042.imageset/love_042.png
new file mode 100644
index 0000000..d68285b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_042.imageset/love_042.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_043.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_043.imageset/Contents.json
new file mode 100644
index 0000000..e8516b1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_043.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_043.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_043.imageset/love_043.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_043.imageset/love_043.png
new file mode 100644
index 0000000..8390141
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_043.imageset/love_043.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_044.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_044.imageset/Contents.json
new file mode 100644
index 0000000..0efb758
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_044.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_044.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_044.imageset/love_044.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_044.imageset/love_044.png
new file mode 100644
index 0000000..2ea786c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_044.imageset/love_044.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_045.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_045.imageset/Contents.json
new file mode 100644
index 0000000..69d2345
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_045.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_045.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_045.imageset/love_045.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_045.imageset/love_045.png
new file mode 100644
index 0000000..1eda248
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_045.imageset/love_045.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_046.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_046.imageset/Contents.json
new file mode 100644
index 0000000..9a82203
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_046.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_046.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_046.imageset/love_046.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_046.imageset/love_046.png
new file mode 100644
index 0000000..60c6141
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_046.imageset/love_046.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_047.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_047.imageset/Contents.json
new file mode 100644
index 0000000..2edb892
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_047.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_047.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_047.imageset/love_047.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_047.imageset/love_047.png
new file mode 100644
index 0000000..a415842
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_047.imageset/love_047.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_048.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_048.imageset/Contents.json
new file mode 100644
index 0000000..4529ba2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_048.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_048.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_048.imageset/love_048.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_048.imageset/love_048.png
new file mode 100644
index 0000000..f98d90b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_048.imageset/love_048.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_049.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_049.imageset/Contents.json
new file mode 100644
index 0000000..7cc65ad
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_049.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_049.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_049.imageset/love_049.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_049.imageset/love_049.png
new file mode 100644
index 0000000..0ed734a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_049.imageset/love_049.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_050.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_050.imageset/Contents.json
new file mode 100644
index 0000000..a182fbf
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_050.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_050.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_050.imageset/love_050.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_050.imageset/love_050.png
new file mode 100644
index 0000000..bc7d1be
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_050.imageset/love_050.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_051.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_051.imageset/Contents.json
new file mode 100644
index 0000000..31ea213
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_051.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_051.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_051.imageset/love_051.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_051.imageset/love_051.png
new file mode 100644
index 0000000..e30bd20
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_051.imageset/love_051.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_052.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_052.imageset/Contents.json
new file mode 100644
index 0000000..cff4636
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_052.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_052.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_052.imageset/love_052.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_052.imageset/love_052.png
new file mode 100644
index 0000000..dd51410
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_052.imageset/love_052.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_053.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_053.imageset/Contents.json
new file mode 100644
index 0000000..ecc9598
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_053.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_053.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_053.imageset/love_053.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_053.imageset/love_053.png
new file mode 100644
index 0000000..73e760a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_053.imageset/love_053.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_054.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_054.imageset/Contents.json
new file mode 100644
index 0000000..d0d5769
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_054.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_054.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_054.imageset/love_054.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_054.imageset/love_054.png
new file mode 100644
index 0000000..dad8ffb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_054.imageset/love_054.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_055.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_055.imageset/Contents.json
new file mode 100644
index 0000000..17b227a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_055.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_055.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_055.imageset/love_055.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_055.imageset/love_055.png
new file mode 100644
index 0000000..19922a1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_055.imageset/love_055.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_056.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_056.imageset/Contents.json
new file mode 100644
index 0000000..f86203f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_056.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_056.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_056.imageset/love_056.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_056.imageset/love_056.png
new file mode 100644
index 0000000..0a227bd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_056.imageset/love_056.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_057.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_057.imageset/Contents.json
new file mode 100644
index 0000000..6b7473f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_057.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_057.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_057.imageset/love_057.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_057.imageset/love_057.png
new file mode 100644
index 0000000..3d347c6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_057.imageset/love_057.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_058.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_058.imageset/Contents.json
new file mode 100644
index 0000000..222ba21
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_058.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_058.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_058.imageset/love_058.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_058.imageset/love_058.png
new file mode 100644
index 0000000..c977b76
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_058.imageset/love_058.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_059.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_059.imageset/Contents.json
new file mode 100644
index 0000000..a52622c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_059.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_059.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_059.imageset/love_059.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_059.imageset/love_059.png
new file mode 100644
index 0000000..ee2ff74
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_059.imageset/love_059.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_060.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_060.imageset/Contents.json
new file mode 100644
index 0000000..7664e46
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_060.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_060.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_060.imageset/love_060.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_060.imageset/love_060.png
new file mode 100644
index 0000000..4e00e98
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_060.imageset/love_060.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_061.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_061.imageset/Contents.json
new file mode 100644
index 0000000..f94a3f6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_061.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_061.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_061.imageset/love_061.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_061.imageset/love_061.png
new file mode 100644
index 0000000..e617170
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_061.imageset/love_061.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_062.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_062.imageset/Contents.json
new file mode 100644
index 0000000..89f6c85
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_062.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_062.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_062.imageset/love_062.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_062.imageset/love_062.png
new file mode 100644
index 0000000..246fc15
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_062.imageset/love_062.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_063.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_063.imageset/Contents.json
new file mode 100644
index 0000000..ee572ce
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_063.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_063.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_063.imageset/love_063.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_063.imageset/love_063.png
new file mode 100644
index 0000000..1759080
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_063.imageset/love_063.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_064.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_064.imageset/Contents.json
new file mode 100644
index 0000000..22d1ca5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_064.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_064.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_064.imageset/love_064.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_064.imageset/love_064.png
new file mode 100644
index 0000000..246d78c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_064.imageset/love_064.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_065.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_065.imageset/Contents.json
new file mode 100644
index 0000000..4573789
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_065.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_065.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_065.imageset/love_065.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_065.imageset/love_065.png
new file mode 100644
index 0000000..8ce4ed0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_065.imageset/love_065.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_066.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_066.imageset/Contents.json
new file mode 100644
index 0000000..8f70268
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_066.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_066.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_066.imageset/love_066.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_066.imageset/love_066.png
new file mode 100644
index 0000000..db41ed5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_066.imageset/love_066.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_067.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_067.imageset/Contents.json
new file mode 100644
index 0000000..733e9b7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_067.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_067.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_067.imageset/love_067.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_067.imageset/love_067.png
new file mode 100644
index 0000000..cf964ea
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_067.imageset/love_067.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_068.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_068.imageset/Contents.json
new file mode 100644
index 0000000..598d17b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_068.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_068.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_068.imageset/love_068.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_068.imageset/love_068.png
new file mode 100644
index 0000000..9c85612
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_068.imageset/love_068.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_069.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_069.imageset/Contents.json
new file mode 100644
index 0000000..4d93882
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_069.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_069.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_069.imageset/love_069.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_069.imageset/love_069.png
new file mode 100644
index 0000000..a2b4320
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_069.imageset/love_069.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_070.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_070.imageset/Contents.json
new file mode 100644
index 0000000..24ad1fe
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_070.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_070.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_070.imageset/love_070.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_070.imageset/love_070.png
new file mode 100644
index 0000000..ade7614
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_070.imageset/love_070.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_071.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_071.imageset/Contents.json
new file mode 100644
index 0000000..49aa4be
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_071.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_071.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_071.imageset/love_071.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_071.imageset/love_071.png
new file mode 100644
index 0000000..edcb933
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_071.imageset/love_071.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_072.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_072.imageset/Contents.json
new file mode 100644
index 0000000..7654a29
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_072.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_072.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_072.imageset/love_072.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_072.imageset/love_072.png
new file mode 100644
index 0000000..27d5574
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_072.imageset/love_072.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_073.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_073.imageset/Contents.json
new file mode 100644
index 0000000..3c607c5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_073.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_073.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_073.imageset/love_073.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_073.imageset/love_073.png
new file mode 100644
index 0000000..fb58189
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_073.imageset/love_073.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_074.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_074.imageset/Contents.json
new file mode 100644
index 0000000..292307c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_074.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_074.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_074.imageset/love_074.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_074.imageset/love_074.png
new file mode 100644
index 0000000..4a2ddaf
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_074.imageset/love_074.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_075.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_075.imageset/Contents.json
new file mode 100644
index 0000000..3b67c2f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_075.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_075.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_075.imageset/love_075.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_075.imageset/love_075.png
new file mode 100644
index 0000000..c809953
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_075.imageset/love_075.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_076.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_076.imageset/Contents.json
new file mode 100644
index 0000000..ec43583
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_076.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_076.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_076.imageset/love_076.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_076.imageset/love_076.png
new file mode 100644
index 0000000..315c3b0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_076.imageset/love_076.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_077.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_077.imageset/Contents.json
new file mode 100644
index 0000000..e73e7c7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_077.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_077.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_077.imageset/love_077.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_077.imageset/love_077.png
new file mode 100644
index 0000000..07cd43b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_077.imageset/love_077.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_078.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_078.imageset/Contents.json
new file mode 100644
index 0000000..7126eda
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_078.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_078.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_078.imageset/love_078.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_078.imageset/love_078.png
new file mode 100644
index 0000000..488e008
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_078.imageset/love_078.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_079.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_079.imageset/Contents.json
new file mode 100644
index 0000000..ff13564
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_079.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_079.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_079.imageset/love_079.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_079.imageset/love_079.png
new file mode 100644
index 0000000..0d6069d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_079.imageset/love_079.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_080.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_080.imageset/Contents.json
new file mode 100644
index 0000000..667ec38
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_080.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_080.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_080.imageset/love_080.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_080.imageset/love_080.png
new file mode 100644
index 0000000..1b47f38
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_080.imageset/love_080.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_081.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_081.imageset/Contents.json
new file mode 100644
index 0000000..0f511be
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_081.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_081.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_081.imageset/love_081.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_081.imageset/love_081.png
new file mode 100644
index 0000000..e6f982c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_081.imageset/love_081.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_082.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_082.imageset/Contents.json
new file mode 100644
index 0000000..ef09845
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_082.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_082.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_082.imageset/love_082.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_082.imageset/love_082.png
new file mode 100644
index 0000000..9bf4689
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_082.imageset/love_082.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_083.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_083.imageset/Contents.json
new file mode 100644
index 0000000..80f7f6a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_083.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_083.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_083.imageset/love_083.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_083.imageset/love_083.png
new file mode 100644
index 0000000..c4d61e8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_083.imageset/love_083.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_084.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_084.imageset/Contents.json
new file mode 100644
index 0000000..c191870
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_084.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_084.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_084.imageset/love_084.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_084.imageset/love_084.png
new file mode 100644
index 0000000..57d1c5f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_084.imageset/love_084.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_085.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_085.imageset/Contents.json
new file mode 100644
index 0000000..8761054
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_085.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_085.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_085.imageset/love_085.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_085.imageset/love_085.png
new file mode 100644
index 0000000..a035a22
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_085.imageset/love_085.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_086.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_086.imageset/Contents.json
new file mode 100644
index 0000000..3e128ac
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_086.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_086.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_086.imageset/love_086.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_086.imageset/love_086.png
new file mode 100644
index 0000000..5bf819b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_086.imageset/love_086.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_087.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_087.imageset/Contents.json
new file mode 100644
index 0000000..f1f37a9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_087.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_087.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_087.imageset/love_087.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_087.imageset/love_087.png
new file mode 100644
index 0000000..e51186a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_087.imageset/love_087.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_088.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_088.imageset/Contents.json
new file mode 100644
index 0000000..f887fdb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_088.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_088.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_088.imageset/love_088.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_088.imageset/love_088.png
new file mode 100644
index 0000000..4b8b40a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_088.imageset/love_088.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_089.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_089.imageset/Contents.json
new file mode 100644
index 0000000..55d7fd0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_089.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_089.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_089.imageset/love_089.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_089.imageset/love_089.png
new file mode 100644
index 0000000..0d1183c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_089.imageset/love_089.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_090.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_090.imageset/Contents.json
new file mode 100644
index 0000000..4b12011
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_090.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_090.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_090.imageset/love_090.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_090.imageset/love_090.png
new file mode 100644
index 0000000..cb3976f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_090.imageset/love_090.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_091.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_091.imageset/Contents.json
new file mode 100644
index 0000000..0481f1b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_091.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_091.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_091.imageset/love_091.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_091.imageset/love_091.png
new file mode 100644
index 0000000..ba14ca3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_091.imageset/love_091.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_092.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_092.imageset/Contents.json
new file mode 100644
index 0000000..5791679
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_092.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_092.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_092.imageset/love_092.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_092.imageset/love_092.png
new file mode 100644
index 0000000..896c59b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_092.imageset/love_092.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_093.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_093.imageset/Contents.json
new file mode 100644
index 0000000..470d870
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_093.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_093.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_093.imageset/love_093.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_093.imageset/love_093.png
new file mode 100644
index 0000000..2ed68b3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_093.imageset/love_093.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_094.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_094.imageset/Contents.json
new file mode 100644
index 0000000..aba0c8d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_094.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "love_094.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/love_094.imageset/love_094.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_094.imageset/love_094.png
new file mode 100644
index 0000000..8760209
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/love_094.imageset/love_094.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_000.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_000.imageset/Contents.json
new file mode 100644
index 0000000..78b728d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_000.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_000.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_000.imageset/passions_000.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_000.imageset/passions_000.png
new file mode 100644
index 0000000..37d2098
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_000.imageset/passions_000.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_001.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_001.imageset/Contents.json
new file mode 100644
index 0000000..c0182e7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_001.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_001.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_001.imageset/passions_001.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_001.imageset/passions_001.png
new file mode 100644
index 0000000..09808f9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_001.imageset/passions_001.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_002.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_002.imageset/Contents.json
new file mode 100644
index 0000000..9ff876d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_002.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_002.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_002.imageset/passions_002.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_002.imageset/passions_002.png
new file mode 100644
index 0000000..a0d45ab
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_002.imageset/passions_002.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_003.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_003.imageset/Contents.json
new file mode 100644
index 0000000..a5f1559
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_003.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_003.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_003.imageset/passions_003.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_003.imageset/passions_003.png
new file mode 100644
index 0000000..106fa62
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_003.imageset/passions_003.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_004.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_004.imageset/Contents.json
new file mode 100644
index 0000000..c5b2798
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_004.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_004.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_004.imageset/passions_004.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_004.imageset/passions_004.png
new file mode 100644
index 0000000..ab9d871
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_004.imageset/passions_004.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_005.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_005.imageset/Contents.json
new file mode 100644
index 0000000..57b3038
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_005.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_005.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_005.imageset/passions_005.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_005.imageset/passions_005.png
new file mode 100644
index 0000000..23cd99a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_005.imageset/passions_005.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_006.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_006.imageset/Contents.json
new file mode 100644
index 0000000..15a49eb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_006.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_006.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_006.imageset/passions_006.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_006.imageset/passions_006.png
new file mode 100644
index 0000000..a229265
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_006.imageset/passions_006.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_007.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_007.imageset/Contents.json
new file mode 100644
index 0000000..d0f9e24
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_007.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_007.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_007.imageset/passions_007.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_007.imageset/passions_007.png
new file mode 100644
index 0000000..e735f2b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_007.imageset/passions_007.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_008.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_008.imageset/Contents.json
new file mode 100644
index 0000000..55f9005
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_008.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_008.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_008.imageset/passions_008.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_008.imageset/passions_008.png
new file mode 100644
index 0000000..7a7c947
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_008.imageset/passions_008.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_009.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_009.imageset/Contents.json
new file mode 100644
index 0000000..248a3bb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_009.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_009.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_009.imageset/passions_009.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_009.imageset/passions_009.png
new file mode 100644
index 0000000..91ea1b4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_009.imageset/passions_009.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_010.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_010.imageset/Contents.json
new file mode 100644
index 0000000..38d8cd3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_010.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_010.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_010.imageset/passions_010.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_010.imageset/passions_010.png
new file mode 100644
index 0000000..bd3f913
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_010.imageset/passions_010.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_011.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_011.imageset/Contents.json
new file mode 100644
index 0000000..1abcadb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_011.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_011.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_011.imageset/passions_011.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_011.imageset/passions_011.png
new file mode 100644
index 0000000..24e9c1c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_011.imageset/passions_011.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_012.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_012.imageset/Contents.json
new file mode 100644
index 0000000..29df10f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_012.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_012.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_012.imageset/passions_012.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_012.imageset/passions_012.png
new file mode 100644
index 0000000..8e2bcab
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_012.imageset/passions_012.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_013.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_013.imageset/Contents.json
new file mode 100644
index 0000000..ec2782b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_013.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_013.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_013.imageset/passions_013.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_013.imageset/passions_013.png
new file mode 100644
index 0000000..680be7e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_013.imageset/passions_013.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_014.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_014.imageset/Contents.json
new file mode 100644
index 0000000..c46e7ed
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_014.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_014.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_014.imageset/passions_014.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_014.imageset/passions_014.png
new file mode 100644
index 0000000..8515ee0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_014.imageset/passions_014.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_015.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_015.imageset/Contents.json
new file mode 100644
index 0000000..5495a25
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_015.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_015.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_015.imageset/passions_015.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_015.imageset/passions_015.png
new file mode 100644
index 0000000..4bca564
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_015.imageset/passions_015.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_016.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_016.imageset/Contents.json
new file mode 100644
index 0000000..f92e067
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_016.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_016.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_016.imageset/passions_016.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_016.imageset/passions_016.png
new file mode 100644
index 0000000..51515fc
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_016.imageset/passions_016.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_017.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_017.imageset/Contents.json
new file mode 100644
index 0000000..1e8cce6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_017.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_017.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_017.imageset/passions_017.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_017.imageset/passions_017.png
new file mode 100644
index 0000000..e73a26d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_017.imageset/passions_017.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_018.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_018.imageset/Contents.json
new file mode 100644
index 0000000..eca19b5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_018.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_018.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_018.imageset/passions_018.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_018.imageset/passions_018.png
new file mode 100644
index 0000000..f462c49
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_018.imageset/passions_018.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_019.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_019.imageset/Contents.json
new file mode 100644
index 0000000..969a307
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_019.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_019.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_019.imageset/passions_019.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_019.imageset/passions_019.png
new file mode 100644
index 0000000..512e449
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_019.imageset/passions_019.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_020.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_020.imageset/Contents.json
new file mode 100644
index 0000000..e31b44f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_020.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_020.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_020.imageset/passions_020.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_020.imageset/passions_020.png
new file mode 100644
index 0000000..2969734
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_020.imageset/passions_020.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_021.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_021.imageset/Contents.json
new file mode 100644
index 0000000..3e6c5f5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_021.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_021.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_021.imageset/passions_021.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_021.imageset/passions_021.png
new file mode 100644
index 0000000..6e1f82e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_021.imageset/passions_021.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_022.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_022.imageset/Contents.json
new file mode 100644
index 0000000..90232ca
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_022.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_022.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_022.imageset/passions_022.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_022.imageset/passions_022.png
new file mode 100644
index 0000000..db0b4a9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_022.imageset/passions_022.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_023.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_023.imageset/Contents.json
new file mode 100644
index 0000000..9088dbe
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_023.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_023.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_023.imageset/passions_023.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_023.imageset/passions_023.png
new file mode 100644
index 0000000..03449f2
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_023.imageset/passions_023.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_024.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_024.imageset/Contents.json
new file mode 100644
index 0000000..5afaba3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_024.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_024.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_024.imageset/passions_024.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_024.imageset/passions_024.png
new file mode 100644
index 0000000..15d6344
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_024.imageset/passions_024.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_025.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_025.imageset/Contents.json
new file mode 100644
index 0000000..6c8681c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_025.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_025.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_025.imageset/passions_025.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_025.imageset/passions_025.png
new file mode 100644
index 0000000..10ec84a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_025.imageset/passions_025.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_026.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_026.imageset/Contents.json
new file mode 100644
index 0000000..89c326b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_026.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_026.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_026.imageset/passions_026.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_026.imageset/passions_026.png
new file mode 100644
index 0000000..50c018b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_026.imageset/passions_026.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_027.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_027.imageset/Contents.json
new file mode 100644
index 0000000..d915b44
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_027.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_027.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_027.imageset/passions_027.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_027.imageset/passions_027.png
new file mode 100644
index 0000000..790915f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_027.imageset/passions_027.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_028.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_028.imageset/Contents.json
new file mode 100644
index 0000000..2cffe10
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_028.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_028.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_028.imageset/passions_028.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_028.imageset/passions_028.png
new file mode 100644
index 0000000..b34efee
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_028.imageset/passions_028.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_029.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_029.imageset/Contents.json
new file mode 100644
index 0000000..fa258e0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_029.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_029.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_029.imageset/passions_029.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_029.imageset/passions_029.png
new file mode 100644
index 0000000..47ac798
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_029.imageset/passions_029.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_030.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_030.imageset/Contents.json
new file mode 100644
index 0000000..443c2a0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_030.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_030.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_030.imageset/passions_030.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_030.imageset/passions_030.png
new file mode 100644
index 0000000..1a6439e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_030.imageset/passions_030.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_031.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_031.imageset/Contents.json
new file mode 100644
index 0000000..d07388a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_031.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_031.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_031.imageset/passions_031.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_031.imageset/passions_031.png
new file mode 100644
index 0000000..cd0a8b1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_031.imageset/passions_031.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_032.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_032.imageset/Contents.json
new file mode 100644
index 0000000..f53d1cb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_032.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_032.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_032.imageset/passions_032.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_032.imageset/passions_032.png
new file mode 100644
index 0000000..72deab7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_032.imageset/passions_032.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_033.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_033.imageset/Contents.json
new file mode 100644
index 0000000..532f9cf
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_033.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_033.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_033.imageset/passions_033.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_033.imageset/passions_033.png
new file mode 100644
index 0000000..3366295
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_033.imageset/passions_033.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_034.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_034.imageset/Contents.json
new file mode 100644
index 0000000..d2d6385
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_034.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_034.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_034.imageset/passions_034.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_034.imageset/passions_034.png
new file mode 100644
index 0000000..41bef47
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_034.imageset/passions_034.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_035.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_035.imageset/Contents.json
new file mode 100644
index 0000000..74b4fe8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_035.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_035.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_035.imageset/passions_035.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_035.imageset/passions_035.png
new file mode 100644
index 0000000..6c550f6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_035.imageset/passions_035.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_036.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_036.imageset/Contents.json
new file mode 100644
index 0000000..13a2545
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_036.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_036.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_036.imageset/passions_036.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_036.imageset/passions_036.png
new file mode 100644
index 0000000..6650a20
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_036.imageset/passions_036.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_037.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_037.imageset/Contents.json
new file mode 100644
index 0000000..5c34079
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_037.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_037.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_037.imageset/passions_037.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_037.imageset/passions_037.png
new file mode 100644
index 0000000..6fc506f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_037.imageset/passions_037.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_038.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_038.imageset/Contents.json
new file mode 100644
index 0000000..8abeb80
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_038.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_038.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_038.imageset/passions_038.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_038.imageset/passions_038.png
new file mode 100644
index 0000000..7e6545f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_038.imageset/passions_038.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_039.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_039.imageset/Contents.json
new file mode 100644
index 0000000..ac652b5
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_039.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_039.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_039.imageset/passions_039.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_039.imageset/passions_039.png
new file mode 100644
index 0000000..3d65e32
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_039.imageset/passions_039.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_040.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_040.imageset/Contents.json
new file mode 100644
index 0000000..e2aaff2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_040.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_040.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_040.imageset/passions_040.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_040.imageset/passions_040.png
new file mode 100644
index 0000000..15cb60c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_040.imageset/passions_040.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_041.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_041.imageset/Contents.json
new file mode 100644
index 0000000..109f17f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_041.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_041.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_041.imageset/passions_041.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_041.imageset/passions_041.png
new file mode 100644
index 0000000..cc2919f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_041.imageset/passions_041.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_042.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_042.imageset/Contents.json
new file mode 100644
index 0000000..8857c03
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_042.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_042.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_042.imageset/passions_042.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_042.imageset/passions_042.png
new file mode 100644
index 0000000..c53b67a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_042.imageset/passions_042.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_043.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_043.imageset/Contents.json
new file mode 100644
index 0000000..90c89c8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_043.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_043.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_043.imageset/passions_043.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_043.imageset/passions_043.png
new file mode 100644
index 0000000..f34dfe7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_043.imageset/passions_043.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_044.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_044.imageset/Contents.json
new file mode 100644
index 0000000..f919509
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_044.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_044.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_044.imageset/passions_044.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_044.imageset/passions_044.png
new file mode 100644
index 0000000..caccefc
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_044.imageset/passions_044.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_045.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_045.imageset/Contents.json
new file mode 100644
index 0000000..e2c7df2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_045.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_045.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_045.imageset/passions_045.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_045.imageset/passions_045.png
new file mode 100644
index 0000000..351f2d8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_045.imageset/passions_045.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_046.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_046.imageset/Contents.json
new file mode 100644
index 0000000..0455950
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_046.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_046.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_046.imageset/passions_046.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_046.imageset/passions_046.png
new file mode 100644
index 0000000..5bd297b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_046.imageset/passions_046.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_047.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_047.imageset/Contents.json
new file mode 100644
index 0000000..3bf0827
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_047.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_047.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_047.imageset/passions_047.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_047.imageset/passions_047.png
new file mode 100644
index 0000000..010985e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_047.imageset/passions_047.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_048.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_048.imageset/Contents.json
new file mode 100644
index 0000000..5158ee1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_048.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_048.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_048.imageset/passions_048.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_048.imageset/passions_048.png
new file mode 100644
index 0000000..da74354
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_048.imageset/passions_048.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_049.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_049.imageset/Contents.json
new file mode 100644
index 0000000..ae5ec4c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_049.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_049.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_049.imageset/passions_049.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_049.imageset/passions_049.png
new file mode 100644
index 0000000..e4a089a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_049.imageset/passions_049.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_050.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_050.imageset/Contents.json
new file mode 100644
index 0000000..84efcc8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_050.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_050.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_050.imageset/passions_050.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_050.imageset/passions_050.png
new file mode 100644
index 0000000..14dcda6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_050.imageset/passions_050.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_051.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_051.imageset/Contents.json
new file mode 100644
index 0000000..a2baed1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_051.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_051.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_051.imageset/passions_051.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_051.imageset/passions_051.png
new file mode 100644
index 0000000..41a1016
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_051.imageset/passions_051.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_052.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_052.imageset/Contents.json
new file mode 100644
index 0000000..15f69f4
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_052.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_052.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_052.imageset/passions_052.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_052.imageset/passions_052.png
new file mode 100644
index 0000000..bf17ce6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_052.imageset/passions_052.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_053.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_053.imageset/Contents.json
new file mode 100644
index 0000000..d64ebea
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_053.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_053.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_053.imageset/passions_053.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_053.imageset/passions_053.png
new file mode 100644
index 0000000..dd87a5f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_053.imageset/passions_053.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_054.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_054.imageset/Contents.json
new file mode 100644
index 0000000..38a2121
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_054.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_054.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_054.imageset/passions_054.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_054.imageset/passions_054.png
new file mode 100644
index 0000000..5b38e18
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_054.imageset/passions_054.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_055.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_055.imageset/Contents.json
new file mode 100644
index 0000000..cb5c83c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_055.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_055.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_055.imageset/passions_055.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_055.imageset/passions_055.png
new file mode 100644
index 0000000..38f6d72
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_055.imageset/passions_055.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_056.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_056.imageset/Contents.json
new file mode 100644
index 0000000..2c388cc
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_056.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_056.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_056.imageset/passions_056.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_056.imageset/passions_056.png
new file mode 100644
index 0000000..82289e6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_056.imageset/passions_056.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_057.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_057.imageset/Contents.json
new file mode 100644
index 0000000..3a105ac
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_057.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_057.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_057.imageset/passions_057.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_057.imageset/passions_057.png
new file mode 100644
index 0000000..6d1ae77
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_057.imageset/passions_057.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_058.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_058.imageset/Contents.json
new file mode 100644
index 0000000..dfc3443
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_058.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_058.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_058.imageset/passions_058.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_058.imageset/passions_058.png
new file mode 100644
index 0000000..eabeacb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_058.imageset/passions_058.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_059.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_059.imageset/Contents.json
new file mode 100644
index 0000000..5593a45
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_059.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_059.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_059.imageset/passions_059.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_059.imageset/passions_059.png
new file mode 100644
index 0000000..0595c56
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_059.imageset/passions_059.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_060.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_060.imageset/Contents.json
new file mode 100644
index 0000000..49eb115
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_060.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_060.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_060.imageset/passions_060.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_060.imageset/passions_060.png
new file mode 100644
index 0000000..8a2284a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_060.imageset/passions_060.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_061.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_061.imageset/Contents.json
new file mode 100644
index 0000000..45e091a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_061.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "passions_061.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_061.imageset/passions_061.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_061.imageset/passions_061.png
new file mode 100644
index 0000000..ffa180b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/passions_061.imageset/passions_061.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_000.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_000.imageset/Contents.json
new file mode 100644
index 0000000..a0c4772
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_000.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_000.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_000.imageset/smileys_000.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_000.imageset/smileys_000.png
new file mode 100644
index 0000000..5c2536d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_000.imageset/smileys_000.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_001.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_001.imageset/Contents.json
new file mode 100644
index 0000000..2f1492a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_001.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_001.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_001.imageset/smileys_001.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_001.imageset/smileys_001.png
new file mode 100644
index 0000000..5d4a8ef
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_001.imageset/smileys_001.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_002.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_002.imageset/Contents.json
new file mode 100644
index 0000000..34e5807
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_002.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_002.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_002.imageset/smileys_002.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_002.imageset/smileys_002.png
new file mode 100644
index 0000000..223bad4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_002.imageset/smileys_002.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_003.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_003.imageset/Contents.json
new file mode 100644
index 0000000..45b95a0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_003.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_003.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_003.imageset/smileys_003.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_003.imageset/smileys_003.png
new file mode 100644
index 0000000..07a3f0f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_003.imageset/smileys_003.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_004.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_004.imageset/Contents.json
new file mode 100644
index 0000000..3f0188d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_004.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_004.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_004.imageset/smileys_004.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_004.imageset/smileys_004.png
new file mode 100644
index 0000000..b271423
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_004.imageset/smileys_004.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_005.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_005.imageset/Contents.json
new file mode 100644
index 0000000..c7c425c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_005.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_005.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_005.imageset/smileys_005.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_005.imageset/smileys_005.png
new file mode 100644
index 0000000..11d4162
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_005.imageset/smileys_005.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_006.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_006.imageset/Contents.json
new file mode 100644
index 0000000..9d5f21b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_006.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_006.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_006.imageset/smileys_006.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_006.imageset/smileys_006.png
new file mode 100644
index 0000000..ef7e92e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_006.imageset/smileys_006.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_007.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_007.imageset/Contents.json
new file mode 100644
index 0000000..3411d77
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_007.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_007.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_007.imageset/smileys_007.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_007.imageset/smileys_007.png
new file mode 100644
index 0000000..c2ec07c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_007.imageset/smileys_007.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_008.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_008.imageset/Contents.json
new file mode 100644
index 0000000..5eb3b4d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_008.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_008.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_008.imageset/smileys_008.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_008.imageset/smileys_008.png
new file mode 100644
index 0000000..f87654b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_008.imageset/smileys_008.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_009.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_009.imageset/Contents.json
new file mode 100644
index 0000000..1cd1025
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_009.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_009.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_009.imageset/smileys_009.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_009.imageset/smileys_009.png
new file mode 100644
index 0000000..7e3b173
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_009.imageset/smileys_009.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_010.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_010.imageset/Contents.json
new file mode 100644
index 0000000..e247c51
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_010.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_010.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_010.imageset/smileys_010.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_010.imageset/smileys_010.png
new file mode 100644
index 0000000..1b47f38
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_010.imageset/smileys_010.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_011.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_011.imageset/Contents.json
new file mode 100644
index 0000000..ea3a7cf
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_011.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_011.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_011.imageset/smileys_011.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_011.imageset/smileys_011.png
new file mode 100644
index 0000000..a06b705
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_011.imageset/smileys_011.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_012.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_012.imageset/Contents.json
new file mode 100644
index 0000000..85cd23b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_012.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_012.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_012.imageset/smileys_012.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_012.imageset/smileys_012.png
new file mode 100644
index 0000000..4b737f8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_012.imageset/smileys_012.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_013.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_013.imageset/Contents.json
new file mode 100644
index 0000000..af7b15d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_013.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_013.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_013.imageset/smileys_013.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_013.imageset/smileys_013.png
new file mode 100644
index 0000000..b56a729
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_013.imageset/smileys_013.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_014.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_014.imageset/Contents.json
new file mode 100644
index 0000000..c58c300
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_014.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_014.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_014.imageset/smileys_014.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_014.imageset/smileys_014.png
new file mode 100644
index 0000000..7d3b335
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_014.imageset/smileys_014.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_015.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_015.imageset/Contents.json
new file mode 100644
index 0000000..d60ec4a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_015.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_015.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_015.imageset/smileys_015.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_015.imageset/smileys_015.png
new file mode 100644
index 0000000..c0cca29
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_015.imageset/smileys_015.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_016.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_016.imageset/Contents.json
new file mode 100644
index 0000000..25f09bb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_016.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_016.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_016.imageset/smileys_016.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_016.imageset/smileys_016.png
new file mode 100644
index 0000000..cba49ab
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_016.imageset/smileys_016.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_017.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_017.imageset/Contents.json
new file mode 100644
index 0000000..2595316
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_017.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_017.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_017.imageset/smileys_017.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_017.imageset/smileys_017.png
new file mode 100644
index 0000000..1b3a42c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_017.imageset/smileys_017.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_018.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_018.imageset/Contents.json
new file mode 100644
index 0000000..2a19d4d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_018.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_018.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_018.imageset/smileys_018.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_018.imageset/smileys_018.png
new file mode 100644
index 0000000..80f59d8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_018.imageset/smileys_018.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_019.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_019.imageset/Contents.json
new file mode 100644
index 0000000..e768666
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_019.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_019.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_019.imageset/smileys_019.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_019.imageset/smileys_019.png
new file mode 100644
index 0000000..69acd07
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_019.imageset/smileys_019.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_020.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_020.imageset/Contents.json
new file mode 100644
index 0000000..f8be15a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_020.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_020.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_020.imageset/smileys_020.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_020.imageset/smileys_020.png
new file mode 100644
index 0000000..70fe41d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_020.imageset/smileys_020.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_021.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_021.imageset/Contents.json
new file mode 100644
index 0000000..fc225ca
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_021.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_021.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_021.imageset/smileys_021.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_021.imageset/smileys_021.png
new file mode 100644
index 0000000..8a80383
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_021.imageset/smileys_021.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_022.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_022.imageset/Contents.json
new file mode 100644
index 0000000..a3793f3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_022.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_022.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_022.imageset/smileys_022.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_022.imageset/smileys_022.png
new file mode 100644
index 0000000..ba40abd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_022.imageset/smileys_022.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_023.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_023.imageset/Contents.json
new file mode 100644
index 0000000..74214c0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_023.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_023.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_023.imageset/smileys_023.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_023.imageset/smileys_023.png
new file mode 100644
index 0000000..2416e17
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_023.imageset/smileys_023.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_024.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_024.imageset/Contents.json
new file mode 100644
index 0000000..ce853de
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_024.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_024.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_024.imageset/smileys_024.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_024.imageset/smileys_024.png
new file mode 100644
index 0000000..dd91e30
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_024.imageset/smileys_024.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_025.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_025.imageset/Contents.json
new file mode 100644
index 0000000..b55c508
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_025.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_025.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_025.imageset/smileys_025.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_025.imageset/smileys_025.png
new file mode 100644
index 0000000..c8fa4bd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_025.imageset/smileys_025.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_026.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_026.imageset/Contents.json
new file mode 100644
index 0000000..b31bdf9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_026.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_026.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_026.imageset/smileys_026.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_026.imageset/smileys_026.png
new file mode 100644
index 0000000..ae7f9ef
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_026.imageset/smileys_026.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_027.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_027.imageset/Contents.json
new file mode 100644
index 0000000..f7e7833
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_027.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_027.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_027.imageset/smileys_027.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_027.imageset/smileys_027.png
new file mode 100644
index 0000000..6177a00
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_027.imageset/smileys_027.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_028.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_028.imageset/Contents.json
new file mode 100644
index 0000000..ec35da8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_028.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_028.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_028.imageset/smileys_028.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_028.imageset/smileys_028.png
new file mode 100644
index 0000000..c80e724
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_028.imageset/smileys_028.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_029.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_029.imageset/Contents.json
new file mode 100644
index 0000000..78b1305
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_029.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_029.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_029.imageset/smileys_029.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_029.imageset/smileys_029.png
new file mode 100644
index 0000000..9d2f0ec
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_029.imageset/smileys_029.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_030.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_030.imageset/Contents.json
new file mode 100644
index 0000000..3686503
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_030.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_030.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_030.imageset/smileys_030.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_030.imageset/smileys_030.png
new file mode 100644
index 0000000..66a2d07
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_030.imageset/smileys_030.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_031.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_031.imageset/Contents.json
new file mode 100644
index 0000000..7d6b9dd
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_031.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_031.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_031.imageset/smileys_031.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_031.imageset/smileys_031.png
new file mode 100644
index 0000000..ba8f446
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_031.imageset/smileys_031.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_032.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_032.imageset/Contents.json
new file mode 100644
index 0000000..e60e60f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_032.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_032.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_032.imageset/smileys_032.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_032.imageset/smileys_032.png
new file mode 100644
index 0000000..e01254c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_032.imageset/smileys_032.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_033.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_033.imageset/Contents.json
new file mode 100644
index 0000000..f47f133
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_033.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_033.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_033.imageset/smileys_033.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_033.imageset/smileys_033.png
new file mode 100644
index 0000000..6ededa3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_033.imageset/smileys_033.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_034.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_034.imageset/Contents.json
new file mode 100644
index 0000000..b439cb8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_034.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_034.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_034.imageset/smileys_034.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_034.imageset/smileys_034.png
new file mode 100644
index 0000000..8e5d741
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_034.imageset/smileys_034.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_035.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_035.imageset/Contents.json
new file mode 100644
index 0000000..0ebe120
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_035.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_035.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_035.imageset/smileys_035.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_035.imageset/smileys_035.png
new file mode 100644
index 0000000..67a3519
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_035.imageset/smileys_035.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_036.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_036.imageset/Contents.json
new file mode 100644
index 0000000..a57e76f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_036.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_036.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_036.imageset/smileys_036.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_036.imageset/smileys_036.png
new file mode 100644
index 0000000..67e0d55
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_036.imageset/smileys_036.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_037.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_037.imageset/Contents.json
new file mode 100644
index 0000000..d35b47a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_037.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_037.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_037.imageset/smileys_037.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_037.imageset/smileys_037.png
new file mode 100644
index 0000000..1ec4b13
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_037.imageset/smileys_037.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_038.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_038.imageset/Contents.json
new file mode 100644
index 0000000..1d10070
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_038.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_038.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_038.imageset/smileys_038.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_038.imageset/smileys_038.png
new file mode 100644
index 0000000..49e572b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_038.imageset/smileys_038.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_039.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_039.imageset/Contents.json
new file mode 100644
index 0000000..e90525f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_039.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_039.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_039.imageset/smileys_039.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_039.imageset/smileys_039.png
new file mode 100644
index 0000000..0954c53
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_039.imageset/smileys_039.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_040.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_040.imageset/Contents.json
new file mode 100644
index 0000000..c6fc6ab
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_040.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_040.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_040.imageset/smileys_040.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_040.imageset/smileys_040.png
new file mode 100644
index 0000000..0d7ad69
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_040.imageset/smileys_040.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_041.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_041.imageset/Contents.json
new file mode 100644
index 0000000..7291baa
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_041.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_041.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_041.imageset/smileys_041.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_041.imageset/smileys_041.png
new file mode 100644
index 0000000..915a4a4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_041.imageset/smileys_041.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_042.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_042.imageset/Contents.json
new file mode 100644
index 0000000..7829489
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_042.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_042.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_042.imageset/smileys_042.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_042.imageset/smileys_042.png
new file mode 100644
index 0000000..865b5e2
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_042.imageset/smileys_042.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_043.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_043.imageset/Contents.json
new file mode 100644
index 0000000..c632394
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_043.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_043.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_043.imageset/smileys_043.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_043.imageset/smileys_043.png
new file mode 100644
index 0000000..888e34b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_043.imageset/smileys_043.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_044.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_044.imageset/Contents.json
new file mode 100644
index 0000000..9686195
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_044.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_044.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_044.imageset/smileys_044.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_044.imageset/smileys_044.png
new file mode 100644
index 0000000..fb9288f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_044.imageset/smileys_044.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_045.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_045.imageset/Contents.json
new file mode 100644
index 0000000..e26e4ba
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_045.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_045.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_045.imageset/smileys_045.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_045.imageset/smileys_045.png
new file mode 100644
index 0000000..65db321
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_045.imageset/smileys_045.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_046.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_046.imageset/Contents.json
new file mode 100644
index 0000000..49570c6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_046.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_046.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_046.imageset/smileys_046.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_046.imageset/smileys_046.png
new file mode 100644
index 0000000..b1193e4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_046.imageset/smileys_046.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_047.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_047.imageset/Contents.json
new file mode 100644
index 0000000..7b029b3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_047.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_047.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_047.imageset/smileys_047.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_047.imageset/smileys_047.png
new file mode 100644
index 0000000..3939919
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_047.imageset/smileys_047.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_048.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_048.imageset/Contents.json
new file mode 100644
index 0000000..d67e383
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_048.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_048.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_048.imageset/smileys_048.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_048.imageset/smileys_048.png
new file mode 100644
index 0000000..c5c1d48
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_048.imageset/smileys_048.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_049.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_049.imageset/Contents.json
new file mode 100644
index 0000000..c254a87
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_049.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_049.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_049.imageset/smileys_049.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_049.imageset/smileys_049.png
new file mode 100644
index 0000000..b06faca
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_049.imageset/smileys_049.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_050.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_050.imageset/Contents.json
new file mode 100644
index 0000000..ab346a2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_050.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_050.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_050.imageset/smileys_050.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_050.imageset/smileys_050.png
new file mode 100644
index 0000000..c6a35d3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_050.imageset/smileys_050.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_051.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_051.imageset/Contents.json
new file mode 100644
index 0000000..2b2b89e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_051.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_051.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_051.imageset/smileys_051.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_051.imageset/smileys_051.png
new file mode 100644
index 0000000..0ae9bae
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_051.imageset/smileys_051.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_052.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_052.imageset/Contents.json
new file mode 100644
index 0000000..eed1bee
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_052.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_052.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_052.imageset/smileys_052.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_052.imageset/smileys_052.png
new file mode 100644
index 0000000..cabb5d2
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_052.imageset/smileys_052.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_053.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_053.imageset/Contents.json
new file mode 100644
index 0000000..292fc6f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_053.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_053.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_053.imageset/smileys_053.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_053.imageset/smileys_053.png
new file mode 100644
index 0000000..ea02c1b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_053.imageset/smileys_053.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_054.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_054.imageset/Contents.json
new file mode 100644
index 0000000..f2aac02
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_054.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_054.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_054.imageset/smileys_054.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_054.imageset/smileys_054.png
new file mode 100644
index 0000000..b197aa2
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_054.imageset/smileys_054.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_055.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_055.imageset/Contents.json
new file mode 100644
index 0000000..a3f74b7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_055.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_055.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_055.imageset/smileys_055.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_055.imageset/smileys_055.png
new file mode 100644
index 0000000..ce1735a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_055.imageset/smileys_055.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_056.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_056.imageset/Contents.json
new file mode 100644
index 0000000..cea911a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_056.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_056.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_056.imageset/smileys_056.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_056.imageset/smileys_056.png
new file mode 100644
index 0000000..37e7903
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_056.imageset/smileys_056.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_057.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_057.imageset/Contents.json
new file mode 100644
index 0000000..fe64796
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_057.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_057.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_057.imageset/smileys_057.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_057.imageset/smileys_057.png
new file mode 100644
index 0000000..1567dc4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_057.imageset/smileys_057.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_058.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_058.imageset/Contents.json
new file mode 100644
index 0000000..9a3bf1a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_058.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_058.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_058.imageset/smileys_058.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_058.imageset/smileys_058.png
new file mode 100644
index 0000000..97d9935
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_058.imageset/smileys_058.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_059.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_059.imageset/Contents.json
new file mode 100644
index 0000000..ad4ac84
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_059.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_059.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_059.imageset/smileys_059.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_059.imageset/smileys_059.png
new file mode 100644
index 0000000..c6c8e3b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_059.imageset/smileys_059.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_060.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_060.imageset/Contents.json
new file mode 100644
index 0000000..2f18716
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_060.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_060.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_060.imageset/smileys_060.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_060.imageset/smileys_060.png
new file mode 100644
index 0000000..6aebd29
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_060.imageset/smileys_060.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_061.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_061.imageset/Contents.json
new file mode 100644
index 0000000..8334cf4
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_061.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_061.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_061.imageset/smileys_061.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_061.imageset/smileys_061.png
new file mode 100644
index 0000000..3a04856
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_061.imageset/smileys_061.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_062.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_062.imageset/Contents.json
new file mode 100644
index 0000000..9f2e6cf
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_062.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_062.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_062.imageset/smileys_062.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_062.imageset/smileys_062.png
new file mode 100644
index 0000000..ba06091
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_062.imageset/smileys_062.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_063.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_063.imageset/Contents.json
new file mode 100644
index 0000000..3e0aa65
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_063.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_063.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_063.imageset/smileys_063.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_063.imageset/smileys_063.png
new file mode 100644
index 0000000..97fc0f4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_063.imageset/smileys_063.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_064.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_064.imageset/Contents.json
new file mode 100644
index 0000000..c0b91bd
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_064.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_064.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_064.imageset/smileys_064.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_064.imageset/smileys_064.png
new file mode 100644
index 0000000..13936b9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_064.imageset/smileys_064.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_065.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_065.imageset/Contents.json
new file mode 100644
index 0000000..6e7eba6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_065.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_065.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_065.imageset/smileys_065.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_065.imageset/smileys_065.png
new file mode 100644
index 0000000..897864a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_065.imageset/smileys_065.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_066.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_066.imageset/Contents.json
new file mode 100644
index 0000000..8e4982f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_066.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_066.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_066.imageset/smileys_066.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_066.imageset/smileys_066.png
new file mode 100644
index 0000000..d317663
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_066.imageset/smileys_066.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_067.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_067.imageset/Contents.json
new file mode 100644
index 0000000..e833167
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_067.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_067.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_067.imageset/smileys_067.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_067.imageset/smileys_067.png
new file mode 100644
index 0000000..7ff785b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_067.imageset/smileys_067.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_068.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_068.imageset/Contents.json
new file mode 100644
index 0000000..3557874
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_068.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_068.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_068.imageset/smileys_068.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_068.imageset/smileys_068.png
new file mode 100644
index 0000000..0be736e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_068.imageset/smileys_068.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_069.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_069.imageset/Contents.json
new file mode 100644
index 0000000..3055f48
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_069.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_069.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_069.imageset/smileys_069.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_069.imageset/smileys_069.png
new file mode 100644
index 0000000..7dc2b8c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_069.imageset/smileys_069.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_070.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_070.imageset/Contents.json
new file mode 100644
index 0000000..47c918f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_070.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_070.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_070.imageset/smileys_070.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_070.imageset/smileys_070.png
new file mode 100644
index 0000000..3a3ac38
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_070.imageset/smileys_070.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_071.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_071.imageset/Contents.json
new file mode 100644
index 0000000..62dfdbd
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_071.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_071.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_071.imageset/smileys_071.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_071.imageset/smileys_071.png
new file mode 100644
index 0000000..19173cb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_071.imageset/smileys_071.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_072.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_072.imageset/Contents.json
new file mode 100644
index 0000000..5b7ef2b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_072.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_072.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_072.imageset/smileys_072.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_072.imageset/smileys_072.png
new file mode 100644
index 0000000..7597d50
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_072.imageset/smileys_072.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_073.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_073.imageset/Contents.json
new file mode 100644
index 0000000..83f4874
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_073.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_073.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_073.imageset/smileys_073.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_073.imageset/smileys_073.png
new file mode 100644
index 0000000..ad9c2f6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_073.imageset/smileys_073.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_074.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_074.imageset/Contents.json
new file mode 100644
index 0000000..568c658
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_074.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_074.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_074.imageset/smileys_074.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_074.imageset/smileys_074.png
new file mode 100644
index 0000000..c5e0fcb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_074.imageset/smileys_074.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_075.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_075.imageset/Contents.json
new file mode 100644
index 0000000..43ebc2b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_075.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_075.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_075.imageset/smileys_075.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_075.imageset/smileys_075.png
new file mode 100644
index 0000000..a81e363
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_075.imageset/smileys_075.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_076.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_076.imageset/Contents.json
new file mode 100644
index 0000000..fac7109
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_076.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_076.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_076.imageset/smileys_076.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_076.imageset/smileys_076.png
new file mode 100644
index 0000000..90e4f98
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_076.imageset/smileys_076.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_077.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_077.imageset/Contents.json
new file mode 100644
index 0000000..188354a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_077.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_077.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_077.imageset/smileys_077.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_077.imageset/smileys_077.png
new file mode 100644
index 0000000..f20fd6a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_077.imageset/smileys_077.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_078.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_078.imageset/Contents.json
new file mode 100644
index 0000000..11c381f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_078.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_078.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_078.imageset/smileys_078.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_078.imageset/smileys_078.png
new file mode 100644
index 0000000..ed92118
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_078.imageset/smileys_078.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_079.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_079.imageset/Contents.json
new file mode 100644
index 0000000..391dc22
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_079.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_079.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_079.imageset/smileys_079.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_079.imageset/smileys_079.png
new file mode 100644
index 0000000..970163c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_079.imageset/smileys_079.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_080.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_080.imageset/Contents.json
new file mode 100644
index 0000000..00dc1b2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_080.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_080.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_080.imageset/smileys_080.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_080.imageset/smileys_080.png
new file mode 100644
index 0000000..0bb9e83
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_080.imageset/smileys_080.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_081.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_081.imageset/Contents.json
new file mode 100644
index 0000000..fe78abe
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_081.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_081.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_081.imageset/smileys_081.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_081.imageset/smileys_081.png
new file mode 100644
index 0000000..20d63ba
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_081.imageset/smileys_081.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_082.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_082.imageset/Contents.json
new file mode 100644
index 0000000..78cf3ec
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_082.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "smileys_082.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_082.imageset/smileys_082.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_082.imageset/smileys_082.png
new file mode 100644
index 0000000..35d935a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/smileys_082.imageset/smileys_082.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_000.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_000.imageset/Contents.json
new file mode 100644
index 0000000..2330f66
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_000.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_000.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_000.imageset/sticker_000.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_000.imageset/sticker_000.png
new file mode 100644
index 0000000..9679831
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_000.imageset/sticker_000.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_001.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_001.imageset/Contents.json
new file mode 100644
index 0000000..4b3d537
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_001.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_001.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_001.imageset/sticker_001.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_001.imageset/sticker_001.png
new file mode 100644
index 0000000..256288f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_001.imageset/sticker_001.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_002.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_002.imageset/Contents.json
new file mode 100644
index 0000000..afe57b7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_002.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_002.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_002.imageset/sticker_002.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_002.imageset/sticker_002.png
new file mode 100644
index 0000000..6b286d1
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_002.imageset/sticker_002.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_003.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_003.imageset/Contents.json
new file mode 100644
index 0000000..6427426
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_003.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_003.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_003.imageset/sticker_003.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_003.imageset/sticker_003.png
new file mode 100644
index 0000000..2730986
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_003.imageset/sticker_003.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_004.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_004.imageset/Contents.json
new file mode 100644
index 0000000..32d5e6b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_004.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_004.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_004.imageset/sticker_004.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_004.imageset/sticker_004.png
new file mode 100644
index 0000000..492d409
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_004.imageset/sticker_004.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_005.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_005.imageset/Contents.json
new file mode 100644
index 0000000..c9ec4d2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_005.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_005.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_005.imageset/sticker_005.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_005.imageset/sticker_005.png
new file mode 100644
index 0000000..2186e29
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_005.imageset/sticker_005.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_006.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_006.imageset/Contents.json
new file mode 100644
index 0000000..8f90dfc
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_006.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_006.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_006.imageset/sticker_006.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_006.imageset/sticker_006.png
new file mode 100644
index 0000000..d04ba0b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_006.imageset/sticker_006.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_007.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_007.imageset/Contents.json
new file mode 100644
index 0000000..140beca
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_007.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_007.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_007.imageset/sticker_007.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_007.imageset/sticker_007.png
new file mode 100644
index 0000000..536fce6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_007.imageset/sticker_007.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_008.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_008.imageset/Contents.json
new file mode 100644
index 0000000..869aaed
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_008.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_008.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_008.imageset/sticker_008.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_008.imageset/sticker_008.png
new file mode 100644
index 0000000..f4d1eac
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_008.imageset/sticker_008.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_009.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_009.imageset/Contents.json
new file mode 100644
index 0000000..30c89b9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_009.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_009.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_009.imageset/sticker_009.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_009.imageset/sticker_009.png
new file mode 100644
index 0000000..77aa1b0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_009.imageset/sticker_009.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_010.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_010.imageset/Contents.json
new file mode 100644
index 0000000..60a229d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_010.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_010.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_010.imageset/sticker_010.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_010.imageset/sticker_010.png
new file mode 100644
index 0000000..0bd3a63
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_010.imageset/sticker_010.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_011.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_011.imageset/Contents.json
new file mode 100644
index 0000000..02c20f0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_011.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_011.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_011.imageset/sticker_011.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_011.imageset/sticker_011.png
new file mode 100644
index 0000000..07fcf26
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_011.imageset/sticker_011.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_012.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_012.imageset/Contents.json
new file mode 100644
index 0000000..07cd64c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_012.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_012.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_012.imageset/sticker_012.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_012.imageset/sticker_012.png
new file mode 100644
index 0000000..5d4ad7d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_012.imageset/sticker_012.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_013.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_013.imageset/Contents.json
new file mode 100644
index 0000000..f420611
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_013.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_013.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_013.imageset/sticker_013.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_013.imageset/sticker_013.png
new file mode 100644
index 0000000..f33ec15
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_013.imageset/sticker_013.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_014.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_014.imageset/Contents.json
new file mode 100644
index 0000000..d9f2e05
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_014.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_014.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_014.imageset/sticker_014.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_014.imageset/sticker_014.png
new file mode 100644
index 0000000..90546db
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_014.imageset/sticker_014.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_015.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_015.imageset/Contents.json
new file mode 100644
index 0000000..2732a7f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_015.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_015.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_015.imageset/sticker_015.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_015.imageset/sticker_015.png
new file mode 100644
index 0000000..a13677c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_015.imageset/sticker_015.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_016.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_016.imageset/Contents.json
new file mode 100644
index 0000000..cab4499
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_016.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_016.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_016.imageset/sticker_016.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_016.imageset/sticker_016.png
new file mode 100644
index 0000000..89850c8
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_016.imageset/sticker_016.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_017.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_017.imageset/Contents.json
new file mode 100644
index 0000000..f6818ce
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_017.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_017.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_017.imageset/sticker_017.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_017.imageset/sticker_017.png
new file mode 100644
index 0000000..b51432e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_017.imageset/sticker_017.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_018.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_018.imageset/Contents.json
new file mode 100644
index 0000000..9ab357e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_018.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_018.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_018.imageset/sticker_018.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_018.imageset/sticker_018.png
new file mode 100644
index 0000000..a62d4b9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_018.imageset/sticker_018.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_019.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_019.imageset/Contents.json
new file mode 100644
index 0000000..5227219
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_019.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_019.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_019.imageset/sticker_019.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_019.imageset/sticker_019.png
new file mode 100644
index 0000000..b32768d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_019.imageset/sticker_019.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_020.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_020.imageset/Contents.json
new file mode 100644
index 0000000..4e59e62
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_020.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_020.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_020.imageset/sticker_020.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_020.imageset/sticker_020.png
new file mode 100644
index 0000000..aefac17
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_020.imageset/sticker_020.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_021.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_021.imageset/Contents.json
new file mode 100644
index 0000000..368c0ff
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_021.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_021.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_021.imageset/sticker_021.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_021.imageset/sticker_021.png
new file mode 100644
index 0000000..c347bb4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_021.imageset/sticker_021.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_022.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_022.imageset/Contents.json
new file mode 100644
index 0000000..0c0404a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_022.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_022.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_022.imageset/sticker_022.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_022.imageset/sticker_022.png
new file mode 100644
index 0000000..25436cd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_022.imageset/sticker_022.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_023.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_023.imageset/Contents.json
new file mode 100644
index 0000000..883c7d3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_023.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_023.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_023.imageset/sticker_023.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_023.imageset/sticker_023.png
new file mode 100644
index 0000000..877fe36
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_023.imageset/sticker_023.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_024.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_024.imageset/Contents.json
new file mode 100644
index 0000000..afe1364
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_024.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_024.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_024.imageset/sticker_024.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_024.imageset/sticker_024.png
new file mode 100644
index 0000000..b013325
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_024.imageset/sticker_024.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_025.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_025.imageset/Contents.json
new file mode 100644
index 0000000..43de963
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_025.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_025.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_025.imageset/sticker_025.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_025.imageset/sticker_025.png
new file mode 100644
index 0000000..466ea58
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_025.imageset/sticker_025.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_026.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_026.imageset/Contents.json
new file mode 100644
index 0000000..7331d8a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_026.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_026.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_026.imageset/sticker_026.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_026.imageset/sticker_026.png
new file mode 100644
index 0000000..a65d85b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_026.imageset/sticker_026.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_027.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_027.imageset/Contents.json
new file mode 100644
index 0000000..6f2d3ba
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_027.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_027.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_027.imageset/sticker_027.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_027.imageset/sticker_027.png
new file mode 100644
index 0000000..bcff4cd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_027.imageset/sticker_027.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_028.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_028.imageset/Contents.json
new file mode 100644
index 0000000..dea0f4a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_028.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_028.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_028.imageset/sticker_028.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_028.imageset/sticker_028.png
new file mode 100644
index 0000000..3027a2b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_028.imageset/sticker_028.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_029.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_029.imageset/Contents.json
new file mode 100644
index 0000000..64308b4
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_029.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_029.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_029.imageset/sticker_029.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_029.imageset/sticker_029.png
new file mode 100644
index 0000000..fcc24be
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_029.imageset/sticker_029.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_030.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_030.imageset/Contents.json
new file mode 100644
index 0000000..7b37677
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_030.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_030.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_030.imageset/sticker_030.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_030.imageset/sticker_030.png
new file mode 100644
index 0000000..37a7080
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_030.imageset/sticker_030.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_031.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_031.imageset/Contents.json
new file mode 100644
index 0000000..60425d1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_031.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_031.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_031.imageset/sticker_031.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_031.imageset/sticker_031.png
new file mode 100644
index 0000000..64e1d84
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_031.imageset/sticker_031.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_032.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_032.imageset/Contents.json
new file mode 100644
index 0000000..49ebfe9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_032.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_032.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_032.imageset/sticker_032.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_032.imageset/sticker_032.png
new file mode 100644
index 0000000..6d9b797
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_032.imageset/sticker_032.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_033.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_033.imageset/Contents.json
new file mode 100644
index 0000000..75dd745
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_033.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_033.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_033.imageset/sticker_033.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_033.imageset/sticker_033.png
new file mode 100644
index 0000000..ccaa407
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_033.imageset/sticker_033.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_034.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_034.imageset/Contents.json
new file mode 100644
index 0000000..d00b968
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_034.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_034.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_034.imageset/sticker_034.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_034.imageset/sticker_034.png
new file mode 100644
index 0000000..515f3c0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_034.imageset/sticker_034.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_035.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_035.imageset/Contents.json
new file mode 100644
index 0000000..92fc2ce
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_035.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_035.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_035.imageset/sticker_035.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_035.imageset/sticker_035.png
new file mode 100644
index 0000000..d8843a5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_035.imageset/sticker_035.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_036.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_036.imageset/Contents.json
new file mode 100644
index 0000000..40cd072
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_036.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_036.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_036.imageset/sticker_036.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_036.imageset/sticker_036.png
new file mode 100644
index 0000000..552d999
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_036.imageset/sticker_036.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_037.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_037.imageset/Contents.json
new file mode 100644
index 0000000..889b0ec
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_037.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_037.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_037.imageset/sticker_037.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_037.imageset/sticker_037.png
new file mode 100644
index 0000000..745ee4c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_037.imageset/sticker_037.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_038.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_038.imageset/Contents.json
new file mode 100644
index 0000000..4c52161
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_038.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_038.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_038.imageset/sticker_038.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_038.imageset/sticker_038.png
new file mode 100644
index 0000000..cce36df
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_038.imageset/sticker_038.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_039.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_039.imageset/Contents.json
new file mode 100644
index 0000000..9d52314
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_039.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_039.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_039.imageset/sticker_039.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_039.imageset/sticker_039.png
new file mode 100644
index 0000000..2263133
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_039.imageset/sticker_039.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_040.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_040.imageset/Contents.json
new file mode 100644
index 0000000..838f5e4
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_040.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_040.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_040.imageset/sticker_040.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_040.imageset/sticker_040.png
new file mode 100644
index 0000000..c90bb23
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_040.imageset/sticker_040.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_041.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_041.imageset/Contents.json
new file mode 100644
index 0000000..3c60414
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_041.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_041.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_041.imageset/sticker_041.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_041.imageset/sticker_041.png
new file mode 100644
index 0000000..b623517
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_041.imageset/sticker_041.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_042.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_042.imageset/Contents.json
new file mode 100644
index 0000000..064933b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_042.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_042.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_042.imageset/sticker_042.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_042.imageset/sticker_042.png
new file mode 100644
index 0000000..c39ab75
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_042.imageset/sticker_042.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_043.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_043.imageset/Contents.json
new file mode 100644
index 0000000..21262eb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_043.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_043.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_043.imageset/sticker_043.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_043.imageset/sticker_043.png
new file mode 100644
index 0000000..5b6dd9c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_043.imageset/sticker_043.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_044.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_044.imageset/Contents.json
new file mode 100644
index 0000000..d52aa8e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_044.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_044.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_044.imageset/sticker_044.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_044.imageset/sticker_044.png
new file mode 100644
index 0000000..bca83a0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_044.imageset/sticker_044.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_045.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_045.imageset/Contents.json
new file mode 100644
index 0000000..ca8426a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_045.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_045.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_045.imageset/sticker_045.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_045.imageset/sticker_045.png
new file mode 100644
index 0000000..703b053
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_045.imageset/sticker_045.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_046.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_046.imageset/Contents.json
new file mode 100644
index 0000000..6fe50b9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_046.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_046.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_046.imageset/sticker_046.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_046.imageset/sticker_046.png
new file mode 100644
index 0000000..087d7ca
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_046.imageset/sticker_046.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_047.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_047.imageset/Contents.json
new file mode 100644
index 0000000..79dc1b2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_047.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_047.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_047.imageset/sticker_047.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_047.imageset/sticker_047.png
new file mode 100644
index 0000000..3947442
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_047.imageset/sticker_047.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_048.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_048.imageset/Contents.json
new file mode 100644
index 0000000..a0565c4
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_048.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_048.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_048.imageset/sticker_048.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_048.imageset/sticker_048.png
new file mode 100644
index 0000000..03c73d9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_048.imageset/sticker_048.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_049.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_049.imageset/Contents.json
new file mode 100644
index 0000000..d11817e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_049.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_049.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_049.imageset/sticker_049.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_049.imageset/sticker_049.png
new file mode 100644
index 0000000..c40a5cb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_049.imageset/sticker_049.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_050.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_050.imageset/Contents.json
new file mode 100644
index 0000000..7d5def9
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_050.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_050.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_050.imageset/sticker_050.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_050.imageset/sticker_050.png
new file mode 100644
index 0000000..65bca65
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_050.imageset/sticker_050.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_051.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_051.imageset/Contents.json
new file mode 100644
index 0000000..a5d809e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_051.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_051.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_051.imageset/sticker_051.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_051.imageset/sticker_051.png
new file mode 100644
index 0000000..f45c46c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_051.imageset/sticker_051.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_052.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_052.imageset/Contents.json
new file mode 100644
index 0000000..504b6aa
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_052.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_052.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_052.imageset/sticker_052.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_052.imageset/sticker_052.png
new file mode 100644
index 0000000..f7efe47
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_052.imageset/sticker_052.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_053.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_053.imageset/Contents.json
new file mode 100644
index 0000000..153b2d0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_053.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_053.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_053.imageset/sticker_053.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_053.imageset/sticker_053.png
new file mode 100644
index 0000000..b834038
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_053.imageset/sticker_053.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_054.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_054.imageset/Contents.json
new file mode 100644
index 0000000..fdc9826
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_054.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_054.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_054.imageset/sticker_054.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_054.imageset/sticker_054.png
new file mode 100644
index 0000000..009ad7f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_054.imageset/sticker_054.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_055.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_055.imageset/Contents.json
new file mode 100644
index 0000000..9a5293d
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_055.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_055.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_055.imageset/sticker_055.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_055.imageset/sticker_055.png
new file mode 100644
index 0000000..d269b77
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_055.imageset/sticker_055.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_056.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_056.imageset/Contents.json
new file mode 100644
index 0000000..03de70b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_056.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_056.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_056.imageset/sticker_056.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_056.imageset/sticker_056.png
new file mode 100644
index 0000000..1bab469
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_056.imageset/sticker_056.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_057.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_057.imageset/Contents.json
new file mode 100644
index 0000000..ff19c99
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_057.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_057.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_057.imageset/sticker_057.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_057.imageset/sticker_057.png
new file mode 100644
index 0000000..c0d3b04
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_057.imageset/sticker_057.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_058.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_058.imageset/Contents.json
new file mode 100644
index 0000000..e8b1945
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_058.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_058.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_058.imageset/sticker_058.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_058.imageset/sticker_058.png
new file mode 100644
index 0000000..4848840
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_058.imageset/sticker_058.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_059.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_059.imageset/Contents.json
new file mode 100644
index 0000000..ff307c6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_059.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_059.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_059.imageset/sticker_059.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_059.imageset/sticker_059.png
new file mode 100644
index 0000000..1a9558e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_059.imageset/sticker_059.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_060.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_060.imageset/Contents.json
new file mode 100644
index 0000000..ae3b545
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_060.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_060.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_060.imageset/sticker_060.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_060.imageset/sticker_060.png
new file mode 100644
index 0000000..17d6a19
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_060.imageset/sticker_060.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_061.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_061.imageset/Contents.json
new file mode 100644
index 0000000..06b6208
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_061.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_061.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_061.imageset/sticker_061.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_061.imageset/sticker_061.png
new file mode 100644
index 0000000..5573581
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_061.imageset/sticker_061.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_062.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_062.imageset/Contents.json
new file mode 100644
index 0000000..0296d70
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_062.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_062.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_062.imageset/sticker_062.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_062.imageset/sticker_062.png
new file mode 100644
index 0000000..66a8177
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_062.imageset/sticker_062.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_063.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_063.imageset/Contents.json
new file mode 100644
index 0000000..72edcee
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_063.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_063.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_063.imageset/sticker_063.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_063.imageset/sticker_063.png
new file mode 100644
index 0000000..64e3600
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_063.imageset/sticker_063.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_064.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_064.imageset/Contents.json
new file mode 100644
index 0000000..fa170e1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_064.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_064.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_064.imageset/sticker_064.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_064.imageset/sticker_064.png
new file mode 100644
index 0000000..93252da
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_064.imageset/sticker_064.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_065.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_065.imageset/Contents.json
new file mode 100644
index 0000000..b8e1b5f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_065.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_065.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_065.imageset/sticker_065.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_065.imageset/sticker_065.png
new file mode 100644
index 0000000..8e0530f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_065.imageset/sticker_065.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_066.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_066.imageset/Contents.json
new file mode 100644
index 0000000..c892029
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_066.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_066.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_066.imageset/sticker_066.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_066.imageset/sticker_066.png
new file mode 100644
index 0000000..6301bdb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_066.imageset/sticker_066.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_067.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_067.imageset/Contents.json
new file mode 100644
index 0000000..0e14e7c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_067.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_067.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_067.imageset/sticker_067.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_067.imageset/sticker_067.png
new file mode 100644
index 0000000..71b6d88
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_067.imageset/sticker_067.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_068.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_068.imageset/Contents.json
new file mode 100644
index 0000000..a6cd70e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_068.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sticker_068.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_068.imageset/sticker_068.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_068.imageset/sticker_068.png
new file mode 100644
index 0000000..be15f8c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/sticker_068.imageset/sticker_068.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/Contents.json
new file mode 100644
index 0000000..77d36b0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "stickers@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "stickers@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/stickers@2x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/stickers@2x.png
new file mode 100644
index 0000000..6e5d956
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/stickers@2x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/stickers@3x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/stickers@3x.png
new file mode 100644
index 0000000..b43e862
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers.imageset/stickers@3x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/Contents.json
new file mode 100644
index 0000000..5f782b2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "stickers_selected@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "stickers_selected@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/stickers_selected@2x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/stickers_selected@2x.png
new file mode 100644
index 0000000..b0456e3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/stickers_selected@2x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/stickers_selected@3x.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/stickers_selected@3x.png
new file mode 100644
index 0000000..49642b7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/stickers_selected.imageset/stickers_selected@3x.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_000.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_000.imageset/Contents.json
new file mode 100644
index 0000000..1a83ed3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_000.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_000.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_000.imageset/texts_000.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_000.imageset/texts_000.png
new file mode 100644
index 0000000..102a566
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_000.imageset/texts_000.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_001.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_001.imageset/Contents.json
new file mode 100644
index 0000000..af24323
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_001.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_001.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_001.imageset/texts_001.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_001.imageset/texts_001.png
new file mode 100644
index 0000000..9a1400a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_001.imageset/texts_001.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_002.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_002.imageset/Contents.json
new file mode 100644
index 0000000..63ecfe8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_002.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_002.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_002.imageset/texts_002.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_002.imageset/texts_002.png
new file mode 100644
index 0000000..bf490c0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_002.imageset/texts_002.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_003.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_003.imageset/Contents.json
new file mode 100644
index 0000000..e01da32
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_003.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_003.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_003.imageset/texts_003.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_003.imageset/texts_003.png
new file mode 100644
index 0000000..7378cd6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_003.imageset/texts_003.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_004.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_004.imageset/Contents.json
new file mode 100644
index 0000000..55d58eb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_004.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_004.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_004.imageset/texts_004.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_004.imageset/texts_004.png
new file mode 100644
index 0000000..168105e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_004.imageset/texts_004.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_005.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_005.imageset/Contents.json
new file mode 100644
index 0000000..90eb04a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_005.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_005.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_005.imageset/texts_005.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_005.imageset/texts_005.png
new file mode 100644
index 0000000..f00ea23
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_005.imageset/texts_005.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_006.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_006.imageset/Contents.json
new file mode 100644
index 0000000..b370e35
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_006.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_006.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_006.imageset/texts_006.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_006.imageset/texts_006.png
new file mode 100644
index 0000000..ed78d6b
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_006.imageset/texts_006.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_007.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_007.imageset/Contents.json
new file mode 100644
index 0000000..2de7f0a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_007.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_007.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_007.imageset/texts_007.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_007.imageset/texts_007.png
new file mode 100644
index 0000000..72e2635
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_007.imageset/texts_007.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_008.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_008.imageset/Contents.json
new file mode 100644
index 0000000..550cc36
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_008.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_008.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_008.imageset/texts_008.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_008.imageset/texts_008.png
new file mode 100644
index 0000000..efb1c99
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_008.imageset/texts_008.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_009.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_009.imageset/Contents.json
new file mode 100644
index 0000000..bb49e66
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_009.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_009.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_009.imageset/texts_009.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_009.imageset/texts_009.png
new file mode 100644
index 0000000..e24d0a2
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_009.imageset/texts_009.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_010.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_010.imageset/Contents.json
new file mode 100644
index 0000000..1558eee
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_010.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_010.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_010.imageset/texts_010.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_010.imageset/texts_010.png
new file mode 100644
index 0000000..d902f1d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_010.imageset/texts_010.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_011.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_011.imageset/Contents.json
new file mode 100644
index 0000000..9d5cdd6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_011.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_011.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_011.imageset/texts_011.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_011.imageset/texts_011.png
new file mode 100644
index 0000000..b1203c7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_011.imageset/texts_011.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_012.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_012.imageset/Contents.json
new file mode 100644
index 0000000..16ad9bf
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_012.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_012.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_012.imageset/texts_012.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_012.imageset/texts_012.png
new file mode 100644
index 0000000..8a27692
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_012.imageset/texts_012.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_013.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_013.imageset/Contents.json
new file mode 100644
index 0000000..ef5609c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_013.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_013.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_013.imageset/texts_013.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_013.imageset/texts_013.png
new file mode 100644
index 0000000..e3b7fba
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_013.imageset/texts_013.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_014.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_014.imageset/Contents.json
new file mode 100644
index 0000000..3448b62
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_014.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_014.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_014.imageset/texts_014.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_014.imageset/texts_014.png
new file mode 100644
index 0000000..1667b38
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_014.imageset/texts_014.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_015.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_015.imageset/Contents.json
new file mode 100644
index 0000000..7af2238
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_015.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_015.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_015.imageset/texts_015.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_015.imageset/texts_015.png
new file mode 100644
index 0000000..e261b9e
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_015.imageset/texts_015.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_016.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_016.imageset/Contents.json
new file mode 100644
index 0000000..715533b
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_016.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_016.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_016.imageset/texts_016.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_016.imageset/texts_016.png
new file mode 100644
index 0000000..bba2376
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_016.imageset/texts_016.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_017.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_017.imageset/Contents.json
new file mode 100644
index 0000000..6b13113
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_017.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_017.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_017.imageset/texts_017.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_017.imageset/texts_017.png
new file mode 100644
index 0000000..c79e13f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_017.imageset/texts_017.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_018.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_018.imageset/Contents.json
new file mode 100644
index 0000000..97d73d2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_018.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_018.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_018.imageset/texts_018.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_018.imageset/texts_018.png
new file mode 100644
index 0000000..f040b09
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_018.imageset/texts_018.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_019.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_019.imageset/Contents.json
new file mode 100644
index 0000000..f225f4c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_019.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_019.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_019.imageset/texts_019.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_019.imageset/texts_019.png
new file mode 100644
index 0000000..1129217
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_019.imageset/texts_019.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_020.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_020.imageset/Contents.json
new file mode 100644
index 0000000..fc6ed61
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_020.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_020.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_020.imageset/texts_020.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_020.imageset/texts_020.png
new file mode 100644
index 0000000..57c850d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_020.imageset/texts_020.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_021.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_021.imageset/Contents.json
new file mode 100644
index 0000000..01ad537
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_021.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_021.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_021.imageset/texts_021.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_021.imageset/texts_021.png
new file mode 100644
index 0000000..2d6eb6d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_021.imageset/texts_021.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_022.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_022.imageset/Contents.json
new file mode 100644
index 0000000..9a594aa
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_022.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_022.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_022.imageset/texts_022.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_022.imageset/texts_022.png
new file mode 100644
index 0000000..5979e11
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_022.imageset/texts_022.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_023.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_023.imageset/Contents.json
new file mode 100644
index 0000000..6cba6cd
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_023.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_023.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_023.imageset/texts_023.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_023.imageset/texts_023.png
new file mode 100644
index 0000000..376cbf7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_023.imageset/texts_023.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_024.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_024.imageset/Contents.json
new file mode 100644
index 0000000..5888366
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_024.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_024.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_024.imageset/texts_024.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_024.imageset/texts_024.png
new file mode 100644
index 0000000..01e4ae4
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_024.imageset/texts_024.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_025.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_025.imageset/Contents.json
new file mode 100644
index 0000000..dc2f2dc
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_025.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_025.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_025.imageset/texts_025.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_025.imageset/texts_025.png
new file mode 100644
index 0000000..d98d660
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_025.imageset/texts_025.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_026.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_026.imageset/Contents.json
new file mode 100644
index 0000000..1edbee3
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_026.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_026.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_026.imageset/texts_026.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_026.imageset/texts_026.png
new file mode 100644
index 0000000..e5b1755
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_026.imageset/texts_026.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_027.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_027.imageset/Contents.json
new file mode 100644
index 0000000..795a3d6
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_027.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_027.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_027.imageset/texts_027.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_027.imageset/texts_027.png
new file mode 100644
index 0000000..e951512
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_027.imageset/texts_027.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_028.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_028.imageset/Contents.json
new file mode 100644
index 0000000..a9a03c0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_028.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_028.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_028.imageset/texts_028.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_028.imageset/texts_028.png
new file mode 100644
index 0000000..db1f0a9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_028.imageset/texts_028.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_029.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_029.imageset/Contents.json
new file mode 100644
index 0000000..8b952f7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_029.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_029.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_029.imageset/texts_029.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_029.imageset/texts_029.png
new file mode 100644
index 0000000..bd9bbef
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_029.imageset/texts_029.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_030.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_030.imageset/Contents.json
new file mode 100644
index 0000000..b3cbf6f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_030.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_030.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_030.imageset/texts_030.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_030.imageset/texts_030.png
new file mode 100644
index 0000000..8c28d69
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_030.imageset/texts_030.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_031.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_031.imageset/Contents.json
new file mode 100644
index 0000000..18c3926
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_031.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_031.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_031.imageset/texts_031.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_031.imageset/texts_031.png
new file mode 100644
index 0000000..0f43321
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_031.imageset/texts_031.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_032.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_032.imageset/Contents.json
new file mode 100644
index 0000000..d5304b2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_032.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_032.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_032.imageset/texts_032.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_032.imageset/texts_032.png
new file mode 100644
index 0000000..4dfd250
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_032.imageset/texts_032.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_033.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_033.imageset/Contents.json
new file mode 100644
index 0000000..4611e86
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_033.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_033.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_033.imageset/texts_033.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_033.imageset/texts_033.png
new file mode 100644
index 0000000..67c56c0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_033.imageset/texts_033.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_034.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_034.imageset/Contents.json
new file mode 100644
index 0000000..52ba3be
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_034.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_034.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_034.imageset/texts_034.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_034.imageset/texts_034.png
new file mode 100644
index 0000000..9cda9a6
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_034.imageset/texts_034.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_035.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_035.imageset/Contents.json
new file mode 100644
index 0000000..db20e98
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_035.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_035.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_035.imageset/texts_035.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_035.imageset/texts_035.png
new file mode 100644
index 0000000..44c613d
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_035.imageset/texts_035.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_036.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_036.imageset/Contents.json
new file mode 100644
index 0000000..0cd0257
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_036.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_036.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_036.imageset/texts_036.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_036.imageset/texts_036.png
new file mode 100644
index 0000000..f0ec319
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_036.imageset/texts_036.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_037.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_037.imageset/Contents.json
new file mode 100644
index 0000000..926b403
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_037.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_037.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_037.imageset/texts_037.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_037.imageset/texts_037.png
new file mode 100644
index 0000000..17331c0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_037.imageset/texts_037.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_038.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_038.imageset/Contents.json
new file mode 100644
index 0000000..1585337
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_038.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_038.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_038.imageset/texts_038.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_038.imageset/texts_038.png
new file mode 100644
index 0000000..9a33de3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_038.imageset/texts_038.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_039.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_039.imageset/Contents.json
new file mode 100644
index 0000000..d396a15
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_039.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_039.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_039.imageset/texts_039.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_039.imageset/texts_039.png
new file mode 100644
index 0000000..8de9f61
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_039.imageset/texts_039.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_040.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_040.imageset/Contents.json
new file mode 100644
index 0000000..276fd34
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_040.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_040.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_040.imageset/texts_040.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_040.imageset/texts_040.png
new file mode 100644
index 0000000..08f5a5f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_040.imageset/texts_040.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_041.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_041.imageset/Contents.json
new file mode 100644
index 0000000..4a5f2ec
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_041.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_041.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_041.imageset/texts_041.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_041.imageset/texts_041.png
new file mode 100644
index 0000000..5286ac5
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_041.imageset/texts_041.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_042.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_042.imageset/Contents.json
new file mode 100644
index 0000000..c3e980f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_042.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_042.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_042.imageset/texts_042.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_042.imageset/texts_042.png
new file mode 100644
index 0000000..c38d9a9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_042.imageset/texts_042.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_043.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_043.imageset/Contents.json
new file mode 100644
index 0000000..820e202
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_043.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_043.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_043.imageset/texts_043.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_043.imageset/texts_043.png
new file mode 100644
index 0000000..8fcb8fb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_043.imageset/texts_043.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_044.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_044.imageset/Contents.json
new file mode 100644
index 0000000..de4b54f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_044.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_044.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_044.imageset/texts_044.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_044.imageset/texts_044.png
new file mode 100644
index 0000000..c2b2f21
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_044.imageset/texts_044.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_045.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_045.imageset/Contents.json
new file mode 100644
index 0000000..96a1c59
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_045.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_045.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_045.imageset/texts_045.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_045.imageset/texts_045.png
new file mode 100644
index 0000000..d6db237
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_045.imageset/texts_045.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_046.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_046.imageset/Contents.json
new file mode 100644
index 0000000..357027e
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_046.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_046.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_046.imageset/texts_046.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_046.imageset/texts_046.png
new file mode 100644
index 0000000..ab680bd
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_046.imageset/texts_046.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_047.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_047.imageset/Contents.json
new file mode 100644
index 0000000..94260c1
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_047.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_047.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_047.imageset/texts_047.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_047.imageset/texts_047.png
new file mode 100644
index 0000000..4010e62
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_047.imageset/texts_047.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_048.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_048.imageset/Contents.json
new file mode 100644
index 0000000..d63cd9a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_048.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_048.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_048.imageset/texts_048.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_048.imageset/texts_048.png
new file mode 100644
index 0000000..1e577a3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_048.imageset/texts_048.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_049.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_049.imageset/Contents.json
new file mode 100644
index 0000000..e0d903f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_049.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_049.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_049.imageset/texts_049.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_049.imageset/texts_049.png
new file mode 100644
index 0000000..2c113a7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_049.imageset/texts_049.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_050.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_050.imageset/Contents.json
new file mode 100644
index 0000000..d464121
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_050.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_050.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_050.imageset/texts_050.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_050.imageset/texts_050.png
new file mode 100644
index 0000000..f30fc28
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_050.imageset/texts_050.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_051.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_051.imageset/Contents.json
new file mode 100644
index 0000000..a33757f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_051.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_051.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_051.imageset/texts_051.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_051.imageset/texts_051.png
new file mode 100644
index 0000000..5ce9648
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_051.imageset/texts_051.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_052.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_052.imageset/Contents.json
new file mode 100644
index 0000000..3bbd1fc
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_052.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_052.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_052.imageset/texts_052.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_052.imageset/texts_052.png
new file mode 100644
index 0000000..9eaa063
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_052.imageset/texts_052.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_053.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_053.imageset/Contents.json
new file mode 100644
index 0000000..70adc79
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_053.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_053.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_053.imageset/texts_053.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_053.imageset/texts_053.png
new file mode 100644
index 0000000..960d8a3
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_053.imageset/texts_053.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_054.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_054.imageset/Contents.json
new file mode 100644
index 0000000..293d73f
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_054.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_054.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_054.imageset/texts_054.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_054.imageset/texts_054.png
new file mode 100644
index 0000000..1152f59
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_054.imageset/texts_054.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_055.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_055.imageset/Contents.json
new file mode 100644
index 0000000..0495e10
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_055.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_055.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_055.imageset/texts_055.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_055.imageset/texts_055.png
new file mode 100644
index 0000000..f13ae36
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_055.imageset/texts_055.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_056.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_056.imageset/Contents.json
new file mode 100644
index 0000000..86e8c6a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_056.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_056.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_056.imageset/texts_056.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_056.imageset/texts_056.png
new file mode 100644
index 0000000..254d710
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_056.imageset/texts_056.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_057.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_057.imageset/Contents.json
new file mode 100644
index 0000000..333e904
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_057.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_057.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_057.imageset/texts_057.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_057.imageset/texts_057.png
new file mode 100644
index 0000000..ef23df9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_057.imageset/texts_057.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_058.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_058.imageset/Contents.json
new file mode 100644
index 0000000..54ed9d7
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_058.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_058.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_058.imageset/texts_058.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_058.imageset/texts_058.png
new file mode 100644
index 0000000..ba108bb
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_058.imageset/texts_058.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_059.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_059.imageset/Contents.json
new file mode 100644
index 0000000..9360ae0
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_059.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_059.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_059.imageset/texts_059.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_059.imageset/texts_059.png
new file mode 100644
index 0000000..e37c31a
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_059.imageset/texts_059.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_060.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_060.imageset/Contents.json
new file mode 100644
index 0000000..55ed995
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_060.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_060.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_060.imageset/texts_060.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_060.imageset/texts_060.png
new file mode 100644
index 0000000..edf5478
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_060.imageset/texts_060.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_061.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_061.imageset/Contents.json
new file mode 100644
index 0000000..69e42fb
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_061.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_061.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_061.imageset/texts_061.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_061.imageset/texts_061.png
new file mode 100644
index 0000000..cc04941
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_061.imageset/texts_061.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_062.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_062.imageset/Contents.json
new file mode 100644
index 0000000..02e6e75
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_062.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_062.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_062.imageset/texts_062.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_062.imageset/texts_062.png
new file mode 100644
index 0000000..cc68248
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_062.imageset/texts_062.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_063.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_063.imageset/Contents.json
new file mode 100644
index 0000000..e385295
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_063.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_063.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_063.imageset/texts_063.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_063.imageset/texts_063.png
new file mode 100644
index 0000000..f11c6c0
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_063.imageset/texts_063.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_064.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_064.imageset/Contents.json
new file mode 100644
index 0000000..4f4657a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_064.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_064.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_064.imageset/texts_064.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_064.imageset/texts_064.png
new file mode 100644
index 0000000..a5ae127
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_064.imageset/texts_064.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_065.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_065.imageset/Contents.json
new file mode 100644
index 0000000..9970d2a
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_065.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_065.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_065.imageset/texts_065.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_065.imageset/texts_065.png
new file mode 100644
index 0000000..fc67203
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_065.imageset/texts_065.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_066.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_066.imageset/Contents.json
new file mode 100644
index 0000000..c1c327c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_066.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_066.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_066.imageset/texts_066.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_066.imageset/texts_066.png
new file mode 100644
index 0000000..4c3474f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_066.imageset/texts_066.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_067.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_067.imageset/Contents.json
new file mode 100644
index 0000000..88a3314
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_067.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_067.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_067.imageset/texts_067.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_067.imageset/texts_067.png
new file mode 100644
index 0000000..3b36ba7
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_067.imageset/texts_067.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_068.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_068.imageset/Contents.json
new file mode 100644
index 0000000..27e33d8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_068.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "texts_068.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_068.imageset/texts_068.png b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_068.imageset/texts_068.png
new file mode 100644
index 0000000..32d4877
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/Stickers/texts_068.imageset/texts_068.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/animoji.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/animoji.imageset/Contents.json
new file mode 100644
index 0000000..25018f2
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/animoji.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "animoji.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/animoji.imageset/animoji.png b/Avatar/App/Avatar/Assets.xcassets/animoji.imageset/animoji.png
new file mode 100644
index 0000000..75ff96c
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/animoji.imageset/animoji.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/avatar.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/avatar.imageset/Contents.json
new file mode 100644
index 0000000..09cea8c
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/avatar.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "avatar.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/avatar.imageset/avatar.png b/Avatar/App/Avatar/Assets.xcassets/avatar.imageset/avatar.png
new file mode 100644
index 0000000..b0a3872
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/avatar.imageset/avatar.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/avimoji.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/avimoji.imageset/Contents.json
new file mode 100644
index 0000000..8284679
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/avimoji.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "avimoji.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/avimoji.imageset/avimoji.png b/Avatar/App/Avatar/Assets.xcassets/avimoji.imageset/avimoji.png
new file mode 100644
index 0000000..8e8e239
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/avimoji.imageset/avimoji.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/cover.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/cover.imageset/Contents.json
new file mode 100644
index 0000000..ea0c697
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/cover.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "cover.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/cover.imageset/cover.png b/Avatar/App/Avatar/Assets.xcassets/cover.imageset/cover.png
new file mode 100644
index 0000000..252d44f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/cover.imageset/cover.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/default-avatar.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/default-avatar.imageset/Contents.json
new file mode 100644
index 0000000..b664d10
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/default-avatar.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "default-avatar.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/default-avatar.imageset/default-avatar.png b/Avatar/App/Avatar/Assets.xcassets/default-avatar.imageset/default-avatar.png
new file mode 100644
index 0000000..8cc3aa9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/default-avatar.imageset/default-avatar.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/library.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/library.imageset/Contents.json
new file mode 100644
index 0000000..7a8e1d8
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/library.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "library.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/library.imageset/library.png b/Avatar/App/Avatar/Assets.xcassets/library.imageset/library.png
new file mode 100644
index 0000000..cc8e15f
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/library.imageset/library.png differ
diff --git a/Avatar/App/Avatar/Assets.xcassets/memoji.imageset/Contents.json b/Avatar/App/Avatar/Assets.xcassets/memoji.imageset/Contents.json
new file mode 100644
index 0000000..499c979
--- /dev/null
+++ b/Avatar/App/Avatar/Assets.xcassets/memoji.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "memoji.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Avatar/App/Avatar/Assets.xcassets/memoji.imageset/memoji.png b/Avatar/App/Avatar/Assets.xcassets/memoji.imageset/memoji.png
new file mode 100644
index 0000000..6336fa9
Binary files /dev/null and b/Avatar/App/Avatar/Assets.xcassets/memoji.imageset/memoji.png differ
diff --git a/Avatar/App/Avatar/AvatarKit/AVTAnimoji.h b/Avatar/App/Avatar/AvatarKit/AVTAnimoji.h
new file mode 100644
index 0000000..aa585e4
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AVTAnimoji.h
@@ -0,0 +1,23 @@
+@import Foundation;
+@import SceneKit;
+
+
+@interface AVTAvatarInstance: NSObject
+@end
+
+
+@interface AVTAnimoji: NSObject
++ (instancetype)animojiNamed:(NSString *)name;
++ (NSArray *)animojiNames;
++ (UIImage *)thumbnailForAnimojiNamed:(NSString *)name options:(NSDictionary *)options;
+@property (readonly) SCNNode *avatarNode;
+@property (readonly) SCNNode *lightingNode;
+@end
+
+
+@interface AVTAvatar: NSObject
++ (instancetype)avatarWithDataRepresentation:(NSData *)data error:(NSError **)outError;
+@end
+
+#define ASAnimoji NSClassFromString(@"AVTAnimoji")
+#define ASAvatar NSClassFromString(@"AVTAvatar")
diff --git a/Avatar/App/Avatar/AvatarKit/AVTAvatar.h b/Avatar/App/Avatar/AvatarKit/AVTAvatar.h
new file mode 100644
index 0000000..b5e0167
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AVTAvatar.h
@@ -0,0 +1,4 @@
+@import Foundation;
+
+@interface AVTAvatar : NSObject
+@end
diff --git a/Avatar/App/Avatar/AvatarKit/AVTAvatarLibraryViewController.h b/Avatar/App/Avatar/AvatarKit/AVTAvatarLibraryViewController.h
new file mode 100644
index 0000000..30fdf58
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AVTAvatarLibraryViewController.h
@@ -0,0 +1,9 @@
+@import UIKit;
+
+@class AVTAvatarStore;
+
+@interface AVTAvatarLibraryViewController: UIViewController
+- (instancetype)initWithAvatarStore:(AVTAvatarStore *)store;
+@end
+
+#define ASAvatarLibraryViewController NSClassFromString(@"AVTAvatarLibraryViewController")
diff --git a/Avatar/App/Avatar/AvatarKit/AVTAvatarStore.h b/Avatar/App/Avatar/AvatarKit/AVTAvatarStore.h
new file mode 100644
index 0000000..22e0161
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AVTAvatarStore.h
@@ -0,0 +1,7 @@
+@import Foundation;
+
+@interface AVTAvatarStore: NSObject
+- (instancetype)initWithDomainIdentifier:(NSString *)identifier;
+@end
+
+#define ASAvatarStore NSClassFromString(@"AVTAvatarStore")
diff --git a/Avatar/App/Avatar/AvatarKit/AVTRecordView.h b/Avatar/App/Avatar/AvatarKit/AVTRecordView.h
new file mode 100644
index 0000000..e4e13b5
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AVTRecordView.h
@@ -0,0 +1,23 @@
+@import Foundation;
+@import ARKit;
+@class AVTAvatar;
+#import "AVTView.h"
+
+
+@interface AVTRecordView: AVTView
+@property (getter=isPreviewing, nonatomic, readonly) bool previewing;
+@property (getter=isRecording, nonatomic, readonly) bool recording;
+- (void)audioPlayerItemDidReachEnd:(id)arg1;
+- (bool)exportMovieToURL:(NSURL *)movieURL options:(NSDictionary *)options completionHandler:(void (^)(NSError *error))completion;
+- (NSTimeInterval)recordingDuration;
+- (void)startPreviewing;
+- (void)startRecording;
+- (void)stopPreviewing;
+- (void)stopRecording;
+- (void)faceIsFullyActive;
+- (void)fadePuppetToWhite:(int)arg;
+- (void)setAvatar:(id)arg1;
+- (void)setup;
+@property (readonly) AVTAnimoji *puppet;
+@property (nonatomic, readonly) ARSession *arSession;
+@end
diff --git a/Avatar/App/Avatar/AvatarKit/AVTView.h b/Avatar/App/Avatar/AvatarKit/AVTView.h
new file mode 100644
index 0000000..0dbd7a7
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AVTView.h
@@ -0,0 +1,7 @@
+@import SceneKit;
+
+#import "AVTAnimoji.h"
+
+@interface AVTView : SCNView
+@property (nonatomic, retain) AVTAvatar *avatar;
+@end
diff --git a/Avatar/App/Avatar/AvatarKit/AvatarKit.framework/AvatarKit.tbd b/Avatar/App/Avatar/AvatarKit/AvatarKit.framework/AvatarKit.tbd
new file mode 100755
index 0000000..579ac05
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AvatarKit.framework/AvatarKit.tbd
@@ -0,0 +1,11 @@
+---
+archs: [ arm64 ]
+platform: ios
+install-name: /System/Library/PrivateFrameworks/AvatarKit.framework/AvatarKit
+current-version: 181.3
+exports:
+ - archs: [ arm64 ]
+ symbols: [ ]
+ objc-classes: [ _AVTAnimoji, _AVTRecordView, _AVTAvatar ]
+ objc-ivars: [ ]
+...
diff --git a/Avatar/App/Avatar/AvatarKit/AvatarMotionView.h b/Avatar/App/Avatar/AvatarKit/AvatarMotionView.h
new file mode 100644
index 0000000..9600926
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AvatarMotionView.h
@@ -0,0 +1,6 @@
+@import UIKit;
+#import "AVTRecordView.h"
+
+@interface AvatarMotionView : AVTRecordView
+- (void)resetTracking;
+@end
diff --git a/Avatar/App/Avatar/AvatarKit/AvatarMotionView.m b/Avatar/App/Avatar/AvatarKit/AvatarMotionView.m
new file mode 100644
index 0000000..a0ba852
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarKit/AvatarMotionView.m
@@ -0,0 +1,15 @@
+@import ARKit;
+#import "AvatarMotionView.h"
+#import "AVTAnimoji.h"
+@import SceneKit;
+#import
+
+@implementation AvatarMotionView
+
+- (void)resetTracking {
+ ARConfiguration *config = [self.arSession.configuration copy];
+ config.providesAudioData = NO;
+ [self.arSession runWithConfiguration:config options:ARSessionRunOptionResetTracking|ARSessionRunOptionRemoveExistingAnchors];
+}
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/PrivateBlurEffect.h b/Avatar/App/Avatar/AvatarPicker/PrivateBlurEffect.h
new file mode 100644
index 0000000..b1a9c13
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/PrivateBlurEffect.h
@@ -0,0 +1,24 @@
+#import
+
+@interface _UIBackdropView : UIView
+-(id)initWithFrame:(CGRect)arg1 autosizesToFitSuperview:(BOOL)arg2 settings:(id)arg3 ;
+-(id)initWithSettings:(id)arg1 ;
+-(id)initWithStyle:(long long)arg1 ;
+- (void)setBlurFilterWithRadius:(float)arg1 blurQuality:(id)arg2 blurHardEdges:(int)arg3;
+- (void)setBlurFilterWithRadius:(float)arg1 blurQuality:(id)arg2;
+- (void)setBlurHardEdges:(int)arg1;
+- (void)setBlurQuality:(id)arg1;
+- (void)setBlurRadius:(float)arg1;
+- (void)setBlurRadiusSetOnce:(BOOL)arg1;
+- (void)setBlursBackground:(BOOL)arg1;
+- (void)setBlursWithHardEdges:(BOOL)arg1;
+@end
+
+@interface _UIBackdropViewSettings : NSObject
+@property (assign,getter=isEnabled,nonatomic) BOOL enabled;
+@property (assign,nonatomic) double blurRadius;
+@property (nonatomic,copy) NSString * blurQuality;
+@property (assign,nonatomic) BOOL usesBackdropEffectView;
+-(id)initWithDefaultValues;
++(id)settingsForStyle:(long long)arg1 ;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityCellHeaderView.h b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityCellHeaderView.h
new file mode 100644
index 0000000..1f31794
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityCellHeaderView.h
@@ -0,0 +1,8 @@
+#import
+
+@interface TDAvatarIdentityCellHeaderView : UICollectionReusableView
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UILabel *headerLabel;
+@end
+
+
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityCellHeaderView.m b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityCellHeaderView.m
new file mode 100644
index 0000000..f3af4c1
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityCellHeaderView.m
@@ -0,0 +1,28 @@
+#import "TDAvatarIdentityCellHeaderView.h"
+
+@implementation TDAvatarIdentityCellHeaderView
+
+- (id)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.baseView = [[UIView alloc] initWithFrame:self.bounds];
+ self.baseView.clipsToBounds = YES;
+ [self addSubview:self.baseView];
+
+
+ self.headerLabel = [[UILabel alloc] init];
+ self.headerLabel.textColor = UIColor.tertiaryLabelColor;
+ self.headerLabel.font = [UIFont boldSystemFontOfSize:18];
+ [self.baseView addSubview:self.headerLabel];
+
+ self.headerLabel.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self.headerLabel centerYAnchor] constraintEqualToAnchor:self.baseView.centerYAnchor].active = YES;
+ [self.headerLabel.leadingAnchor constraintEqualToAnchor:self.baseView.leadingAnchor constant:20].active = YES;
+
+ }
+ return self;
+}
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityEmojiCell.h b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityEmojiCell.h
new file mode 100644
index 0000000..2f7caba
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityEmojiCell.h
@@ -0,0 +1,7 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface TDAvatarIdentityEmojiCell : UICollectionViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UILabel *emojiLabel;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityEmojiCell.m b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityEmojiCell.m
new file mode 100644
index 0000000..546c20f
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityEmojiCell.m
@@ -0,0 +1,40 @@
+#import "TDAvatarIdentityEmojiCell.h"
+
+@implementation TDAvatarIdentityEmojiCell
+
+- (instancetype)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.layer.cornerRadius = self.frame.size.width/2;
+ self.clipsToBounds = true;
+
+
+ self.baseView = [[UIView alloc] initWithFrame:self.contentView.bounds];
+ self.baseView.layer.cornerRadius = self.frame.size.width/2;
+ self.baseView.backgroundColor = UIColor.secondarySystemBackgroundColor;
+ self.baseView.clipsToBounds = true;
+ [self.contentView addSubview:self.baseView];
+
+
+ self.emojiLabel = [[UILabel alloc] init];
+ self.emojiLabel.textAlignment = NSTextAlignmentCenter;
+ self.emojiLabel.font = [UIFont systemFontOfSize:45];
+ [self.baseView addSubview:self.emojiLabel];
+
+ [self.emojiLabel x:self.baseView.centerXAnchor y:self.baseView.centerYAnchor];
+
+
+ }
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+ self.emojiLabel.text = nil;
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerDataSource.h b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerDataSource.h
new file mode 100644
index 0000000..0198b6d
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerDataSource.h
@@ -0,0 +1,16 @@
+#import
+#import
+
+@interface TDAvatarIdentityPickerEmojiDataModel : NSObject
+-(id)initWithEmoji:(NSString *)emoji colour:(NSString *)colour;
+@property (nonatomic, retain) NSString *emoji;
+@property (nonatomic, retain) NSString *colour;
+@end
+
+@interface TDAvatarIdentityPickerDataSource : NSObject
++(instancetype)sharedInstance;
+-(id)init;
+
+-(NSMutableArray*)stickersData;
+-(NSMutableArray*)emojiData;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerDataSource.m b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerDataSource.m
new file mode 100644
index 0000000..f4a66f8
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerDataSource.m
@@ -0,0 +1,101 @@
+#import "TDAvatarIdentityPickerDataSource.h"
+
+@implementation TDAvatarIdentityPickerEmojiDataModel
+-(id)initWithEmoji:(NSString *)emoji colour:(NSString *)colour {
+ self = [super init];
+ if(self) {
+ self.emoji = emoji;
+ self.colour = colour;
+ }
+ return self;
+}
+@end
+
+
+@implementation TDAvatarIdentityPickerDataSource
+
++(instancetype)sharedInstance {
+ static TDAvatarIdentityPickerDataSource *sharedInstance = nil;
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ sharedInstance = [[TDAvatarIdentityPickerDataSource alloc] init];
+ });
+ return sharedInstance;
+}
+
+
+-(id)init {
+ return self;
+}
+
+
+-(NSMutableArray*)stickersData {
+
+ NSMutableArray *array = [[NSMutableArray alloc] init];
+
+ NSString *stickersPath = @"/var/mobile/Library/Avatar/Stickers";
+
+ NSMutableArray *folders = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:stickersPath error:nil] mutableCopy];
+
+ for (int i = 0; i < folders.count; i++) {
+
+ NSString *path = [folders objectAtIndex:i];
+ if ([path hasSuffix:@".png"]){
+ [array addObject:path];
+ }
+ }
+
+ [array sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
+
+ return array;
+}
+
+
+-(NSMutableArray*)emojiData {
+
+ NSMutableArray *array = [[NSMutableArray alloc] init];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"😀" colour:@"a8e6cf"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🥶" colour:@"d0e1f9"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"😜" colour:@"a8e6cf"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"😍" colour:@"ffaaa5"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"😘" colour:@"eedbdb"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🥳" colour:@"dddddd"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"😻" colour:@"e4dcf1"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"💋" colour:@"eee3e7"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"💍" colour:@"e7d3d3"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🦄" colour:@"fec8c1"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🍻" colour:@"96ceb4"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🥂" colour:@"ff6f69"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🍿" colour:@"ffdbac"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"⚽️" colour:@"64a1f4"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🏈" colour:@"add6ff"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🏒" colour:@"ffefd7"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🚗" colour:@"a8e6cf"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🛴" colour:@"dcedc1"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"🚀" colour:@"ffcc5c"]];
+ [array addObject:[[TDAvatarIdentityPickerEmojiDataModel alloc] initWithEmoji:@"💻" colour:@"b3cde0"]];
+ return array;
+}
+
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerViewController.h b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerViewController.h
new file mode 100644
index 0000000..5609c91
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerViewController.h
@@ -0,0 +1,33 @@
+#import
+#import "ConstraintExtension.h"
+#import "TDHeaderView.h"
+#import "TDAvatarIdentityToolsCell.h"
+#import "TDAvatarIdentityCellHeaderView.h"
+#import "TDAvatarIdentityStickerCell.h"
+#import "TDAvatarIdentityEmojiCell.h"
+#import "TDAvatarIdentityPickerDataSource.h"
+#import "TDEmojiPickerViewController.h"
+
+@protocol TDAvatarPickerProtocol
+@required
+-(void)didCreatedAvatar:(UIImage *)avatar;
+-(void)didDismissedAvatarPicker;
+@end
+
+@interface TDAvatarIdentityPickerViewController : UIViewController
+-(instancetype)initWithTitle:(NSString *)title showDefaultAvatar:(BOOL)defaultAvatar avatarImage:(UIImage *)avatar accent:(UIColor *)accent;
+@property (nonatomic, retain) TDHeaderView *headerView;
+@property (nonatomic, retain) UIView *preview;
+@property (nonatomic, retain) UIImageView *previewImage;
+@property (nonatomic, retain) UIImageView *stickerImage;
+@property (nonatomic, retain) UILabel *emojiLabel;
+@property (nonatomic, retain) UITextField *textField;
+@property (nonatomic, retain) UICollectionView *collectionView;
+@property (nonatomic, retain) NSMutableArray *stickersArray;
+@property (nonatomic, retain) NSMutableArray *emojisArray;
+@property(nonatomic,assign)id delegate;
+@property (nonatomic, retain) NSString *titleString;
+@property (nonatomic) BOOL useDefaultAvatarImage;
+@property (nonatomic, retain) UIImage *defaultAvatar;
+@property (nonatomic, retain) UIColor *accentColour;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerViewController.m b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerViewController.m
new file mode 100644
index 0000000..57e498a
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityPickerViewController.m
@@ -0,0 +1,451 @@
+#import "TDAvatarIdentityPickerViewController.h"
+
+@implementation TDAvatarIdentityPickerViewController
+
+-(instancetype)initWithTitle:(NSString *)title showDefaultAvatar:(BOOL)defaultAvatar avatarImage:(UIImage *)avatar accent:(UIColor *)accent {
+
+ self = [super init];
+ if (self) {
+ self.titleString = title;
+ self.useDefaultAvatarImage = defaultAvatar;
+ self.defaultAvatar = avatar;
+ self.accentColour = accent;
+ }
+ return self;
+}
+
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = UIColor.systemBackgroundColor;
+ self.view.tintColor = self.accentColour;
+
+ UIWindow *window = [UIApplication sharedApplication].windows.firstObject;
+ window.tintColor = self.accentColour;
+
+ self.stickersArray = [[TDAvatarIdentityPickerDataSource sharedInstance] stickersData];
+ self.emojisArray = [[TDAvatarIdentityPickerDataSource sharedInstance] emojiData];
+
+ [self layoutHeaderView];
+ [self layoutCollectionView];
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[TDHeaderView alloc] initWithTitle:self.titleString accent:self.accentColour leftIcon:@"xmark" leftAction:@selector(dismissVC) rightIcon:@"checkmark" rightAction:@selector(applyAvatar)];
+ self.headerView.rightButton.backgroundColor = self.accentColour;
+ self.headerView.rightButton.tintColor = UIColor.whiteColor;
+ self.headerView.rightButton.alpha = 0;
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 75)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.topAnchor padding:0];
+
+
+ self.preview = [[UIView alloc] init];
+ self.preview.backgroundColor = [self colorWithHexString:@"64a1f4"];
+ self.preview.layer.cornerRadius = 55;
+ self.preview.clipsToBounds = YES;
+ [self.view addSubview:self.preview];
+
+ [self.preview size:CGSizeMake(110, 110)];
+ [self.preview x:self.view.centerXAnchor];
+ [self.preview top:self.headerView.bottomAnchor padding:20];
+
+
+ self.previewImage = [[UIImageView alloc] init];
+ self.previewImage.contentMode = UIViewContentModeScaleAspectFill;
+ if (!self.useDefaultAvatarImage) {
+ self.previewImage.image = self.defaultAvatar;
+ }
+ [self.preview addSubview:self.previewImage];
+
+ [self.previewImage size:CGSizeMake(110, 110)];
+ [self.previewImage x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+
+ self.stickerImage = [[UIImageView alloc] init];
+ self.stickerImage.contentMode = UIViewContentModeScaleAspectFill;
+ self.stickerImage.alpha = 0;
+ [self.preview addSubview:self.stickerImage];
+
+ [self.stickerImage size:CGSizeMake(80, 80)];
+ [self.stickerImage x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+
+ self.emojiLabel = [[UILabel alloc] init];
+ self.emojiLabel.textAlignment = NSTextAlignmentCenter;
+ self.emojiLabel.font = [UIFont systemFontOfSize:67];
+ if (self.useDefaultAvatarImage) {
+ self.emojiLabel.text = @"😀";
+ } else {
+ self.emojiLabel.alpha = 0;
+ }
+ [self.preview addSubview:self.emojiLabel];
+
+ [self.emojiLabel x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+
+ self.textField = [[UITextField alloc] init];
+ self.textField.backgroundColor = UIColor.clearColor;
+ self.textField.tintColor = self.accentColour;
+ self.textField.textAlignment = NSTextAlignmentCenter;
+ self.textField.font = [UIFont systemFontOfSize:47 weight:UIFontWeightBold];
+ self.textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
+ self.textField.delegate = self;
+ self.textField.returnKeyType = UIReturnKeyDone;
+ self.textField.alpha = 0;
+ [self.preview addSubview:self.textField];
+
+ [self.textField size:CGSizeMake(105, 105)];
+ [self.textField x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+}
+
+
+-(void)layoutCollectionView {
+
+ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+ self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
+ self.collectionView.backgroundColor = UIColor.clearColor;
+ self.collectionView.translatesAutoresizingMaskIntoConstraints = NO;
+ self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ [self.collectionView setShowsHorizontalScrollIndicator:NO];
+ [self.collectionView setShowsVerticalScrollIndicator:NO];
+ [self.collectionView registerClass:[TDAvatarIdentityToolsCell class] forCellWithReuseIdentifier:@"ToolsCell"];
+ [self.collectionView registerClass:[TDAvatarIdentityStickerCell class] forCellWithReuseIdentifier:@"StickerCell"];
+ [self.collectionView registerClass:[TDAvatarIdentityEmojiCell class] forCellWithReuseIdentifier:@"EmojiCell"];
+ [self.collectionView registerClass:[TDAvatarIdentityCellHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
+ [self.view addSubview:self.collectionView];
+
+ [self.collectionView top:self.preview.bottomAnchor padding:20];
+ [self.collectionView bottom:self.view.bottomAnchor padding:-20];
+ [self.collectionView leading:self.view.leadingAnchor padding:0];
+ [self.collectionView trailing:self.view.trailingAnchor padding:0];
+
+
+ self.collectionView.delegate = self;
+ self.collectionView.dataSource = self;
+}
+
+
+- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
+ return 3;
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
+ return CGSizeMake(self.view.frame.size.width, 45);
+}
+
+
+- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+
+ if (section == 0) {
+ return 4;
+ } else if (section == 1) {
+ return self.stickersArray.count;
+ } else {
+ return self.emojisArray.count;
+ }
+}
+
+
+-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
+
+ UICollectionReusableView *reusableview = nil;
+
+ if (kind == UICollectionElementKindSectionHeader) {
+
+ TDAvatarIdentityCellHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];
+
+ NSArray *titleArray = [[NSArray alloc] initWithObjects:@"", @"Stickers", @"More", nil];
+
+ headerView.headerLabel.text = [titleArray objectAtIndex:indexPath.section];
+ reusableview = headerView;
+ }
+
+ return reusableview;
+
+}
+
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
+
+ if (indexPath.section == 0) {
+
+ TDAvatarIdentityToolsCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ToolsCell" forIndexPath:indexPath];
+
+ cell.baseView.backgroundColor = [self.accentColour colorWithAlphaComponent:0.4];
+ cell.baseView.layer.borderWidth = 0.8;
+ cell.baseView.layer.borderColor = [self.accentColour colorWithAlphaComponent:0.7].CGColor;
+ cell.iconImage.tintColor = self.accentColour;
+
+ if (indexPath.row == 0) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"photo.fill.on.rectangle.fill"];
+ } else if (indexPath.row == 1) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"paintpalette.fill"];
+ } else if (indexPath.row == 2) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"face.smiling.fill"];
+ } else if (indexPath.row == 3) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"textformat"];
+ }
+
+ return cell;
+
+ } else if (indexPath.section == 1) {
+
+ TDAvatarIdentityStickerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"StickerCell" forIndexPath:indexPath];
+
+ cell.iconImage.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/var/mobile/Library/Avatar/Stickers/%@", [self.stickersArray objectAtIndex:indexPath.row]]];
+ return cell;
+
+ } else {
+
+ TDAvatarIdentityEmojiCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"EmojiCell" forIndexPath:indexPath];
+
+ TDAvatarIdentityPickerEmojiDataModel *emojiData = [self.emojisArray objectAtIndex:indexPath.row];
+
+ cell.baseView.backgroundColor = [self colorWithHexString:emojiData.colour];
+ cell.emojiLabel.text = emojiData.emoji;
+
+ return cell;
+ }
+
+}
+
+
+- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+ return UIEdgeInsetsMake(0,20,0,20);
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
+ return CGSizeMake(self.view.frame.size.width/4-20, self.view.frame.size.width/4-20);
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ self.modalInPresentation = YES;
+ self.headerView.rightButton.alpha = 1;
+
+ if (indexPath.section == 0) {
+
+ if (indexPath.row == 0) {
+ [self presentPhotoPickerVC];
+ } else if (indexPath.row == 1) {
+ [self presentColourPickerVC];
+ } else if (indexPath.row == 2) {
+ [self presentEmojiPickerVC];
+ } else if (indexPath.row == 3) {
+ [self presentKeyboardEditing];
+ }
+
+ } else if (indexPath.section == 1) {
+
+ [self.textField resignFirstResponder];
+ self.previewImage.alpha = 0;
+ self.emojiLabel.alpha = 0;
+ self.stickerImage.alpha = 1;
+ self.textField.alpha = 0;
+ self.stickerImage.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/var/mobile/Library/Avatar/Stickers/%@", [self.stickersArray objectAtIndex:indexPath.row]]];
+
+ } else if (indexPath.section == 2) {
+
+ [self.textField resignFirstResponder];
+ self.previewImage.alpha = 0;
+ self.emojiLabel.alpha = 1;
+ self.stickerImage.alpha = 0;
+ self.textField.alpha = 0;
+
+ TDAvatarIdentityPickerEmojiDataModel *emojiData = [self.emojisArray objectAtIndex:indexPath.row];
+ self.preview.backgroundColor = [self colorWithHexString:emojiData.colour];
+ self.emojiLabel.text = emojiData.emoji;
+ }
+
+
+}
+
+
+-(void)presentPhotoPickerVC {
+
+ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
+ imagePickerController.delegate = self;
+ imagePickerController.allowsEditing = false;
+ imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
+ [self presentViewController:imagePickerController animated:YES completion:nil];
+
+}
+
+
+-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(nonnull NSDictionary *)info {
+
+ [self.textField resignFirstResponder];
+ self.previewImage.alpha = 1;
+ self.stickerImage.alpha = 0;
+ self.emojiLabel.alpha = 0;
+ self.textField.alpha = 0;
+
+ self.previewImage.image = info[UIImagePickerControllerOriginalImage];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)presentColourPickerVC {
+ [self.textField resignFirstResponder];
+ UIColorPickerViewController *colourPickerVC = [[UIColorPickerViewController alloc] init];
+ colourPickerVC.delegate = self;
+ colourPickerVC.selectedColor = self.preview.backgroundColor;
+ colourPickerVC.supportsAlpha = NO;
+ [self presentViewController:colourPickerVC animated:YES completion:nil];
+}
+
+
+- (void)colorPickerViewControllerDidSelectColor:(UIColorPickerViewController *)viewController{
+ self.previewImage.alpha = 0;
+ UIColor *cpSelectedColour = viewController.selectedColor;
+ self.preview.backgroundColor = cpSelectedColour;
+}
+
+
+- (void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController{
+ self.previewImage.alpha = 0;
+ UIColor *cpSelectedColour = viewController.selectedColor;
+ self.preview.backgroundColor = cpSelectedColour;
+}
+
+
+-(void)presentEmojiPickerVC {
+ [self.textField resignFirstResponder];
+ TDEmojiPickerViewController *vc = [[TDEmojiPickerViewController alloc] init];
+ vc.delegate = self;
+ [self presentViewController:vc animated:YES completion:nil];
+}
+
+
+-(void)presentKeyboardEditing {
+
+ self.emojiLabel.alpha = 0;
+ self.previewImage.alpha = 0;
+ self.textField.alpha = 1;
+ self.stickerImage.alpha = 0;
+ self.emojiLabel.text = 0;
+
+ [self.textField becomeFirstResponder];
+
+}
+
+
+-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
+
+ if (textField.text.length >= 2 && range.length == 0) {
+ return NO;
+ } else {
+ return YES;
+
+ }
+}
+
+
+-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
+ textField.userInteractionEnabled = NO;
+ return YES;
+}
+
+
+-(void)textFieldDidEndEditing:(UITextField *)textField {
+ textField.userInteractionEnabled = YES;
+}
+
+
+- (BOOL)textFieldShouldReturn:(UITextField *)textField {
+ if (textField.text.length >= 1) {
+ [textField resignFirstResponder];
+ return YES;
+ } else {
+ return NO;
+ }
+}
+
+
+-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
+ [self.view endEditing:YES];
+}
+
+
+-(void)didSelectEmoji:(NSString *)emoji {
+ self.emojiLabel.alpha = 1;
+ self.previewImage.alpha = 0;
+ self.textField.alpha = 0;
+ self.stickerImage.alpha = 0;
+ self.emojiLabel.text = emoji;
+}
+
+
+-(void)didDismissedEmojiPicker {
+ NSLog(@"Emoji picker dismissed");
+}
+
+
+-(void)dismissVC {
+ [self.delegate didDismissedAvatarPicker];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)applyAvatar {
+ [self.textField resignFirstResponder];
+ [self.delegate didCreatedAvatar:[self avatarSnapshot]];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(UIImage *)avatarSnapshot {
+
+ UIGraphicsBeginImageContextWithOptions(self.preview.frame.size, NO, 0);
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ [self.preview.layer renderInContext:context];
+ UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
+ return snapshotImage;
+}
+
+
+-(UIColor*)colorWithHexString:(NSString*)hex {
+
+ NSString *cString = [[hex stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
+
+ if ([cString length] < 6) return [UIColor grayColor];
+
+ if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
+
+ if ([cString length] != 6) return [UIColor grayColor];
+
+ NSRange range;
+ range.location = 0;
+ range.length = 2;
+ NSString *rString = [cString substringWithRange:range];
+
+ range.location = 2;
+ NSString *gString = [cString substringWithRange:range];
+
+ range.location = 4;
+ NSString *bString = [cString substringWithRange:range];
+
+ unsigned int r, g, b;
+ [[NSScanner scannerWithString:rString] scanHexInt:&r];
+ [[NSScanner scannerWithString:gString] scanHexInt:&g];
+ [[NSScanner scannerWithString:bString] scanHexInt:&b];
+
+ return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];
+}
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityStickerCell.h b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityStickerCell.h
new file mode 100644
index 0000000..bb1ea84
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityStickerCell.h
@@ -0,0 +1,7 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface TDAvatarIdentityStickerCell : UICollectionViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UIImageView *iconImage;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityStickerCell.m b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityStickerCell.m
new file mode 100644
index 0000000..6e71c20
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityStickerCell.m
@@ -0,0 +1,32 @@
+#import "TDAvatarIdentityStickerCell.h"
+
+@implementation TDAvatarIdentityStickerCell
+
+- (instancetype)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+
+ self.baseView = [[UIView alloc] initWithFrame:self.contentView.bounds];
+ [self.contentView addSubview:self.baseView];
+
+
+ self.iconImage = [[UIImageView alloc] init];
+ [self.baseView addSubview:self.iconImage];
+
+ [self.iconImage size:CGSizeMake(self.frame.size.width, self.frame.size.width)];
+ [self.iconImage x:self.baseView.centerXAnchor y:self.baseView.centerYAnchor];
+
+ }
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+ self.iconImage.image = nil;
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityToolsCell.h b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityToolsCell.h
new file mode 100644
index 0000000..18d7dda
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityToolsCell.h
@@ -0,0 +1,7 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface TDAvatarIdentityToolsCell : UICollectionViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UIImageView *iconImage;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityToolsCell.m b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityToolsCell.m
new file mode 100644
index 0000000..b5a1d78
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDAvatarIdentityToolsCell.m
@@ -0,0 +1,39 @@
+#import "TDAvatarIdentityToolsCell.h"
+
+@implementation TDAvatarIdentityToolsCell
+
+- (instancetype)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.layer.cornerRadius = self.frame.size.width/2;
+ self.clipsToBounds = true;
+
+
+ self.baseView = [[UIView alloc] initWithFrame:self.contentView.bounds];
+ self.baseView.layer.cornerRadius = self.frame.size.width/2;
+ self.baseView.backgroundColor = UIColor.secondarySystemBackgroundColor;
+ self.baseView.clipsToBounds = true;
+ [self.contentView addSubview:self.baseView];
+
+
+ self.iconImage = [[UIImageView alloc] init];
+ self.iconImage.contentMode = UIViewContentModeScaleAspectFit;
+ [self.baseView addSubview:self.iconImage];
+
+ [self.iconImage size:CGSizeMake(self.frame.size.width/2, self.frame.size.width/2)];
+ [self.iconImage x:self.baseView.centerXAnchor y:self.baseView.centerYAnchor];
+
+ }
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+ self.iconImage.image = nil;
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCell.h b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCell.h
new file mode 100644
index 0000000..af3811c
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCell.h
@@ -0,0 +1,7 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface TDEmojiPickerCell : UICollectionViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UILabel *emojiLabel;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCell.m b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCell.m
new file mode 100644
index 0000000..9221023
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCell.m
@@ -0,0 +1,31 @@
+#import "TDEmojiPickerCell.h"
+
+@implementation TDEmojiPickerCell
+
+- (instancetype)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.baseView = [[UIView alloc] initWithFrame:self.contentView.bounds];
+ [self.contentView addSubview:self.baseView];
+
+ self.emojiLabel = [[UILabel alloc] init];
+ self.emojiLabel.textAlignment = NSTextAlignmentCenter;
+ self.emojiLabel.font = [UIFont systemFontOfSize:30];
+ [self.baseView addSubview:self.emojiLabel];
+
+ [self.emojiLabel x:self.baseView.centerXAnchor y:self.baseView.centerYAnchor];
+
+ }
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+ self.emojiLabel.text = nil;
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCellHeaderView.h b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCellHeaderView.h
new file mode 100644
index 0000000..999f2da
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCellHeaderView.h
@@ -0,0 +1,8 @@
+#import
+
+@interface TDEmojiPickerCellHeaderView : UICollectionReusableView
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UILabel *headerLabel;
+@end
+
+
diff --git a/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCellHeaderView.m b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCellHeaderView.m
new file mode 100644
index 0000000..e9f9faa
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerCellHeaderView.m
@@ -0,0 +1,28 @@
+#import "TDEmojiPickerCellHeaderView.h"
+
+@implementation TDEmojiPickerCellHeaderView
+
+- (id)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.baseView = [[UIView alloc] initWithFrame:self.bounds];
+ self.baseView.clipsToBounds = YES;
+ [self addSubview:self.baseView];
+
+
+ self.headerLabel = [[UILabel alloc] init];
+ self.headerLabel.textColor = UIColor.tertiaryLabelColor;
+ self.headerLabel.font = [UIFont boldSystemFontOfSize:18];
+ [self.baseView addSubview:self.headerLabel];
+
+ self.headerLabel.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self.headerLabel centerYAnchor] constraintEqualToAnchor:self.baseView.centerYAnchor].active = YES;
+ [self.headerLabel.leadingAnchor constraintEqualToAnchor:self.baseView.leadingAnchor constant:20].active = YES;
+
+ }
+ return self;
+}
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerViewController.h b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerViewController.h
new file mode 100644
index 0000000..6c3a493
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerViewController.h
@@ -0,0 +1,21 @@
+#import
+#import "ConstraintExtension.h"
+#import "TDEmojiPickerCell.h"
+#import "TDEmojiPickerCellHeaderView.h"
+#import "PrivateBlurEffect.h"
+
+@protocol TDEmojiPickerProtocol
+@required
+-(void)didSelectEmoji:(NSString *)emoji;
+-(void)didDismissedEmojiPicker;
+@end
+
+@interface TDEmojiPickerViewController : UIViewController
+@property (nonatomic, strong) _UIBackdropViewSettings *blurSetting;
+@property (nonatomic, strong) _UIBackdropView *blurView;
+@property (nonatomic, retain) UIVisualEffectView *grabberView;
+@property (nonatomic, retain) UICollectionView *collectionView;
+@property (nonatomic, retain) NSMutableArray *emojiArray;
+@property(nonatomic,assign)id delegate;
+@property (nonatomic) BOOL didSelectEmoji;
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerViewController.m b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerViewController.m
new file mode 100644
index 0000000..467225a
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDEmojiPickerViewController.m
@@ -0,0 +1,134 @@
+#import "TDEmojiPickerViewController.h"
+
+@implementation TDEmojiPickerViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = UIColor.clearColor;
+
+ self.blurSetting = [_UIBackdropViewSettings settingsForStyle:2];
+ self.blurView = [[_UIBackdropView alloc] initWithSettings:self.blurSetting];
+ self.blurView.frame = self.view.bounds;
+ [self.view insertSubview:self.blurView atIndex:0];
+
+
+ NSString *myFile = [[NSBundle mainBundle]pathForResource:@"Emoji" ofType:@"plist"];
+ self.emojiArray = [[NSMutableArray alloc] initWithContentsOfFile:myFile];
+
+ [self layoutGrabberView];
+ [self layoutCollectionView];
+}
+
+
+-(void)layoutGrabberView {
+
+ self.grabberView = [[UIVisualEffectView alloc] init];
+ self.grabberView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleSystemMaterial];
+ self.grabberView.layer.cornerRadius = 3;
+ self.grabberView.clipsToBounds = YES;
+ [self.view addSubview:self.grabberView];
+
+ [self.grabberView size:CGSizeMake(40, 6)];
+ [self.grabberView x:self.view.centerXAnchor];
+ [self.grabberView top:self.view.topAnchor padding:10];
+}
+
+
+-(void)layoutCollectionView {
+
+ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+ self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout];
+ self.collectionView.backgroundColor = UIColor.clearColor;
+ self.collectionView.translatesAutoresizingMaskIntoConstraints = NO;
+ self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ [self.collectionView setShowsHorizontalScrollIndicator:NO];
+ [self.collectionView setShowsVerticalScrollIndicator:NO];
+ [self.collectionView registerClass:[TDEmojiPickerCell class] forCellWithReuseIdentifier:@"Cell"];
+ [self.collectionView registerClass:[TDEmojiPickerCellHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
+ [self.view addSubview:self.collectionView];
+
+ [self.collectionView top:self.grabberView.bottomAnchor padding:20];
+ [self.collectionView bottom:self.view.bottomAnchor padding:-20];
+ [self.collectionView leading:self.view.leadingAnchor padding:0];
+ [self.collectionView trailing:self.view.trailingAnchor padding:0];
+
+
+ self.collectionView.delegate = self;
+ self.collectionView.dataSource = self;
+}
+
+
+- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
+ return self.emojiArray.count;
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
+ return CGSizeMake(self.view.frame.size.width, 45);
+}
+
+
+- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+ return [[[self.emojiArray objectAtIndex: section] objectForKey:@"Emojis"] count];
+}
+
+
+-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
+
+ UICollectionReusableView *reusableview = nil;
+
+ if (kind == UICollectionElementKindSectionHeader) {
+
+ TDEmojiPickerCellHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];
+ headerView.headerLabel.text = [[self.emojiArray objectAtIndex:indexPath.section] objectForKey: @"Title"];
+ reusableview = headerView;
+ }
+
+ return reusableview;
+
+}
+
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
+
+ TDEmojiPickerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
+ cell.emojiLabel.text = [[[self.emojiArray objectAtIndex: indexPath.section] objectForKey: @"Emojis"] objectAtIndex: indexPath.row];
+
+ return cell;
+
+}
+
+
+- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+ return UIEdgeInsetsMake(0,20,0,20);
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
+ return CGSizeMake(self.view.frame.size.width/8, self.view.frame.size.width/8);
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ self.didSelectEmoji = YES;
+ [self.delegate didSelectEmoji:[[[self.emojiArray objectAtIndex: indexPath.section] objectForKey: @"Emojis"] objectAtIndex: indexPath.row]];
+ [self dismissVC];
+}
+
+
+-(void)dismissVC {
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)viewDidDisappear:(BOOL)animated {
+ [super viewDidDisappear:animated];
+
+ if (!self.didSelectEmoji) {
+ [self.delegate didDismissedEmojiPicker];
+ }
+}
+
+@end
diff --git a/Avatar/App/Avatar/AvatarPicker/TDHeaderView.h b/Avatar/App/Avatar/AvatarPicker/TDHeaderView.h
new file mode 100644
index 0000000..e5fa6bf
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDHeaderView.h
@@ -0,0 +1,14 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface TDHeaderView : UIView
+@property (nonatomic, retain) UIView *grabberView;
+@property (nonatomic, retain) UIView *headerView;
+@property (nonatomic, retain) UILabel *titleLabel;
+@property (nonatomic, retain) UIButton *leftButton;
+@property (nonatomic, retain) UIButton *rightButton;
+
+-(instancetype)initWithTitle:(NSString *)title accent:(UIColor *)accent leftIcon:(NSString *)leftIconString leftAction:(SEL)leftAction;
+-(instancetype)initWithTitle:(NSString *)title accent:(UIColor *)accent leftIcon:(NSString *)leftIconString leftAction:(SEL)leftAction rightIcon:(NSString *)rightIconString rightAction:(SEL)rightAction;
+@end
+
diff --git a/Avatar/App/Avatar/AvatarPicker/TDHeaderView.m b/Avatar/App/Avatar/AvatarPicker/TDHeaderView.m
new file mode 100644
index 0000000..8635a04
--- /dev/null
+++ b/Avatar/App/Avatar/AvatarPicker/TDHeaderView.m
@@ -0,0 +1,129 @@
+#import "TDHeaderView.h"
+
+@implementation TDHeaderView
+
+
+-(instancetype)initWithTitle:(NSString *)title accent:(UIColor *)accent leftIcon:(NSString *)leftIconString leftAction:(SEL)leftAction {
+
+ self = [super init];
+ if (self) {
+
+ self.clipsToBounds = YES;
+
+ self.headerView = [[UIView alloc] init];
+ [self addSubview:self.headerView];
+
+ [self.headerView fill];
+
+
+ self.grabberView = [[UIView alloc] init];
+ self.grabberView.backgroundColor = UIColor.tertiarySystemFillColor;
+ self.grabberView.layer.cornerRadius = 3;
+ [self.headerView addSubview:self.grabberView];
+
+ [self.grabberView size:CGSizeMake(40, 6)];
+ [self.grabberView x:self.headerView.centerXAnchor];
+ [self.grabberView top:self.headerView.topAnchor padding:10];
+
+
+ self.leftButton = [[UIButton alloc] init];
+ self.leftButton.backgroundColor = UIColor.secondarySystemBackgroundColor;
+ self.leftButton.layer.cornerRadius = 12;
+ self.leftButton.layer.cornerCurve = kCACornerCurveContinuous;
+ UIImage *leftIcon = [UIImage systemImageNamed:leftIconString];
+ [self.leftButton setImage:leftIcon forState:UIControlStateNormal];
+ self.leftButton.tintColor = accent;
+ [self.leftButton addTarget:self.superview action:leftAction forControlEvents:UIControlEventTouchUpInside];
+ [self.headerView addSubview:self.leftButton];
+
+ [self.leftButton size:CGSizeMake(40, 40)];
+ [self.leftButton y:self.headerView.centerYAnchor padding:5];
+ [self.leftButton leading:self.headerView.leadingAnchor padding:20];
+
+
+ self.titleLabel = [[UILabel alloc] init];
+ self.titleLabel.textColor = UIColor.labelColor;
+ self.titleLabel.textAlignment = NSTextAlignmentCenter;
+ self.titleLabel.font = [UIFont systemFontOfSize:20 weight:UIFontWeightSemibold];
+ self.titleLabel.text = title;
+ [self.headerView addSubview:self.titleLabel];
+
+ [self.titleLabel y:self.headerView.centerYAnchor padding:5];
+ [self.titleLabel x:self.headerView.centerXAnchor];
+
+ }
+
+ return self;
+}
+
+
+-(instancetype)initWithTitle:(NSString *)title accent:(UIColor *)accent leftIcon:(NSString *)leftIconString leftAction:(SEL)leftAction rightIcon:(NSString *)rightIconString rightAction:(SEL)rightAction {
+
+ self = [super init];
+ if (self) {
+
+ self.clipsToBounds = YES;
+
+ self.headerView = [[UIView alloc] init];
+ [self addSubview:self.headerView];
+
+ [self.headerView fill];
+
+
+ self.grabberView = [[UIView alloc] init];
+ self.grabberView.backgroundColor = UIColor.tertiarySystemFillColor;
+ self.grabberView.layer.cornerRadius = 3;
+ [self.headerView addSubview:self.grabberView];
+
+ [self.grabberView size:CGSizeMake(40, 6)];
+ [self.grabberView x:self.headerView.centerXAnchor];
+ [self.grabberView top:self.headerView.topAnchor padding:10];
+
+
+ self.leftButton = [[UIButton alloc] init];
+ self.leftButton.backgroundColor = UIColor.secondarySystemBackgroundColor;
+ self.leftButton.layer.cornerRadius = 12;
+ self.leftButton.layer.cornerCurve = kCACornerCurveContinuous;
+ UIImage *leftIcon = [UIImage systemImageNamed:leftIconString];
+ [self.leftButton setImage:leftIcon forState:UIControlStateNormal];
+ self.leftButton.tintColor = accent;
+ [self.leftButton addTarget:self.superview action:leftAction forControlEvents:UIControlEventTouchUpInside];
+ [self.headerView addSubview:self.leftButton];
+
+ [self.leftButton size:CGSizeMake(40, 40)];
+ [self.leftButton y:self.headerView.centerYAnchor padding:5];
+ [self.leftButton leading:self.headerView.leadingAnchor padding:20];
+
+
+ self.rightButton = [[UIButton alloc] init];
+ self.rightButton.backgroundColor = UIColor.secondarySystemBackgroundColor;
+ self.rightButton.layer.cornerRadius = 12;
+ self.rightButton.layer.cornerCurve = kCACornerCurveContinuous;
+ UIImage *rightIcon = [UIImage systemImageNamed:rightIconString];
+ [self.rightButton setImage:rightIcon forState:UIControlStateNormal];
+ [self.rightButton addTarget:self.superview action:rightAction forControlEvents:UIControlEventTouchUpInside];
+ self.rightButton.tintColor = accent;
+ [self.headerView addSubview:self.rightButton];
+
+ [self.rightButton size:CGSizeMake(40, 40)];
+ [self.rightButton y:self.headerView.centerYAnchor padding:5];
+ [self.rightButton trailing:self.headerView.trailingAnchor padding:-20];
+
+
+ self.titleLabel = [[UILabel alloc] init];
+ self.titleLabel.textColor = UIColor.labelColor;
+ self.titleLabel.textAlignment = NSTextAlignmentCenter;
+ self.titleLabel.font = [UIFont systemFontOfSize:20 weight:UIFontWeightSemibold];
+ self.titleLabel.text = title;
+ [self.headerView addSubview:self.titleLabel];
+
+ [self.titleLabel y:self.headerView.centerYAnchor padding:5];
+ [self.titleLabel x:self.headerView.centerXAnchor];
+
+ }
+
+ return self;
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/Avimoji/AvimojiViewController.h b/Avatar/App/Avatar/Avimoji/AvimojiViewController.h
new file mode 100644
index 0000000..3c1a5d0
--- /dev/null
+++ b/Avatar/App/Avatar/Avimoji/AvimojiViewController.h
@@ -0,0 +1,29 @@
+#import
+#import "ConstraintExtension.h"
+#import "TDHeaderView.h"
+
+#import "TDAvatarIdentityToolsCell.h"
+#import "TDAvatarIdentityCellHeaderView.h"
+#import "TDAvatarIdentityStickerCell.h"
+#import "TDAvatarIdentityEmojiCell.h"
+#import "TDAvatarIdentityPickerDataSource.h"
+#import "TDEmojiPickerViewController.h"
+
+@interface AvimojiViewController : UIViewController
+@property (nonatomic, retain) TDHeaderView *headerView;
+@property (nonatomic, retain) UIView *preview;
+@property (nonatomic, retain) UIImageView *previewImage;
+@property (nonatomic, retain) UIImageView *stickerImage;
+@property (nonatomic, retain) UILabel *emojiLabel;
+@property (nonatomic, retain) UITextField *textField;
+@property (nonatomic, retain) UICollectionView *collectionView;
+@property (nonatomic, retain) NSMutableArray *stickersArray;
+@property (nonatomic, retain) NSMutableArray *emojisArray;
+@property (nonatomic, retain) UIColor *accentColour;
+@end
+
+
+
+
+
+
diff --git a/Avatar/App/Avatar/Avimoji/AvimojiViewController.m b/Avatar/App/Avatar/Avimoji/AvimojiViewController.m
new file mode 100644
index 0000000..4045501
--- /dev/null
+++ b/Avatar/App/Avatar/Avimoji/AvimojiViewController.m
@@ -0,0 +1,525 @@
+#import "AvimojiViewController.h"
+
+@implementation AvimojiViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ self.accentColour = UIColor.systemBlueColor;
+
+ self.view.tintColor = self.accentColour;
+
+ UIWindow *window = [UIApplication sharedApplication].windows.firstObject;
+ window.tintColor = self.accentColour;
+
+ self.stickersArray = [[TDAvatarIdentityPickerDataSource sharedInstance] stickersData];
+ self.emojisArray = [[TDAvatarIdentityPickerDataSource sharedInstance] emojiData];
+
+ [self layoutHeaderView];
+ [self layoutCollectionView];
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[TDHeaderView alloc] initWithTitle:@"Avimoji" accent:UIColor.systemBlueColor leftIcon:@"chevron.left" leftAction:@selector(dismissVC) rightIcon:@"paperplane.fill" rightAction:nil];
+ self.headerView.grabberView.alpha = 0;
+ self.headerView.leftButton.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.headerView.rightButton.backgroundColor = self.accentColour;
+ self.headerView.rightButton.tintColor = UIColor.whiteColor;
+ self.headerView.rightButton.alpha = 0;
+ self.headerView.rightButton.menu = [self optionsManager];
+ self.headerView.rightButton.showsMenuAsPrimaryAction = true;
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 55)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.safeAreaLayoutGuide.topAnchor padding:0];
+
+
+ self.preview = [[UIView alloc] init];
+ self.preview.backgroundColor = [self colorWithHexString:@"a8e6cf"];
+ self.preview.layer.cornerRadius = 125;
+ self.preview.clipsToBounds = YES;
+ self.preview.layer.masksToBounds = YES;
+ [self.view addSubview:self.preview];
+
+ [self.preview size:CGSizeMake(250, 250)];
+ [self.preview x:self.view.centerXAnchor];
+ [self.preview top:self.headerView.bottomAnchor padding:20];
+
+
+ self.previewImage = [[UIImageView alloc] init];
+ self.previewImage.contentMode = UIViewContentModeScaleAspectFill;
+ [self.preview addSubview:self.previewImage];
+
+ [self.previewImage size:CGSizeMake(250, 250)];
+ [self.previewImage x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+
+ self.stickerImage = [[UIImageView alloc] init];
+ self.stickerImage.contentMode = UIViewContentModeScaleAspectFill;
+ self.stickerImage.alpha = 0;
+ [self.preview addSubview:self.stickerImage];
+
+ [self.stickerImage size:CGSizeMake(200, 200)];
+ [self.stickerImage x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+
+ self.emojiLabel = [[UILabel alloc] init];
+ self.emojiLabel.textAlignment = NSTextAlignmentCenter;
+ self.emojiLabel.font = [UIFont systemFontOfSize:170];
+ self.emojiLabel.text = @"😀";
+ [self.preview addSubview:self.emojiLabel];
+
+ [self.emojiLabel x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+
+
+ self.textField = [[UITextField alloc] init];
+ self.textField.backgroundColor = UIColor.clearColor;
+ self.textField.tintColor = self.accentColour;
+ self.textField.textAlignment = NSTextAlignmentCenter;
+ self.textField.font = [UIFont systemFontOfSize:100 weight:UIFontWeightBold];
+ self.textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
+ self.textField.delegate = self;
+ self.textField.returnKeyType = UIReturnKeyDone;
+ self.textField.alpha = 0;
+ [self.preview addSubview:self.textField];
+
+ [self.textField size:CGSizeMake(230, 230)];
+ [self.textField x:self.preview.centerXAnchor y:self.preview.centerYAnchor];
+}
+
+
+-(void)layoutCollectionView {
+
+ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+ self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
+ self.collectionView.backgroundColor = UIColor.clearColor;
+ self.collectionView.translatesAutoresizingMaskIntoConstraints = NO;
+ self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ [self.collectionView setShowsHorizontalScrollIndicator:NO];
+ [self.collectionView setShowsVerticalScrollIndicator:NO];
+ [self.collectionView registerClass:[TDAvatarIdentityToolsCell class] forCellWithReuseIdentifier:@"ToolsCell"];
+ [self.collectionView registerClass:[TDAvatarIdentityStickerCell class] forCellWithReuseIdentifier:@"StickerCell"];
+ [self.collectionView registerClass:[TDAvatarIdentityEmojiCell class] forCellWithReuseIdentifier:@"EmojiCell"];
+ [self.collectionView registerClass:[TDAvatarIdentityCellHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
+ [self.view addSubview:self.collectionView];
+
+ [self.collectionView top:self.preview.bottomAnchor padding:20];
+ [self.collectionView bottom:self.view.bottomAnchor padding:-20];
+ [self.collectionView leading:self.view.leadingAnchor padding:0];
+ [self.collectionView trailing:self.view.trailingAnchor padding:0];
+
+
+ self.collectionView.delegate = self;
+ self.collectionView.dataSource = self;
+}
+
+
+- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
+ return 3;
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
+ return CGSizeMake(self.view.frame.size.width, 45);
+}
+
+
+- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+
+ if (section == 0) {
+ return 7;
+ } else if (section == 1) {
+ return self.stickersArray.count;
+ } else {
+ return self.emojisArray.count;
+ }
+}
+
+
+-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
+
+ UICollectionReusableView *reusableview = nil;
+
+ if (kind == UICollectionElementKindSectionHeader) {
+
+ TDAvatarIdentityCellHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];
+
+ NSArray *titleArray = [[NSArray alloc] initWithObjects:@"", @"Stickers", @"More", nil];
+
+ headerView.headerLabel.text = [titleArray objectAtIndex:indexPath.section];
+ reusableview = headerView;
+ }
+
+ return reusableview;
+
+}
+
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
+
+ if (indexPath.section == 0) {
+
+ TDAvatarIdentityToolsCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ToolsCell" forIndexPath:indexPath];
+
+ cell.baseView.backgroundColor = [self.accentColour colorWithAlphaComponent:0.4];
+ cell.baseView.layer.borderWidth = 0.8;
+ cell.baseView.layer.borderColor = [self.accentColour colorWithAlphaComponent:0.7].CGColor;
+ cell.iconImage.tintColor = self.accentColour;
+
+ if (indexPath.row == 0) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"photo.fill.on.rectangle.fill"];
+ } else if (indexPath.row == 1) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"paintpalette.fill"];
+ } else if (indexPath.row == 2) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"face.smiling.fill"];
+ } else if (indexPath.row == 3) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"textformat"];
+ } else if (indexPath.row == 4) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"squareshape.fill"];
+ } else if (indexPath.row == 5) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"square.fill"];
+ } else if (indexPath.row == 6) {
+ cell.iconImage.image = [UIImage systemImageNamed:@"circle.fill"];
+ }
+
+ return cell;
+
+ } else if (indexPath.section == 1) {
+
+ TDAvatarIdentityStickerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"StickerCell" forIndexPath:indexPath];
+
+ cell.iconImage.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/var/mobile/Library/Avatar/Stickers/%@", [self.stickersArray objectAtIndex:indexPath.row]]];
+ return cell;
+
+ } else {
+
+ TDAvatarIdentityEmojiCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"EmojiCell" forIndexPath:indexPath];
+
+ TDAvatarIdentityPickerEmojiDataModel *emojiData = [self.emojisArray objectAtIndex:indexPath.row];
+
+ cell.baseView.backgroundColor = [self colorWithHexString:emojiData.colour];
+ cell.emojiLabel.text = emojiData.emoji;
+
+ return cell;
+ }
+
+}
+
+
+- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+ return UIEdgeInsetsMake(0,20,0,20);
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
+ return CGSizeMake(self.view.frame.size.width/4-20, self.view.frame.size.width/4-20);
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ self.modalInPresentation = YES;
+ self.headerView.rightButton.alpha = 1;
+
+ if (indexPath.section == 0) {
+
+ if (indexPath.row == 0) {
+ [self presentPhotoPickerVC];
+ } else if (indexPath.row == 1) {
+ [self presentColourPickerVC];
+ } else if (indexPath.row == 2) {
+ [self presentEmojiPickerVC];
+ } else if (indexPath.row == 3) {
+ [self presentKeyboardEditing];
+ } else if (indexPath.row == 4) {
+ self.preview.layer.cornerRadius = 0;
+ } else if (indexPath.row == 5) {
+ self.preview.layer.cornerRadius = 25;
+ } else if (indexPath.row == 6) {
+ self.preview.layer.cornerRadius = 125;
+ }
+
+ } else if (indexPath.section == 1) {
+
+ [self.textField resignFirstResponder];
+ //self.previewImage.alpha = 0;
+ self.emojiLabel.alpha = 0;
+ self.stickerImage.alpha = 1;
+ self.textField.alpha = 0;
+ self.stickerImage.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"/var/mobile/Library/Avatar/Stickers/%@", [self.stickersArray objectAtIndex:indexPath.row]]];
+
+ } else if (indexPath.section == 2) {
+
+ [self.textField resignFirstResponder];
+ self.previewImage.alpha = 0;
+ self.emojiLabel.alpha = 1;
+ self.stickerImage.alpha = 0;
+ self.textField.alpha = 0;
+
+ TDAvatarIdentityPickerEmojiDataModel *emojiData = [self.emojisArray objectAtIndex:indexPath.row];
+ self.preview.backgroundColor = [self colorWithHexString:emojiData.colour];
+ self.emojiLabel.text = emojiData.emoji;
+ }
+
+
+}
+
+
+-(void)presentPhotoPickerVC {
+
+ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
+ imagePickerController.delegate = self;
+ imagePickerController.allowsEditing = false;
+ imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
+ [self presentViewController:imagePickerController animated:YES completion:nil];
+
+}
+
+
+-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(nonnull NSDictionary *)info {
+
+ [self.textField resignFirstResponder];
+ self.previewImage.alpha = 1;
+ //self.stickerImage.alpha = 0;
+ //self.emojiLabel.alpha = 0;
+ //self.textField.alpha = 0;
+
+ self.previewImage.image = info[UIImagePickerControllerOriginalImage];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)presentColourPickerVC {
+ [self.textField resignFirstResponder];
+ UIColorPickerViewController *colourPickerVC = [[UIColorPickerViewController alloc] init];
+ colourPickerVC.delegate = self;
+ colourPickerVC.selectedColor = self.preview.backgroundColor;
+ colourPickerVC.supportsAlpha = NO;
+ [self presentViewController:colourPickerVC animated:YES completion:nil];
+}
+
+
+- (void)colorPickerViewControllerDidSelectColor:(UIColorPickerViewController *)viewController{
+ self.previewImage.alpha = 0;
+ UIColor *cpSelectedColour = viewController.selectedColor;
+ self.preview.backgroundColor = cpSelectedColour;
+}
+
+
+- (void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController{
+ self.previewImage.alpha = 0;
+ UIColor *cpSelectedColour = viewController.selectedColor;
+ self.preview.backgroundColor = cpSelectedColour;
+}
+
+
+-(void)presentEmojiPickerVC {
+ [self.textField resignFirstResponder];
+ TDEmojiPickerViewController *vc = [[TDEmojiPickerViewController alloc] init];
+ vc.delegate = self;
+ [self presentViewController:vc animated:YES completion:nil];
+}
+
+
+-(void)presentKeyboardEditing {
+
+ self.emojiLabel.alpha = 0;
+ //self.previewImage.alpha = 0;
+ self.textField.alpha = 1;
+ self.stickerImage.alpha = 0;
+ self.emojiLabel.text = 0;
+
+ [self.textField becomeFirstResponder];
+
+}
+
+
+-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
+
+ if (textField.text.length >= 2 && range.length == 0) {
+ return NO;
+ } else {
+ return YES;
+
+ }
+}
+
+
+-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
+ textField.userInteractionEnabled = NO;
+ return YES;
+}
+
+
+-(void)textFieldDidEndEditing:(UITextField *)textField {
+ textField.userInteractionEnabled = YES;
+}
+
+
+- (BOOL)textFieldShouldReturn:(UITextField *)textField {
+ if (textField.text.length >= 1) {
+ [textField resignFirstResponder];
+ return YES;
+ } else {
+ return NO;
+ }
+}
+
+
+-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
+ [self.view endEditing:YES];
+}
+
+
+-(void)didSelectEmoji:(NSString *)emoji {
+ self.emojiLabel.alpha = 1;
+ //self.previewImage.alpha = 0;
+ self.textField.alpha = 0;
+ self.stickerImage.alpha = 0;
+ self.emojiLabel.text = emoji;
+}
+
+
+-(void)didDismissedEmojiPicker {
+ NSLog(@"Emoji picker dismissed");
+}
+
+
+-(void)applyAvatar {
+
+}
+
+
+-(UIImage *)avatarSnapshot {
+
+ UIGraphicsBeginImageContextWithOptions(self.preview.frame.size, NO, 0);
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ [self.preview.layer renderInContext:context];
+ UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
+ return snapshotImage;
+}
+
+
+-(UIColor*)colorWithHexString:(NSString*)hex {
+
+ NSString *cString = [[hex stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
+
+ if ([cString length] < 6) return [UIColor grayColor];
+
+ if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
+
+ if ([cString length] != 6) return [UIColor grayColor];
+
+ NSRange range;
+ range.location = 0;
+ range.length = 2;
+ NSString *rString = [cString substringWithRange:range];
+
+ range.location = 2;
+ NSString *gString = [cString substringWithRange:range];
+
+ range.location = 4;
+ NSString *bString = [cString substringWithRange:range];
+
+ unsigned int r, g, b;
+ [[NSScanner scannerWithString:rString] scanHexInt:&r];
+ [[NSScanner scannerWithString:gString] scanHexInt:&g];
+ [[NSScanner scannerWithString:bString] scanHexInt:&b];
+
+ return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];
+}
+
+
+-(void)dismissVC {
+ [self.navigationController popToRootViewControllerAnimated:YES];
+}
+
+
+-(UIMenu *)optionsManager {
+
+ UIAction *saveAction = [UIAction actionWithTitle:@"Save to photo library" image:[UIImage systemImageNamed:@"photo.fill"] identifier:nil handler:^(UIAction *action) {
+ [self saveSticker];
+ }];
+
+ UIAction *shareAction = [UIAction actionWithTitle:@"Share" image:[UIImage systemImageNamed:@"square.and.arrow.up.fill"] identifier:nil handler:^(UIAction *action) {
+ [self shareSticker];
+ }];
+
+ UIAction *resetAction = [UIAction actionWithTitle:@"Reset" image:[UIImage systemImageNamed:@"trash.fill"] identifier:nil handler:^(UIAction *action) {
+ [self resetSticker];
+ }];
+ resetAction.attributes = UIMenuElementAttributesDestructive;
+
+ return [UIMenu menuWithTitle:@"" children:@[saveAction, shareAction, resetAction]];
+}
+
+
+-(void)saveSticker {
+
+ UIGraphicsBeginImageContextWithOptions(self.preview.frame.size, YES, 0);
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ [self.preview.layer renderInContext:context];
+ UIImage *contextImage = UIGraphicsGetImageFromCurrentImageContext();
+ UIImageWriteToSavedPhotosAlbum(contextImage, nil, nil, nil);
+
+ [self showAlertWithTitle:@"Successful!" subtitle:@"Your Avimoji was saved to your photo library."];
+}
+
+
+-(void)shareSticker {
+
+ UIGraphicsBeginImageContextWithOptions(self.preview.frame.size, YES, 0);
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ [self.preview.layer renderInContext:context];
+ UIImage *contextImage = UIGraphicsGetImageFromCurrentImageContext();
+
+ NSString *title = @"Avimoji";
+ NSArray *dataToShare = @[contextImage, title];
+
+ UIActivityViewController *controller = [[UIActivityViewController alloc]initWithActivityItems:dataToShare applicationActivities:nil];
+ controller.excludedActivityTypes = @[UIActivityTypeAirDrop];
+ [self presentViewController:controller animated:YES completion:nil];
+
+
+ [controller setCompletionWithItemsHandler:^(UIActivityType _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
+ }];
+
+}
+
+
+-(void)resetSticker {
+ self.preview.backgroundColor = [self colorWithHexString:@"a8e6cf"];
+ self.preview.layer.cornerRadius = 125;
+ self.previewImage.image = nil;
+ self.stickerImage.image = nil;
+ self.stickerImage.alpha = 0;
+ self.emojiLabel.alpha = 1;
+ self.emojiLabel.text = @"😀";
+ self.textField.text = @"";
+ self.textField.alpha = 0;
+}
+
+
+-(void)showAlertWithTitle:(NSString *)title subtitle:(NSString *)subtitle {
+
+ UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:subtitle preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
+ }];
+
+ [alert addAction:defaultAction];
+ [self presentViewController:alert animated:YES completion:nil];
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/Base.lproj/LaunchScreen.storyboard b/Avatar/App/Avatar/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..865e932
--- /dev/null
+++ b/Avatar/App/Avatar/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Avatar/App/Avatar/Core/AppDelegate.h b/Avatar/App/Avatar/Core/AppDelegate.h
new file mode 100644
index 0000000..d79858b
--- /dev/null
+++ b/Avatar/App/Avatar/Core/AppDelegate.h
@@ -0,0 +1,7 @@
+#import
+
+@interface AppDelegate : UIResponder
+
+
+@end
+
diff --git a/Avatar/App/Avatar/Core/AppDelegate.m b/Avatar/App/Avatar/Core/AppDelegate.m
new file mode 100644
index 0000000..8c7fce9
--- /dev/null
+++ b/Avatar/App/Avatar/Core/AppDelegate.m
@@ -0,0 +1,33 @@
+#import "AppDelegate.h"
+
+@interface AppDelegate ()
+
+@end
+
+@implementation AppDelegate
+
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+ // Override point for customization after application launch.
+ return YES;
+}
+
+
+#pragma mark - UISceneSession lifecycle
+
+
+- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
+ // Called when a new scene session is being created.
+ // Use this method to select a configuration to create the new scene with.
+ return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
+}
+
+
+- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions {
+ // Called when the user discards a scene session.
+ // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
+ // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/Core/Emoji.plist b/Avatar/App/Avatar/Core/Emoji.plist
new file mode 100644
index 0000000..f2fefa4
--- /dev/null
+++ b/Avatar/App/Avatar/Core/Emoji.plist
@@ -0,0 +1,3136 @@
+
+
+
+
+
+
+ Title
+ Smileys & People
+ Emojis
+
+ 😀
+ 😃
+ 😄
+ 😁
+ 😆
+ 😅
+ 😂
+ 🤣
+ ☺️
+ 😊
+ 😇
+ 🙂
+ 🙃
+ 😉
+ 😌
+ 😍
+ 🥰
+ 😘
+ 😗
+ 😙
+ 😚
+ 😋
+ 😛
+ 😝
+ 😜
+ 🤪
+ 🤨
+ 🧐
+ 🤓
+ 😎
+ 🤩
+ 🥳
+ 😏
+ 😒
+ 😞
+ 😔
+ 😟
+ 😕
+ 🙁
+ ☹️
+ 😣
+ 😖
+ 😫
+ 😩
+ 🥺
+ 😢
+ 😭
+ 😤
+ 😠
+ 😡
+ 🤬
+ 🤯
+ 😳
+ 🥵
+ 🥶
+ 😱
+ 😨
+ 😰
+ 😥
+ 😓
+ 🤗
+ 🤔
+ 🤭
+ 🤫
+ 🤥
+ 😶
+ 😐
+ 😑
+ 😬
+ 🙄
+ 😯
+ 😦
+ 😧
+ 😮
+ 😲
+ 🥱
+ 😴
+ 🤤
+ 😪
+ 😵
+ 🤐
+ 🥴
+ 🤢
+ 🤮
+ 🤧
+ 😷
+ 🤒
+ 🤕
+ 🤑
+ 🤠
+ 😈
+ 👿
+ 👹
+ 👺
+ 🤡
+ 💩
+ 👻
+ 💀
+ ☠️
+ 👽
+ 👾
+ 🤖
+ 🎃
+ 😺
+ 😸
+ 😹
+ 😻
+ 😼
+ 😽
+ 🙀
+ 😿
+ 😾
+ 🤲
+ 🤲🏻
+ 🤲🏼
+ 🤲🏽
+ 🤲🏾
+ 🤲🏿
+ 👐
+ 👐🏻
+ 👐🏼
+ 👐🏽
+ 👐🏾
+ 👐🏿
+ 🙌
+ 🙌🏻
+ 🙌🏼
+ 🙌🏽
+ 🙌🏾
+ 🙌🏿
+ 👏
+ 👏🏻
+ 👏🏼
+ 👏🏽
+ 👏🏾
+ 👏🏿
+ 🤝
+ 👍
+ 👍🏻
+ 👍🏼
+ 👍🏽
+ 👍🏾
+ 👍🏿
+ 👎
+ 👎🏻
+ 👎🏼
+ 👎🏽
+ 👎🏾
+ 👎🏿
+ 👊
+ 👊🏻
+ 👊🏼
+ 👊🏽
+ 👊🏾
+ 👊🏿
+ ✊
+ ✊🏻
+ ✊🏼
+ ✊🏽
+ ✊🏾
+ ✊🏿
+ 🤛
+ 🤛🏻
+ 🤛🏼
+ 🤛🏽
+ 🤛🏾
+ 🤛🏿
+ 🤜
+ 🤜🏻
+ 🤜🏼
+ 🤜🏽
+ 🤜🏾
+ 🤜🏿
+ 🤞
+ 🤞🏻
+ 🤞🏼
+ 🤞🏽
+ 🤞🏾
+ 🤞🏿
+ ✌️
+ ✌🏻
+ ✌🏼
+ ✌🏽
+ ✌🏾
+ ✌🏿
+ 🤟
+ 🤟🏻
+ 🤟🏼
+ 🤟🏽
+ 🤟🏾
+ 🤟🏿
+ 🤘
+ 🤘🏻
+ 🤘🏼
+ 🤘🏽
+ 🤘🏾
+ 🤘🏿
+ 👌
+ 👌🏻
+ 👌🏼
+ 👌🏽
+ 👌🏾
+ 👌🏿
+ 🤏
+ 🤏🏻
+ 🤏🏼
+ 🤏🏽
+ 🤏🏾
+ 🤏🏿
+ 👈
+ 👈🏻
+ 👈🏼
+ 👈🏽
+ 👈🏾
+ 👈🏿
+ 👉
+ 👉🏻
+ 👉🏼
+ 👉🏽
+ 👉🏾
+ 👉🏿
+ 👆
+ 👆🏻
+ 👆🏼
+ 👆🏽
+ 👆🏾
+ 👆🏿
+ 👇
+ 👇🏻
+ 👇🏼
+ 👇🏽
+ 👇🏾
+ 👇🏿
+ ☝️
+ ☝🏻
+ ☝🏼
+ ☝🏽
+ ☝🏾
+ ☝🏿
+ ✋
+ ✋🏻
+ ✋🏼
+ ✋🏽
+ ✋🏾
+ ✋🏿
+ 🤚
+ 🤚🏻
+ 🤚🏼
+ 🤚🏽
+ 🤚🏾
+ 🤚🏿
+ 🖐
+ 🖐🏻
+ 🖐🏼
+ 🖐🏽
+ 🖐🏾
+ 🖐🏿
+ 🖖
+ 🖖🏻
+ 🖖🏼
+ 🖖🏽
+ 🖖🏾
+ 🖖🏿
+ 👋
+ 👋🏻
+ 👋🏼
+ 👋🏽
+ 👋🏾
+ 👋🏿
+ 🤙
+ 🤙🏻
+ 🤙🏼
+ 🤙🏽
+ 🤙🏾
+ 🤙🏿
+ 💪
+ 💪🏻
+ 💪🏼
+ 💪🏽
+ 💪🏾
+ 💪🏿
+ 🦾
+ 🖕
+ 🖕🏻
+ 🖕🏼
+ 🖕🏽
+ 🖕🏾
+ 🖕🏿
+ ✍️
+ ✍🏻
+ ✍🏼
+ ✍🏽
+ ✍🏾
+ ✍🏿
+ 🙏
+ 🙏🏻
+ 🙏🏼
+ 🙏🏽
+ 🙏🏾
+ 🙏🏿
+ 🦶
+ 🦶🏻
+ 🦶🏼
+ 🦶🏽
+ 🦶🏾
+ 🦶🏿
+ 🦵
+ 🦵🏻
+ 🦵🏼
+ 🦵🏽
+ 🦵🏾
+ 🦵🏿
+ 🦿
+ 💄
+ 💋
+ 👄
+ 🦷
+ 👅
+ 👂
+ 👂🏻
+ 👂🏼
+ 👂🏽
+ 👂🏾
+ 👂🏿
+ 🦻
+ 🦻🏻
+ 🦻🏼
+ 🦻🏽
+ 🦻🏾
+ 🦻🏿
+ 👃
+ 👃🏻
+ 👃🏼
+ 👃🏽
+ 👃🏾
+ 👃🏿
+ 👣
+ 👁
+ 👀
+ 🧠
+ 🗣
+ 👤
+ 👥
+ 👶
+ 👶🏻
+ 👶🏼
+ 👶🏽
+ 👶🏾
+ 👶🏿
+ 👧
+ 👧🏻
+ 👧🏼
+ 👧🏽
+ 👧🏾
+ 👧🏿
+ 🧒
+ 🧒🏻
+ 🧒🏼
+ 🧒🏽
+ 🧒🏾
+ 🧒🏿
+ 👦
+ 👦🏻
+ 👦🏼
+ 👦🏽
+ 👦🏾
+ 👦🏿
+ 👩
+ 👩🏻
+ 👩🏼
+ 👩🏽
+ 👩🏾
+ 👩🏿
+ 🧑
+ 🧑🏻
+ 🧑🏼
+ 🧑🏽
+ 🧑🏾
+ 🧑🏿
+ 👨
+ 👨🏻
+ 👨🏼
+ 👨🏽
+ 👨🏾
+ 👨🏿
+ 👩🦱
+ 👩🏻🦱
+ 👩🏼🦱
+ 👩🏽🦱
+ 👩🏾🦱
+ 👩🏿🦱
+ 🧑🦱
+ 🧑🏻🦱
+ 🧑🏼🦱
+ 🧑🏽🦱
+ 🧑🏾🦱
+ 🧑🏿🦱
+ 👨🦱
+ 👨🏻🦱
+ 👨🏼🦱
+ 👨🏽🦱
+ 👨🏾🦱
+ 👨🏿🦱
+ 👩🦰
+ 👩🏻🦰
+ 👩🏼🦰
+ 👩🏽🦰
+ 👩🏾🦰
+ 👩🏿🦰
+ 🧑🦰
+ 🧑🏻🦰
+ 🧑🏼🦰
+ 🧑🏽🦰
+ 🧑🏾🦰
+ 🧑🏿🦰
+ 👨🦰
+ 👨🏻🦰
+ 👨🏼🦰
+ 👨🏽🦰
+ 👨🏾🦰
+ 👨🏿🦰
+ 👱♀️
+ 👱🏻♀️
+ 👱🏼♀️
+ 👱🏽♀️
+ 👱🏾♀️
+ 👱🏿♀️
+ 👱
+ 👱🏻
+ 👱🏼
+ 👱🏽
+ 👱🏾
+ 👱🏿
+ 👱♂️
+ 👱🏻♂️
+ 👱🏼♂️
+ 👱🏽♂️
+ 👱🏾♂️
+ 👱🏿♂️
+ 👩🦳
+ 👩🏻🦳
+ 👩🏼🦳
+ 👩🏽🦳
+ 👩🏾🦳
+ 👩🏿🦳
+ 🧑🦳
+ 🧑🏻🦳
+ 🧑🏼🦳
+ 🧑🏽🦳
+ 🧑🏾🦳
+ 🧑🏿🦳
+ 👨🦳
+ 👨🏻🦳
+ 👨🏼🦳
+ 👨🏽🦳
+ 👨🏾🦳
+ 👨🏿🦳
+ 👩🦲
+ 👩🏻🦲
+ 👩🏼🦲
+ 👩🏽🦲
+ 👩🏾🦲
+ 👩🏿🦲
+ 🧑🦲
+ 🧑🏻🦲
+ 🧑🏼🦲
+ 🧑🏽🦲
+ 🧑🏾🦲
+ 🧑🏿🦲
+ 👨🦲
+ 👨🏻🦲
+ 👨🏼🦲
+ 👨🏽🦲
+ 👨🏾🦲
+ 👨🏿🦲
+ 🧔
+ 🧔🏻
+ 🧔🏼
+ 🧔🏽
+ 🧔🏾
+ 🧔🏿
+ 👵
+ 👵🏻
+ 👵🏼
+ 👵🏽
+ 👵🏾
+ 👵🏿
+ 🧓
+ 🧓🏻
+ 🧓🏼
+ 🧓🏽
+ 🧓🏾
+ 🧓🏿
+ 👴
+ 👴🏻
+ 👴🏼
+ 👴🏽
+ 👴🏾
+ 👴🏿
+ 👲
+ 👲🏻
+ 👲🏼
+ 👲🏽
+ 👲🏾
+ 👲🏿
+ 👳♀️
+ 👳🏻♀️
+ 👳🏼♀️
+ 👳🏽♀️
+ 👳🏾♀️
+ 👳🏿♀️
+ 👳
+ 👳🏻
+ 👳🏼
+ 👳🏽
+ 👳🏾
+ 👳🏿
+ 👳♂️
+ 👳🏻♂️
+ 👳🏼♂️
+ 👳🏽♂️
+ 👳🏾♂️
+ 👳🏿♂️
+ 🧕
+ 🧕🏻
+ 🧕🏼
+ 🧕🏽
+ 🧕🏾
+ 🧕🏿
+ 👮♀️
+ 👮🏻♀️
+ 👮🏼♀️
+ 👮🏽♀️
+ 👮🏾♀️
+ 👮🏿♀️
+ 👮
+ 👮🏻
+ 👮🏼
+ 👮🏽
+ 👮🏾
+ 👮🏿
+ 👮♂️
+ 👮🏻♂️
+ 👮🏼♂️
+ 👮🏽♂️
+ 👮🏾♂️
+ 👮🏿♂️
+ 👷♀️
+ 👷🏻♀️
+ 👷🏼♀️
+ 👷🏽♀️
+ 👷🏾♀️
+ 👷🏿♀️
+ 👷
+ 👷🏻
+ 👷🏼
+ 👷🏽
+ 👷🏾
+ 👷🏿
+ 👷♂️
+ 👷🏻♂️
+ 👷🏼♂️
+ 👷🏽♂️
+ 👷🏾♂️
+ 👷🏿♂️
+ 💂♀️
+ 💂🏻♀️
+ 💂🏼♀️
+ 💂🏽♀️
+ 💂🏾♀️
+ 💂🏿♀️
+ 💂
+ 💂🏻
+ 💂🏼
+ 💂🏽
+ 💂🏾
+ 💂🏿
+ 💂♂️
+ 💂🏻♂️
+ 💂🏼♂️
+ 💂🏽♂️
+ 💂🏾♂️
+ 💂🏿♂️
+ 🕵️♀️
+ 🕵🏻♀️
+ 🕵🏼♀️
+ 🕵🏽♀️
+ 🕵🏾♀️
+ 🕵🏿♀️
+ 🕵️
+ 🕵🏻
+ 🕵🏼
+ 🕵🏽
+ 🕵🏾
+ 🕵🏿
+ 🕵️♂️
+ 🕵🏻♂️
+ 🕵🏼♂️
+ 🕵🏽♂️
+ 🕵🏾♂️
+ 🕵🏿♂️
+ 👩⚕️
+ 👩🏻⚕️
+ 👩🏼⚕️
+ 👩🏽⚕️
+ 👩🏾⚕️
+ 👩🏿⚕️
+ 🧑⚕️
+ 🧑🏻⚕️
+ 🧑🏼⚕️
+ 🧑🏽⚕️
+ 🧑🏾⚕️
+ 🧑🏿⚕️
+ 👨⚕️
+ 👨🏻⚕️
+ 👨🏼⚕️
+ 👨🏽⚕️
+ 👨🏾⚕️
+ 👨🏿⚕️
+ 👩🌾
+ 👩🏻🌾
+ 👩🏼🌾
+ 👩🏽🌾
+ 👩🏾🌾
+ 👩🏿🌾
+ 🧑🌾
+ 🧑🏻🌾
+ 🧑🏼🌾
+ 🧑🏽🌾
+ 🧑🏾🌾
+ 🧑🏿🌾
+ 👨🌾
+ 👨🏻🌾
+ 👨🏼🌾
+ 👨🏽🌾
+ 👨🏾🌾
+ 👨🏿🌾
+ 👩🍳
+ 👩🏻🍳
+ 👩🏼🍳
+ 👩🏽🍳
+ 👩🏾🍳
+ 👩🏿🍳
+ 🧑🍳
+ 🧑🏻🍳
+ 🧑🏼🍳
+ 🧑🏽🍳
+ 🧑🏾🍳
+ 🧑🏿🍳
+ 👨🍳
+ 👨🏻🍳
+ 👨🏼🍳
+ 👨🏽🍳
+ 👨🏾🍳
+ 👨🏿🍳
+ 👩🎓
+ 👩🏻🎓
+ 👩🏼🎓
+ 👩🏽🎓
+ 👩🏾🎓
+ 👩🏿🎓
+ 🧑🎓
+ 🧑🏻🎓
+ 🧑🏼🎓
+ 🧑🏽🎓
+ 🧑🏾🎓
+ 🧑🏿🎓
+ 👨🎓
+ 👨🏻🎓
+ 👨🏼🎓
+ 👨🏽🎓
+ 👨🏾🎓
+ 👨🏿🎓
+ 👩🎤
+ 👩🏻🎤
+ 👩🏼🎤
+ 👩🏽🎤
+ 👩🏾🎤
+ 👩🏿🎤
+ 🧑🎤
+ 🧑🏻🎤
+ 🧑🏼🎤
+ 🧑🏽🎤
+ 🧑🏾🎤
+ 🧑🏿🎤
+ 👨🎤
+ 👨🏻🎤
+ 👨🏼🎤
+ 👨🏽🎤
+ 👨🏾🎤
+ 👨🏿🎤
+ 👩🏫
+ 👩🏻🏫
+ 👩🏼🏫
+ 👩🏽🏫
+ 👩🏾🏫
+ 👩🏿🏫
+ 🧑🏫
+ 🧑🏻🏫
+ 🧑🏼🏫
+ 🧑🏽🏫
+ 🧑🏾🏫
+ 🧑🏿🏫
+ 👨🏫
+ 👨🏻🏫
+ 👨🏼🏫
+ 👨🏽🏫
+ 👨🏾🏫
+ 👨🏿🏫
+ 👩🏭
+ 👩🏻🏭
+ 👩🏼🏭
+ 👩🏽🏭
+ 👩🏾🏭
+ 👩🏿🏭
+ 🧑🏭
+ 🧑🏻🏭
+ 🧑🏼🏭
+ 🧑🏽🏭
+ 🧑🏾🏭
+ 🧑🏿🏭
+ 👨🏭
+ 👨🏻🏭
+ 👨🏼🏭
+ 👨🏽🏭
+ 👨🏾🏭
+ 👨🏿🏭
+ 👩💻
+ 👩🏻💻
+ 👩🏼💻
+ 👩🏽💻
+ 👩🏾💻
+ 👩🏿💻
+ 🧑💻
+ 🧑🏻💻
+ 🧑🏼💻
+ 🧑🏽💻
+ 🧑🏾💻
+ 🧑🏿💻
+ 👨💻
+ 👨🏻💻
+ 👨🏼💻
+ 👨🏽💻
+ 👨🏾💻
+ 👨🏿💻
+ 👩💼
+ 👩🏻💼
+ 👩🏼💼
+ 👩🏽💼
+ 👩🏾💼
+ 👩🏿💼
+ 🧑💼
+ 🧑🏻💼
+ 🧑🏼💼
+ 🧑🏽💼
+ 🧑🏾💼
+ 🧑🏿💼
+ 👨💼
+ 👨🏻💼
+ 👨🏼💼
+ 👨🏽💼
+ 👨🏾💼
+ 👨🏿💼
+ 👩🔧
+ 👩🏻🔧
+ 👩🏼🔧
+ 👩🏽🔧
+ 👩🏾🔧
+ 👩🏿🔧
+ 🧑🔧
+ 🧑🏻🔧
+ 🧑🏼🔧
+ 🧑🏽🔧
+ 🧑🏾🔧
+ 🧑🏿🔧
+ 👨🔧
+ 👨🏻🔧
+ 👨🏼🔧
+ 👨🏽🔧
+ 👨🏾🔧
+ 👨🏿🔧
+ 👩🔬
+ 👩🏻🔬
+ 👩🏼🔬
+ 👩🏽🔬
+ 👩🏾🔬
+ 👩🏿🔬
+ 🧑🔬
+ 🧑🏻🔬
+ 🧑🏼🔬
+ 🧑🏽🔬
+ 🧑🏾🔬
+ 🧑🏿🔬
+ 👨🔬
+ 👨🏻🔬
+ 👨🏼🔬
+ 👨🏽🔬
+ 👨🏾🔬
+ 👨🏿🔬
+ 👩🎨
+ 👩🏻🎨
+ 👩🏼🎨
+ 👩🏽🎨
+ 👩🏾🎨
+ 👩🏿🎨
+ 🧑🎨
+ 🧑🏻🎨
+ 🧑🏼🎨
+ 🧑🏽🎨
+ 🧑🏾🎨
+ 🧑🏿🎨
+ 👨🎨
+ 👨🏻🎨
+ 👨🏼🎨
+ 👨🏽🎨
+ 👨🏾🎨
+ 👨🏿🎨
+ 👩🚒
+ 👩🏻🚒
+ 👩🏼🚒
+ 👩🏽🚒
+ 👩🏾🚒
+ 👩🏿🚒
+ 🧑🚒
+ 🧑🏻🚒
+ 🧑🏼🚒
+ 🧑🏽🚒
+ 🧑🏾🚒
+ 🧑🏿🚒
+ 👨🚒
+ 👨🏻🚒
+ 👨🏼🚒
+ 👨🏽🚒
+ 👨🏾🚒
+ 👨🏿🚒
+ 👩✈️
+ 👩🏻✈️
+ 👩🏼✈️
+ 👩🏽✈️
+ 👩🏾✈️
+ 👩🏿✈️
+ 🧑✈️
+ 🧑🏻✈️
+ 🧑🏼✈️
+ 🧑🏽✈️
+ 🧑🏾✈️
+ 🧑🏿✈️
+ 👨✈️
+ 👨🏻✈️
+ 👨🏼✈️
+ 👨🏽✈️
+ 👨🏾✈️
+ 👨🏿✈️
+ 👩🚀
+ 👩🏻🚀
+ 👩🏼🚀
+ 👩🏽🚀
+ 👩🏾🚀
+ 👩🏿🚀
+ 🧑🚀
+ 🧑🏻🚀
+ 🧑🏼🚀
+ 🧑🏽🚀
+ 🧑🏾🚀
+ 🧑🏿🚀
+ 👨🚀
+ 👨🏻🚀
+ 👨🏼🚀
+ 👨🏽🚀
+ 👨🏾🚀
+ 👨🏿🚀
+ 👩⚖️
+ 👩🏻⚖️
+ 👩🏼⚖️
+ 👩🏽⚖️
+ 👩🏾⚖️
+ 👩🏿⚖️
+ 🧑⚖️
+ 🧑🏻⚖️
+ 🧑🏼⚖️
+ 🧑🏽⚖️
+ 🧑🏾⚖️
+ 🧑🏿⚖️
+ 👨⚖️
+ 👨🏻⚖️
+ 👨🏼⚖️
+ 👨🏽⚖️
+ 👨🏾⚖️
+ 👨🏿⚖️
+ 👰
+ 👰🏻
+ 👰🏼
+ 👰🏽
+ 👰🏾
+ 👰🏿
+ 🤵
+ 🤵🏻
+ 🤵🏼
+ 🤵🏽
+ 🤵🏾
+ 🤵🏿
+ 👸
+ 👸🏻
+ 👸🏼
+ 👸🏽
+ 👸🏾
+ 👸🏿
+ 🤴
+ 🤴🏻
+ 🤴🏼
+ 🤴🏽
+ 🤴🏾
+ 🤴🏿
+ 🦸♀️
+ 🦸🏻♀️
+ 🦸🏼♀️
+ 🦸🏽♀️
+ 🦸🏾♀️
+ 🦸🏿♀️
+ 🦸
+ 🦸🏻
+ 🦸🏼
+ 🦸🏽
+ 🦸🏾
+ 🦸🏿
+ 🦸♂️
+ 🦸🏻♂️
+ 🦸🏼♂️
+ 🦸🏽♂️
+ 🦸🏾♂️
+ 🦸🏿♂️
+ 🦹♀️
+ 🦹🏻♀️
+ 🦹🏼♀️
+ 🦹🏽♀️
+ 🦹🏾♀️
+ 🦹🏿♀️
+ 🦹
+ 🦹🏻
+ 🦹🏼
+ 🦹🏽
+ 🦹🏾
+ 🦹🏿
+ 🦹♂️
+ 🦹🏻♂️
+ 🦹🏼♂️
+ 🦹🏽♂️
+ 🦹🏾♂️
+ 🦹🏿♂️
+ 🤶
+ 🤶🏻
+ 🤶🏼
+ 🤶🏽
+ 🤶🏾
+ 🤶🏿
+ 🎅
+ 🎅🏻
+ 🎅🏼
+ 🎅🏽
+ 🎅🏾
+ 🎅🏿
+ 🧙♀️
+ 🧙🏻♀️
+ 🧙🏼♀️
+ 🧙🏽♀️
+ 🧙🏾♀️
+ 🧙🏿♀️
+ 🧙
+ 🧙🏻
+ 🧙🏼
+ 🧙🏽
+ 🧙🏾
+ 🧙🏿
+ 🧙♂️
+ 🧙🏻♂️
+ 🧙🏼♂️
+ 🧙🏽♂️
+ 🧙🏾♂️
+ 🧙🏿♂️
+ 🧝♀️
+ 🧝🏻♀️
+ 🧝🏼♀️
+ 🧝🏽♀️
+ 🧝🏾♀️
+ 🧝🏿♀️
+ 🧝
+ 🧝🏻
+ 🧝🏼
+ 🧝🏽
+ 🧝🏾
+ 🧝🏿
+ 🧝♂️
+ 🧝🏻♂️
+ 🧝🏼♂️
+ 🧝🏽♂️
+ 🧝🏾♂️
+ 🧝🏿♂️
+ 🧛♀️
+ 🧛🏻♀️
+ 🧛🏼♀️
+ 🧛🏽♀️
+ 🧛🏾♀️
+ 🧛🏿♀️
+ 🧛
+ 🧛🏻
+ 🧛🏼
+ 🧛🏽
+ 🧛🏾
+ 🧛🏿
+ 🧛♂️
+ 🧛🏻♂️
+ 🧛🏼♂️
+ 🧛🏽♂️
+ 🧛🏾♂️
+ 🧛🏿♂️
+ 🧟♀️
+ 🧟
+ 🧟♂️
+ 🧞♀️
+ 🧞
+ 🧞♂️
+ 🧜♀️
+ 🧜🏻♀️
+ 🧜🏼♀️
+ 🧜🏽♀️
+ 🧜🏾♀️
+ 🧜🏿♀️
+ 🧜
+ 🧜🏻
+ 🧜🏼
+ 🧜🏽
+ 🧜🏾
+ 🧜🏿
+ 🧜♂️
+ 🧜🏻♂️
+ 🧜🏼♂️
+ 🧜🏽♂️
+ 🧜🏾♂️
+ 🧜🏿♂️
+ 🧚♀️
+ 🧚🏻♀️
+ 🧚🏼♀️
+ 🧚🏽♀️
+ 🧚🏾♀️
+ 🧚🏿♀️
+ 🧚
+ 🧚🏻
+ 🧚🏼
+ 🧚🏽
+ 🧚🏾
+ 🧚🏿
+ 🧚♂️
+ 🧚🏻♂️
+ 🧚🏼♂️
+ 🧚🏽♂️
+ 🧚🏾♂️
+ 🧚🏿♂️
+ 👼
+ 👼🏻
+ 👼🏼
+ 👼🏽
+ 👼🏾
+ 👼🏿
+ 🤰
+ 🤰🏻
+ 🤰🏼
+ 🤰🏽
+ 🤰🏾
+ 🤰🏿
+ 🤱
+ 🤱🏻
+ 🤱🏼
+ 🤱🏽
+ 🤱🏾
+ 🤱🏿
+ 🙇♀️
+ 🙇🏻♀️
+ 🙇🏼♀️
+ 🙇🏽♀️
+ 🙇🏾♀️
+ 🙇🏿♀️
+ 🙇
+ 🙇🏻
+ 🙇🏼
+ 🙇🏽
+ 🙇🏾
+ 🙇🏿
+ 🙇♂️
+ 🙇🏻♂️
+ 🙇🏼♂️
+ 🙇🏽♂️
+ 🙇🏾♂️
+ 🙇🏿♂️
+ 💁♀️
+ 💁🏻♀️
+ 💁🏼♀️
+ 💁🏽♀️
+ 💁🏾♀️
+ 💁🏿♀️
+ 💁
+ 💁🏻
+ 💁🏼
+ 💁🏽
+ 💁🏾
+ 💁🏿
+ 💁♂️
+ 💁🏻♂️
+ 💁🏼♂️
+ 💁🏽♂️
+ 💁🏾♂️
+ 💁🏿♂️
+ 🙅♀️
+ 🙅🏻♀️
+ 🙅🏼♀️
+ 🙅🏽♀️
+ 🙅🏾♀️
+ 🙅🏿♀️
+ 🙅
+ 🙅🏻
+ 🙅🏼
+ 🙅🏽
+ 🙅🏾
+ 🙅🏿
+ 🙅♂️
+ 🙅🏻♂️
+ 🙅🏼♂️
+ 🙅🏽♂️
+ 🙅🏾♂️
+ 🙅🏿♂️
+ 🙆♀️
+ 🙆🏻♀️
+ 🙆🏼♀️
+ 🙆🏽♀️
+ 🙆🏾♀️
+ 🙆🏿♀️
+ 🙆
+ 🙆🏻
+ 🙆🏼
+ 🙆🏽
+ 🙆🏾
+ 🙆🏿
+ 🙆♂️
+ 🙆🏻♂️
+ 🙆🏼♂️
+ 🙆🏽♂️
+ 🙆🏾♂️
+ 🙆🏿♂️
+ 🙋♀️
+ 🙋🏻♀️
+ 🙋🏼♀️
+ 🙋🏽♀️
+ 🙋🏾♀️
+ 🙋🏿♀️
+ 🙋
+ 🙋🏻
+ 🙋🏼
+ 🙋🏽
+ 🙋🏾
+ 🙋🏿
+ 🙋♂️
+ 🙋🏻♂️
+ 🙋🏼♂️
+ 🙋🏽♂️
+ 🙋🏾♂️
+ 🙋🏿♂️
+ 🧏♀️
+ 🧏🏻♀️
+ 🧏🏼♀️
+ 🧏🏽♀️
+ 🧏🏾♀️
+ 🧏🏿♀️
+ 🧏
+ 🧏🏻
+ 🧏🏼
+ 🧏🏽
+ 🧏🏾
+ 🧏🏿
+ 🧏♂️
+ 🧏🏻♂️
+ 🧏🏼♂️
+ 🧏🏽♂️
+ 🧏🏾♂️
+ 🧏🏿♂️
+ 🤦♀️
+ 🤦🏻♀️
+ 🤦🏼♀️
+ 🤦🏽♀️
+ 🤦🏾♀️
+ 🤦🏿♀️
+ 🤦
+ 🤦🏻
+ 🤦🏼
+ 🤦🏽
+ 🤦🏾
+ 🤦🏿
+ 🤦♂️
+ 🤦🏻♂️
+ 🤦🏼♂️
+ 🤦🏽♂️
+ 🤦🏾♂️
+ 🤦🏿♂️
+ 🤷♀️
+ 🤷🏻♀️
+ 🤷🏼♀️
+ 🤷🏽♀️
+ 🤷🏾♀️
+ 🤷🏿♀️
+ 🤷
+ 🤷🏻
+ 🤷🏼
+ 🤷🏽
+ 🤷🏾
+ 🤷🏿
+ 🤷♂️
+ 🤷🏻♂️
+ 🤷🏼♂️
+ 🤷🏽♂️
+ 🤷🏾♂️
+ 🤷🏿♂️
+ 🙎♀️
+ 🙎🏻♀️
+ 🙎🏼♀️
+ 🙎🏽♀️
+ 🙎🏾♀️
+ 🙎🏿♀️
+ 🙎
+ 🙎🏻
+ 🙎🏼
+ 🙎🏽
+ 🙎🏾
+ 🙎🏿
+ 🙎♂️
+ 🙎🏻♂️
+ 🙎🏼♂️
+ 🙎🏽♂️
+ 🙎🏾♂️
+ 🙎🏿♂️
+ 🙍♀️
+ 🙍🏻♀️
+ 🙍🏼♀️
+ 🙍🏽♀️
+ 🙍🏾♀️
+ 🙍🏿♀️
+ 🙍
+ 🙍🏻
+ 🙍🏼
+ 🙍🏽
+ 🙍🏾
+ 🙍🏿
+ 🙍♂️
+ 🙍🏻♂️
+ 🙍🏼♂️
+ 🙍🏽♂️
+ 🙍🏾♂️
+ 🙍🏿♂️
+ 💇♀️
+ 💇🏻♀️
+ 💇🏼♀️
+ 💇🏽♀️
+ 💇🏾♀️
+ 💇🏿♀️
+ 💇
+ 💇🏻
+ 💇🏼
+ 💇🏽
+ 💇🏾
+ 💇🏿
+ 💇♂️
+ 💇🏻♂️
+ 💇🏼♂️
+ 💇🏽♂️
+ 💇🏾♂️
+ 💇🏿♂️
+ 💆♀️
+ 💆🏻♀️
+ 💆🏼♀️
+ 💆🏽♀️
+ 💆🏾♀️
+ 💆🏿♀️
+ 💆
+ 💆🏻
+ 💆🏼
+ 💆🏽
+ 💆🏾
+ 💆🏿
+ 💆♂️
+ 💆🏻♂️
+ 💆🏼♂️
+ 💆🏽♂️
+ 💆🏾♂️
+ 💆🏿♂️
+ 🧖♀️
+ 🧖🏻♀️
+ 🧖🏼♀️
+ 🧖🏽♀️
+ 🧖🏾♀️
+ 🧖🏿♀️
+ 🧖
+ 🧖🏻
+ 🧖🏼
+ 🧖🏽
+ 🧖🏾
+ 🧖🏿
+ 🧖♂️
+ 🧖🏻♂️
+ 🧖🏼♂️
+ 🧖🏽♂️
+ 🧖🏾♂️
+ 🧖🏿♂️
+ 💅
+ 💅🏻
+ 💅🏼
+ 💅🏽
+ 💅🏾
+ 💅🏿
+ 🤳
+ 🤳🏻
+ 🤳🏼
+ 🤳🏽
+ 🤳🏾
+ 🤳🏿
+ 💃
+ 💃🏻
+ 💃🏼
+ 💃🏽
+ 💃🏾
+ 💃🏿
+ 🕺
+ 🕺🏻
+ 🕺🏼
+ 🕺🏽
+ 🕺🏾
+ 🕺🏿
+ 👯♀️
+ 👯
+ 👯♂️
+ 🕴
+ 🕴🏻
+ 🕴🏼
+ 🕴🏽
+ 🕴🏾
+ 🕴🏿
+ 👩🦽
+ 👩🏻🦽
+ 👩🏼🦽
+ 👩🏽🦽
+ 👩🏾🦽
+ 👩🏿🦽
+ 🧑🦽
+ 🧑🏻🦽
+ 🧑🏼🦽
+ 🧑🏽🦽
+ 🧑🏾🦽
+ 🧑🏿🦽
+ 👨🦽
+ 👨🏻🦽
+ 👨🏼🦽
+ 👨🏽🦽
+ 👨🏾🦽
+ 👨🏿🦽
+ 👩🦼
+ 👩🏻🦼
+ 👩🏼🦼
+ 👩🏽🦼
+ 👩🏾🦼
+ 👩🏿🦼
+ 🧑🦼
+ 🧑🏻🦼
+ 🧑🏼🦼
+ 🧑🏽🦼
+ 🧑🏾🦼
+ 🧑🏿🦼
+ 👨🦼
+ 👨🏻🦼
+ 👨🏼🦼
+ 👨🏽🦼
+ 👨🏾🦼
+ 👨🏿🦼
+ 🚶♀️
+ 🚶🏻♀️
+ 🚶🏼♀️
+ 🚶🏽♀️
+ 🚶🏾♀️
+ 🚶🏿♀️
+ 🚶
+ 🚶🏻
+ 🚶🏼
+ 🚶🏽
+ 🚶🏾
+ 🚶🏿
+ 🚶♂️
+ 🚶🏻♂️
+ 🚶🏼♂️
+ 🚶🏽♂️
+ 🚶🏾♂️
+ 🚶🏿♂️
+ 👩🦯
+ 👩🏻🦯
+ 👩🏼🦯
+ 👩🏽🦯
+ 👩🏾🦯
+ 👩🏿🦯
+ 🧑🦯
+ 🧑🏻🦯
+ 🧑🏼🦯
+ 🧑🏽🦯
+ 🧑🏾🦯
+ 🧑🏿🦯
+ 👨🦯
+ 👨🏻🦯
+ 👨🏼🦯
+ 👨🏽🦯
+ 👨🏾🦯
+ 👨🏿🦯
+ 🧎♀️
+ 🧎🏻♀️
+ 🧎🏼♀️
+ 🧎🏽♀️
+ 🧎🏾♀️
+ 🧎🏿♀️
+ 🧎
+ 🧎🏻
+ 🧎🏼
+ 🧎🏽
+ 🧎🏾
+ 🧎🏿
+ 🧎♂️
+ 🧎🏻♂️
+ 🧎🏼♂️
+ 🧎🏽♂️
+ 🧎🏾♂️
+ 🧎🏿♂️
+ 🏃♀️
+ 🏃🏻♀️
+ 🏃🏼♀️
+ 🏃🏽♀️
+ 🏃🏾♀️
+ 🏃🏿♀️
+ 🏃
+ 🏃🏻
+ 🏃🏼
+ 🏃🏽
+ 🏃🏾
+ 🏃🏿
+ 🏃♂️
+ 🏃🏻♂️
+ 🏃🏼♂️
+ 🏃🏽♂️
+ 🏃🏾♂️
+ 🏃🏿♂️
+ 🧍♀️
+ 🧍🏻♀️
+ 🧍🏼♀️
+ 🧍🏽♀️
+ 🧍🏾♀️
+ 🧍🏿♀️
+ 🧍
+ 🧍🏻
+ 🧍🏼
+ 🧍🏽
+ 🧍🏾
+ 🧍🏿
+ 🧍♂️
+ 🧍🏻♂️
+ 🧍🏼♂️
+ 🧍🏽♂️
+ 🧍🏾♂️
+ 🧍🏿♂️
+ 👫
+ 👩🏻🤝👨🏼
+ 👩🏻🤝👨🏽
+ 👩🏻🤝👨🏾
+ 👩🏻🤝👨🏿
+ 👩🏼🤝👨🏻
+ 👭
+ 👩🏻🤝👩🏼
+ 👩🏻🤝👩🏽
+ 👩🏻🤝👩🏾
+ 👩🏻🤝👩🏿
+ 👩🏼🤝👩🏻
+ 👬
+ 👨🏻🤝👨🏼
+ 👨🏻🤝👨🏽
+ 👨🏻🤝👨🏾
+ 👨🏻🤝👨🏿
+ 👨🏼🤝👨🏻
+ 👩❤️👨
+ 👩❤️👩
+ 👨❤️👨
+ 👩❤️💋👨
+ 👩❤️💋👩
+ 👨❤️💋👨
+ 👨👩👦
+ 👨👩👧
+ 👨👩👧👦
+ 👨👩👦👦
+ 👨👩👧👧
+ 👩👩👦
+ 👩👩👧
+ 👩👩👧👦
+ 👩👩👦👦
+ 👩👩👧👧
+ 👨👨👦
+ 👨👨👧
+ 👨👨👧👦
+ 👨👨👦👦
+ 👨👨👧👧
+ 👩👦
+ 👩👧
+ 👩👧👦
+ 👩👦👦
+ 👩👧👧
+ 👨👦
+ 👨👧
+ 👨👧👦
+ 👨👦👦
+ 👨👧👧
+ 🧶
+ 🧵
+ 🧥
+ 🥼
+ 🦺
+ 👚
+ 👕
+ 👖
+ 🩲
+ 🩳
+ 👔
+ 👗
+ 👙
+ 👘
+ 🥻
+ 🩱
+ 🥿
+ 👠
+ 👡
+ 👢
+ 👞
+ 👟
+ 🥾
+ 🧦
+ 🧤
+ 🧣
+ 🎩
+ 🧢
+ 👒
+ 🎓
+ ⛑
+ 👑
+ 💍
+ 👝
+ 👛
+ 👜
+ 💼
+ 🎒
+ 🧳
+ 👓
+ 🕶
+ 🥽
+ 🌂
+
+
+
+
+ Title
+ Animals & Nature
+ Emojis
+
+ 🐶
+ 🐱
+ 🐭
+ 🐹
+ 🐰
+ 🦊
+ 🐻
+ 🐼
+ 🐨
+ 🐯
+ 🦁
+ 🐮
+ 🐷
+ 🐽
+ 🐸
+ 🐵
+ 🙈
+ 🙉
+ 🙊
+ 🐒
+ 🐔
+ 🐧
+ 🐦
+ 🐤
+ 🐣
+ 🐥
+ 🦆
+ 🦅
+ 🦉
+ 🦇
+ 🐺
+ 🐗
+ 🐴
+ 🦄
+ 🐝
+ 🐛
+ 🦋
+ 🐌
+ 🐞
+ 🐜
+ 🦟
+ 🦗
+ 🕷
+ 🕸
+ 🦂
+ 🐢
+ 🐍
+ 🦎
+ 🦖
+ 🦕
+ 🐙
+ 🦑
+ 🦐
+ 🦞
+ 🦀
+ 🐡
+ 🐠
+ 🐟
+ 🐬
+ 🐳
+ 🐋
+ 🦈
+ 🐊
+ 🐅
+ 🐆
+ 🦓
+ 🦍
+ 🦧
+ 🐘
+ 🦛
+ 🦏
+ 🐪
+ 🐫
+ 🦒
+ 🦘
+ 🐃
+ 🐂
+ 🐄
+ 🐎
+ 🐖
+ 🐏
+ 🐑
+ 🦙
+ 🐐
+ 🦌
+ 🐕
+ 🐩
+ 🦮
+ 🐕🦺
+ 🐈
+ 🐓
+ 🦃
+ 🦚
+ 🦜
+ 🦢
+ 🦩
+ 🕊
+ 🐇
+ 🦝
+ 🦨
+ 🦡
+ 🦦
+ 🦥
+ 🐁
+ 🐀
+ 🐿
+ 🦔
+ 🐾
+ 🐉
+ 🐲
+ 🌵
+ 🎄
+ 🌲
+ 🌳
+ 🌴
+ 🌱
+ 🌿
+ ☘️
+ 🍀
+ 🎍
+ 🎋
+ 🍃
+ 🍂
+ 🍁
+ 🍄
+ 🐚
+ 🌾
+ 💐
+ 🌷
+ 🌹
+ 🥀
+ 🌺
+ 🌸
+ 🌼
+ 🌻
+ 🌞
+ 🌝
+ 🌛
+ 🌜
+ 🌚
+ 🌕
+ 🌖
+ 🌗
+ 🌘
+ 🌑
+ 🌒
+ 🌓
+ 🌔
+ 🌙
+ 🌎
+ 🌍
+ 🌏
+ 🪐
+ 💫
+ ⭐️
+ 🌟
+ ✨
+ ⚡️
+ ☄️
+ 💥
+ 🔥
+ 🌪
+ 🌈
+ ☀️
+ 🌤
+ ⛅️
+ 🌥
+ ☁️
+ 🌦
+ 🌧
+ ⛈
+ 🌩
+ 🌨
+ ❄️
+ ☃️
+ ⛄️
+ 🌬
+ 💨
+ 💧
+ 💦
+ ☔️
+ ☂️
+ 🌊
+ 🌫
+
+
+
+
+ Title
+ Food & Drink
+ Emojis
+
+ 🍏
+ 🍎
+ 🍐
+ 🍊
+ 🍋
+ 🍌
+ 🍉
+ 🍇
+ 🍓
+ 🍈
+ 🍒
+ 🍑
+ 🥭
+ 🍍
+ 🥥
+ 🥝
+ 🍅
+ 🍆
+ 🥑
+ 🥦
+ 🥬
+ 🥒
+ 🌶
+ 🌽
+ 🥕
+ 🧄
+ 🧅
+ 🥔
+ 🍠
+ 🥐
+ 🥯
+ 🍞
+ 🥖
+ 🥨
+ 🧀
+ 🥚
+ 🍳
+ 🧈
+ 🥞
+ 🧇
+ 🥓
+ 🥩
+ 🍗
+ 🍖
+ 🦴
+ 🌭
+ 🍔
+ 🍟
+ 🍕
+ 🥪
+ 🥙
+ 🧆
+ 🌮
+ 🌯
+ 🥗
+ 🥘
+ 🥫
+ 🍝
+ 🍜
+ 🍲
+ 🍛
+ 🍣
+ 🍱
+ 🥟
+ 🦪
+ 🍤
+ 🍙
+ 🍚
+ 🍘
+ 🍥
+ 🥠
+ 🥮
+ 🍢
+ 🍡
+ 🍧
+ 🍨
+ 🍦
+ 🥧
+ 🧁
+ 🍰
+ 🎂
+ 🍮
+ 🍭
+ 🍬
+ 🍫
+ 🍿
+ 🍩
+ 🍪
+ 🌰
+ 🥜
+ 🍯
+ 🥛
+ 🍼
+ ☕️
+ 🍵
+ 🧃
+ 🥤
+ 🍶
+ 🍺
+ 🍻
+ 🥂
+ 🍷
+ 🥃
+ 🍸
+ 🍹
+ 🧉
+ 🍾
+ 🧊
+ 🥄
+ 🍴
+ 🍽
+ 🥣
+ 🥡
+ 🥢
+ 🧂
+
+
+
+
+ Title
+ Activity
+ Emojis
+
+ ⚽️
+ 🏀
+ 🏈
+ ⚾️
+ 🥎
+ 🎾
+ 🏐
+ 🏉
+ 🥏
+ 🎱
+ 🪀
+ 🏓
+ 🏸
+ 🏒
+ 🏑
+ 🥍
+ 🏏
+ 🥅
+ ⛳️
+ 🪁
+ 🏹
+ 🎣
+ 🤿
+ 🥊
+ 🥋
+ 🎽
+ 🛹
+ 🛷
+ ⛸
+ 🥌
+ 🎿
+ ⛷
+ 🏂
+ 🪂
+ 🏋️♀️
+ 🏋🏻♀️
+ 🏋🏼♀️
+ 🏋🏽♀️
+ 🏋🏾♀️
+ 🏋🏿♀️
+ 🏋️
+ 🏋🏻
+ 🏋🏼
+ 🏋🏽
+ 🏋🏾
+ 🏋🏿
+ 🏋️♂️
+ 🏋🏻♂️
+ 🏋🏼♂️
+ 🏋🏽♂️
+ 🏋🏾♂️
+ 🏋🏿♂️
+ 🤼♀️
+ 🤼
+ 🤼♂️
+ 🤸♀️
+ 🤸🏻♀️
+ 🤸🏼♀️
+ 🤸🏽♀️
+ 🤸🏾♀️
+ 🤸🏿♀️
+ 🤸
+ 🤸🏻
+ 🤸🏼
+ 🤸🏽
+ 🤸🏾
+ 🤸🏿
+ 🤸♂️
+ 🤸🏻♂️
+ 🤸🏼♂️
+ 🤸🏽♂️
+ 🤸🏾♂️
+ 🤸🏿♂️
+ ⛹️♀️
+ ⛹🏻♀️
+ ⛹🏼♀️
+ ⛹🏽♀️
+ ⛹🏾♀️
+ ⛹🏿♀️
+ ⛹️
+ ⛹🏻
+ ⛹🏼
+ ⛹🏽
+ ⛹🏾
+ ⛹🏿
+ ⛹️♂️
+ ⛹🏻♂️
+ ⛹🏼♂️
+ ⛹🏽♂️
+ ⛹🏾♂️
+ ⛹🏿♂️
+ 🤺
+ 🤾♀️
+ 🤾🏻♀️
+ 🤾🏼♀️
+ 🤾🏽♀️
+ 🤾🏾♀️
+ 🤾🏿♀️
+ 🤾
+ 🤾🏻
+ 🤾🏼
+ 🤾🏽
+ 🤾🏾
+ 🤾🏿
+ 🤾♂️
+ 🤾🏻♂️
+ 🤾🏼♂️
+ 🤾🏽♂️
+ 🤾🏾♂️
+ 🤾🏿♂️
+ 🏌️♀️
+ 🏌🏻♀️
+ 🏌🏼♀️
+ 🏌🏽♀️
+ 🏌🏾♀️
+ 🏌🏿♀️
+ 🏌️
+ 🏌🏻
+ 🏌🏼
+ 🏌🏽
+ 🏌🏾
+ 🏌🏿
+ 🏌️♂️
+ 🏌🏻♂️
+ 🏌🏼♂️
+ 🏌🏽♂️
+ 🏌🏾♂️
+ 🏌🏿♂️
+ 🏇
+ 🏇🏻
+ 🏇🏼
+ 🏇🏽
+ 🏇🏾
+ 🏇🏿
+ 🧘♀️
+ 🧘🏻♀️
+ 🧘🏼♀️
+ 🧘🏽♀️
+ 🧘🏾♀️
+ 🧘🏿♀️
+ 🧘
+ 🧘🏻
+ 🧘🏼
+ 🧘🏽
+ 🧘🏾
+ 🧘🏿
+ 🧘♂️
+ 🧘🏻♂️
+ 🧘🏼♂️
+ 🧘🏽♂️
+ 🧘🏾♂️
+ 🧘🏿♂️
+ 🏄♀️
+ 🏄🏻♀️
+ 🏄🏼♀️
+ 🏄🏽♀️
+ 🏄🏾♀️
+ 🏄🏿♀️
+ 🏄
+ 🏄🏻
+ 🏄🏼
+ 🏄🏽
+ 🏄🏾
+ 🏄🏿
+ 🏄♂️
+ 🏄🏻♂️
+ 🏄🏼♂️
+ 🏄🏽♂️
+ 🏄🏾♂️
+ 🏄🏿♂️
+ 🏊♀️
+ 🏊🏻♀️
+ 🏊🏼♀️
+ 🏊🏽♀️
+ 🏊🏾♀️
+ 🏊🏿♀️
+ 🏊
+ 🏊🏻
+ 🏊🏼
+ 🏊🏽
+ 🏊🏾
+ 🏊🏿
+ 🏊♂️
+ 🏊🏻♂️
+ 🏊🏼♂️
+ 🏊🏽♂️
+ 🏊🏾♂️
+ 🏊🏿♂️
+ 🤽♀️
+ 🤽🏻♀️
+ 🤽🏼♀️
+ 🤽🏽♀️
+ 🤽🏾♀️
+ 🤽🏿♀️
+ 🤽
+ 🤽🏻
+ 🤽🏼
+ 🤽🏽
+ 🤽🏾
+ 🤽🏿
+ 🤽♂️
+ 🤽🏻♂️
+ 🤽🏼♂️
+ 🤽🏽♂️
+ 🤽🏾♂️
+ 🤽🏿♂️
+ 🚣♀️
+ 🚣🏻♀️
+ 🚣🏼♀️
+ 🚣🏽♀️
+ 🚣🏾♀️
+ 🚣🏿♀️
+ 🚣
+ 🚣🏻
+ 🚣🏼
+ 🚣🏽
+ 🚣🏾
+ 🚣🏿
+ 🚣♂️
+ 🚣🏻♂️
+ 🚣🏼♂️
+ 🚣🏽♂️
+ 🚣🏾♂️
+ 🚣🏿♂️
+ 🧗♀️
+ 🧗🏻♀️
+ 🧗🏼♀️
+ 🧗🏽♀️
+ 🧗🏾♀️
+ 🧗🏿♀️
+ 🧗
+ 🧗🏻
+ 🧗🏼
+ 🧗🏽
+ 🧗🏾
+ 🧗🏿
+ 🧗♂️
+ 🧗🏻♂️
+ 🧗🏼♂️
+ 🧗🏽♂️
+ 🧗🏾♂️
+ 🧗🏿♂️
+ 🚵♀️
+ 🚵🏻♀️
+ 🚵🏼♀️
+ 🚵🏽♀️
+ 🚵🏾♀️
+ 🚵🏿♀️
+ 🚵
+ 🚵🏻
+ 🚵🏼
+ 🚵🏽
+ 🚵🏾
+ 🚵🏿
+ 🚵♂️
+ 🚵🏻♂️
+ 🚵🏼♂️
+ 🚵🏽♂️
+ 🚵🏾♂️
+ 🚵🏿♂️
+ 🚴♀️
+ 🚴🏻♀️
+ 🚴🏼♀️
+ 🚴🏽♀️
+ 🚴🏾♀️
+ 🚴🏿♀️
+ 🚴
+ 🚴🏻
+ 🚴🏼
+ 🚴🏽
+ 🚴🏾
+ 🚴🏿
+ 🚴♂️
+ 🚴🏻♂️
+ 🚴🏼♂️
+ 🚴🏽♂️
+ 🚴🏾♂️
+ 🚴🏿♂️
+ 🏆
+ 🥇
+ 🥈
+ 🥉
+ 🏅
+ 🎖
+ 🏵
+ 🎗
+ 🎫
+ 🎟
+ 🎪
+ 🤹♀️
+ 🤹🏻♀️
+ 🤹🏼♀️
+ 🤹🏽♀️
+ 🤹🏾♀️
+ 🤹🏿♀️
+ 🤹
+ 🤹🏻
+ 🤹🏼
+ 🤹🏽
+ 🤹🏾
+ 🤹🏿
+ 🤹♂️
+ 🤹🏻♂️
+ 🤹🏼♂️
+ 🤹🏽♂️
+ 🤹🏾♂️
+ 🤹🏿♂️
+ 🎭
+ 🩰
+ 🎨
+ 🎬
+ 🎤
+ 🎧
+ 🎼
+ 🎹
+ 🥁
+ 🎷
+ 🎺
+ 🎸
+ 🪕
+ 🎻
+ 🎲
+ ♟
+ 🎯
+ 🎳
+ 🎮
+ 🎰
+ 🧩
+
+
+
+
+ Title
+ Travel & Places
+ Emojis
+
+ 🚗
+ 🚕
+ 🚙
+ 🚌
+ 🚎
+ 🏎
+ 🚓
+ 🚑
+ 🚒
+ 🚐
+ 🚚
+ 🚛
+ 🚜
+ 🦯
+ 🦽
+ 🦼
+ 🛴
+ 🚲
+ 🛵
+ 🏍
+ 🛺
+ 🚨
+ 🚔
+ 🚍
+ 🚘
+ 🚖
+ 🚡
+ 🚠
+ 🚟
+ 🚃
+ 🚋
+ 🚞
+ 🚝
+ 🚄
+ 🚅
+ 🚈
+ 🚂
+ 🚆
+ 🚇
+ 🚊
+ 🚉
+ ✈️
+ 🛫
+ 🛬
+ 🛩
+ 💺
+ 🛰
+ 🚀
+ 🛸
+ 🚁
+ 🛶
+ ⛵️
+ 🚤
+ 🛥
+ 🛳
+ ⛴
+ 🚢
+ ⚓️
+ ⛽️
+ 🚧
+ 🚦
+ 🚥
+ 🚏
+ 🗺
+ 🗿
+ 🗽
+ 🗼
+ 🏰
+ 🏯
+ 🏟
+ 🎡
+ 🎢
+ 🎠
+ ⛲️
+ ⛱
+ 🏖
+ 🏝
+ 🏜
+ 🌋
+ ⛰
+ 🏔
+ 🗻
+ 🏕
+ ⛺️
+ 🏠
+ 🏡
+ 🏘
+ 🏚
+ 🏗
+ 🏭
+ 🏢
+ 🏬
+ 🏣
+ 🏤
+ 🏥
+ 🏦
+ 🏨
+ 🏪
+ 🏫
+ 🏩
+ 💒
+ 🏛
+ ⛪️
+ 🕌
+ 🕍
+ 🛕
+ 🕋
+ ⛩
+ 🛤
+ 🛣
+ 🗾
+ 🎑
+ 🏞
+ 🌅
+ 🌄
+ 🌠
+ 🎇
+ 🎆
+ 🌇
+ 🌆
+ 🏙
+ 🌃
+ 🌌
+ 🌉
+ 🌁
+
+
+
+
+ Title
+ Objects
+ Emojis
+
+ ⌚️
+ 📱
+ 📲
+ 💻
+ ⌨️
+ 🖥
+ 🖨
+ 🖱
+ 🖲
+ 🕹
+ 🗜
+ 💽
+ 💾
+ 💿
+ 📀
+ 📼
+ 📷
+ 📸
+ 📹
+ 🎥
+ 📽
+ 🎞
+ 📞
+ ☎️
+ 📟
+ 📠
+ 📺
+ 📻
+ 🎙
+ 🎚
+ 🎛
+ 🧭
+ ⏱
+ ⏲
+ ⏰
+ 🕰
+ ⌛️
+ ⏳
+ 📡
+ 🔋
+ 🔌
+ 💡
+ 🔦
+ 🕯
+ 🪔
+ 🧯
+ 🛢
+ 💸
+ 💵
+ 💴
+ 💶
+ 💷
+ 💰
+ 💳
+ 💎
+ ⚖️
+ 🧰
+ 🔧
+ 🔨
+ ⚒
+ 🛠
+ ⛏
+ 🔩
+ ⚙️
+ 🧱
+ ⛓
+ 🧲
+ 🔫
+ 💣
+ 🧨
+ 🪓
+ 🔪
+ 🗡
+ ⚔️
+ 🛡
+ 🚬
+ ⚰️
+ ⚱️
+ 🏺
+ 🔮
+ 📿
+ 🧿
+ 💈
+ ⚗️
+ 🔭
+ 🔬
+ 🕳
+ 🩹
+ 🩺
+ 💊
+ 💉
+ 🩸
+ 🧬
+ 🦠
+ 🧫
+ 🧪
+ 🌡
+ 🧹
+ 🧺
+ 🧻
+ 🚽
+ 🚰
+ 🚿
+ 🛁
+ 🛀
+ 🛀🏻
+ 🛀🏼
+ 🛀🏽
+ 🛀🏾
+ 🛀🏿
+ 🧼
+ 🪒
+ 🧽
+ 🧴
+ 🛎
+ 🔑
+ 🗝
+ 🚪
+ 🪑
+ 🛋
+ 🛏
+ 🛌
+ 🧸
+ 🖼
+ 🛍
+ 🛒
+ 🎁
+ 🎈
+ 🎏
+ 🎀
+ 🎊
+ 🎉
+ 🎎
+ 🏮
+ 🎐
+ 🧧
+ ✉️
+ 📩
+ 📨
+ 📧
+ 💌
+ 📥
+ 📤
+ 📦
+ 🏷
+ 📪
+ 📫
+ 📬
+ 📭
+ 📮
+ 📯
+ 📜
+ 📃
+ 📄
+ 📑
+ 🧾
+ 📊
+ 📈
+ 📉
+ 🗒
+ 🗓
+ 📆
+ 📅
+ 🗑
+ 📇
+ 🗃
+ 🗳
+ 🗄
+ 📋
+ 📁
+ 📂
+ 🗂
+ 🗞
+ 📰
+ 📓
+ 📔
+ 📒
+ 📕
+ 📗
+ 📘
+ 📙
+ 📚
+ 📖
+ 🔖
+ 🧷
+ 🔗
+ 📎
+ 🖇
+ 📐
+ 📏
+ 🧮
+ 📌
+ 📍
+ ✂️
+ 🖊
+ 🖋
+ ✒️
+ 🖌
+ 🖍
+ 📝
+ ✏️
+ 🔍
+ 🔎
+ 🔏
+ 🔐
+ 🔒
+ 🔓
+
+
+
+
+ Title
+ Symbols
+ Emojis
+
+ ❤️
+ 🧡
+ 💛
+ 💚
+ 💙
+ 💜
+ 🖤
+ 🤍
+ 🤎
+ 💔
+ ❣️
+ 💕
+ 💞
+ 💓
+ 💗
+ 💖
+ 💘
+ 💝
+ 💟
+ ☮️
+ ✝️
+ ☪️
+ 🕉
+ ☸️
+ ✡️
+ 🔯
+ 🕎
+ ☯️
+ ☦️
+ 🛐
+ ⛎
+ ♈️
+ ♉️
+ ♊️
+ ♋️
+ ♌️
+ ♍️
+ ♎️
+ ♏️
+ ♐️
+ ♑️
+ ♒️
+ ♓️
+ 🆔
+ ⚛️
+ 🉑
+ ☢️
+ ☣️
+ 📴
+ 📳
+ 🈶
+ 🈚️
+ 🈸
+ 🈺
+ 🈷️
+ ✴️
+ 🆚
+ 💮
+ 🉐
+ ㊙️
+ ㊗️
+ 🈴
+ 🈵
+ 🈹
+ 🈲
+ 🅰️
+ 🅱️
+ 🆎
+ 🆑
+ 🅾️
+ 🆘
+ ❌
+ ⭕️
+ 🛑
+ ⛔️
+ 📛
+ 🚫
+ 💯
+ 💢
+ ♨️
+ 🚷
+ 🚯
+ 🚳
+ 🚱
+ 🔞
+ 📵
+ 🚭
+ ❗️
+ ❕
+ ❓
+ ❔
+ ‼️
+ ⁉️
+ 🔅
+ 🔆
+ 〽️
+ ⚠️
+ 🚸
+ 🔱
+ ⚜️
+ 🔰
+ ♻️
+ ✅
+ 🈯️
+ 💹
+ ❇️
+ ✳️
+ ❎
+ 🌐
+ 💠
+ Ⓜ️
+ 🌀
+ 💤
+ 🏧
+ 🚾
+ ♿️
+ 🅿️
+ 🈳
+ 🈂️
+ 🛂
+ 🛃
+ 🛄
+ 🛅
+ 🚹
+ 🚺
+ 🚼
+ 🚻
+ 🚮
+ 🎦
+ 📶
+ 🈁
+ 🔣
+ ℹ️
+ 🔤
+ 🔡
+ 🔠
+ 🆖
+ 🆗
+ 🆙
+ 🆒
+ 🆕
+ 🆓
+ 0️⃣
+ 1️⃣
+ 2️⃣
+ 3️⃣
+ 4️⃣
+ 5️⃣
+ 6️⃣
+ 7️⃣
+ 8️⃣
+ 9️⃣
+ 🔟
+ 🔢
+ #️⃣
+ *️⃣
+ ⏏️
+ ▶️
+ ⏸
+ ⏯
+ ⏹
+ ⏺
+ ⏭
+ ⏮
+ ⏩
+ ⏪
+ ⏫
+ ⏬
+ ◀️
+ 🔼
+ 🔽
+ ➡️
+ ⬅️
+ ⬆️
+ ⬇️
+ ↗️
+ ↘️
+ ↙️
+ ↖️
+ ↕️
+ ↔️
+ ↪️
+ ↩️
+ ⤴️
+ ⤵️
+ 🔀
+ 🔁
+ 🔂
+ 🔄
+ 🔃
+ 🎵
+ 🎶
+ ➕
+ ➖
+ ➗
+ ✖️
+ ♾
+ 💲
+ 💱
+ ™️
+ ©️
+ ®️
+ 👁🗨
+ 🔚
+ 🔙
+ 🔛
+ 🔝
+ 🔜
+ 〰️
+ ➰
+ ➿
+ ✔️
+ ☑️
+ 🔘
+ 🔴
+ 🟠
+ 🟡
+ 🟢
+ 🔵
+ 🟣
+ ⚫️
+ ⚪️
+ 🟤
+ 🔺
+ 🔻
+ 🔸
+ 🔹
+ 🔶
+ 🔷
+ 🔳
+ 🔲
+ ▪️
+ ▫️
+ ◾️
+ ◽️
+ ◼️
+ ◻️
+ 🟥
+ 🟧
+ 🟨
+ 🟩
+ 🟦
+ 🟪
+ ⬛️
+ ⬜️
+ 🟫
+ 🔈
+ 🔇
+ 🔉
+ 🔊
+ 🔔
+ 🔕
+ 📣
+ 📢
+ 💬
+ 💭
+ 🗯
+ ♠️
+ ♣️
+ ♥️
+ ♦️
+ 🃏
+ 🎴
+ 🀄️
+ 🕐
+ 🕑
+ 🕒
+ 🕓
+ 🕔
+ 🕕
+ 🕖
+ 🕗
+ 🕘
+ 🕙
+ 🕚
+ 🕛
+ 🕜
+ 🕝
+ 🕞
+ 🕟
+ 🕠
+ 🕡
+ 🕢
+ 🕣
+ 🕤
+ 🕥
+ 🕦
+ 🕧
+
+
+
+
+ Title
+ Flags
+ Emojis
+
+ 🏳️
+ 🏴
+ 🏴☠️
+ 🏁
+ 🚩
+ 🏳️🌈
+ 🇺🇳
+ 🇦🇫
+ 🇦🇽
+ 🇦🇱
+ 🇩🇿
+ 🇦🇸
+ 🇦🇩
+ 🇦🇴
+ 🇦🇮
+ 🇦🇶
+ 🇦🇬
+ 🇦🇷
+ 🇦🇲
+ 🇦🇼
+ 🇦🇺
+ 🇦🇹
+ 🇦🇿
+ 🇧🇸
+ 🇧🇭
+ 🇧🇩
+ 🇧🇧
+ 🇧🇾
+ 🇧🇪
+ 🇧🇿
+ 🇧🇯
+ 🇧🇲
+ 🇧🇹
+ 🇧🇴
+ 🇧🇦
+ 🇧🇼
+ 🇧🇷
+ 🇮🇴
+ 🇻🇬
+ 🇧🇳
+ 🇧🇬
+ 🇧🇫
+ 🇧🇮
+ 🇰🇭
+ 🇨🇲
+ 🇨🇦
+ 🇮🇨
+ 🇨🇻
+ 🇧🇶
+ 🇰🇾
+ 🇨🇫
+ 🇹🇩
+ 🇨🇱
+ 🇨🇳
+ 🇨🇽
+ 🇨🇨
+ 🇨🇴
+ 🇰🇲
+ 🇨🇬
+ 🇨🇩
+ 🇨🇰
+ 🇨🇷
+ 🇨🇮
+ 🇭🇷
+ 🇨🇺
+ 🇨🇼
+ 🇨🇾
+ 🇨🇿
+ 🇩🇰
+ 🇩🇯
+ 🇩🇲
+ 🇩🇴
+ 🇪🇨
+ 🇪🇬
+ 🇸🇻
+ 🇬🇶
+ 🇪🇷
+ 🇪🇪
+ 🇸🇿
+ 🇪🇹
+ 🇪🇺
+ 🇫🇰
+ 🇫🇴
+ 🇫🇯
+ 🇫🇮
+ 🇫🇷
+ 🇬🇫
+ 🇵🇫
+ 🇹🇫
+ 🇬🇦
+ 🇬🇲
+ 🇬🇪
+ 🇩🇪
+ 🇬🇭
+ 🇬🇮
+ 🇬🇷
+ 🇬🇱
+ 🇬🇩
+ 🇬🇵
+ 🇬🇺
+ 🇬🇹
+ 🇬🇬
+ 🇬🇳
+ 🇬🇼
+ 🇬🇾
+ 🇭🇹
+ 🇭🇳
+ 🇭🇰
+ 🇭🇺
+ 🇮🇸
+ 🇮🇳
+ 🇮🇩
+ 🇮🇷
+ 🇮🇶
+ 🇮🇪
+ 🇮🇲
+ 🇮🇱
+ 🇮🇹
+ 🇯🇲
+ 🇯🇵
+ 🎌
+ 🇯🇪
+ 🇯🇴
+ 🇰🇿
+ 🇰🇪
+ 🇰🇮
+ 🇽🇰
+ 🇰🇼
+ 🇰🇬
+ 🇱🇦
+ 🇱🇻
+ 🇱🇧
+ 🇱🇸
+ 🇱🇷
+ 🇱🇾
+ 🇱🇮
+ 🇱🇹
+ 🇱🇺
+ 🇲🇴
+ 🇲🇬
+ 🇲🇼
+ 🇲🇾
+ 🇲🇻
+ 🇲🇱
+ 🇲🇹
+ 🇲🇭
+ 🇲🇶
+ 🇲🇷
+ 🇲🇺
+ 🇾🇹
+ 🇲🇽
+ 🇫🇲
+ 🇲🇩
+ 🇲🇨
+ 🇲🇳
+ 🇲🇪
+ 🇲🇸
+ 🇲🇦
+ 🇲🇿
+ 🇲🇲
+ 🇳🇦
+ 🇳🇷
+ 🇳🇵
+ 🇳🇱
+ 🇳🇨
+ 🇳🇿
+ 🇳🇮
+ 🇳🇪
+ 🇳🇬
+ 🇳🇺
+ 🇳🇫
+ 🇰🇵
+ 🇲🇰
+ 🇲🇵
+ 🇳🇴
+ 🇴🇲
+ 🇵🇰
+ 🇵🇼
+ 🇵🇸
+ 🇵🇦
+ 🇵🇬
+ 🇵🇾
+ 🇵🇪
+ 🇵🇭
+ 🇵🇳
+ 🇵🇱
+ 🇵🇹
+ 🇵🇷
+ 🇶🇦
+ 🇷🇪
+ 🇷🇴
+ 🇷🇺
+ 🇷🇼
+ 🇼🇸
+ 🇸🇲
+ 🇸🇹
+ 🇸🇦
+ 🇸🇳
+ 🇷🇸
+ 🇸🇨
+ 🇸🇱
+ 🇸🇬
+ 🇸🇽
+ 🇸🇰
+ 🇸🇮
+ 🇬🇸
+ 🇸🇧
+ 🇸🇴
+ 🇿🇦
+ 🇰🇷
+ 🇸🇸
+ 🇪🇸
+ 🇱🇰
+ 🇧🇱
+ 🇸🇭
+ 🇰🇳
+ 🇱🇨
+ 🇵🇲
+ 🇻🇨
+ 🇸🇩
+ 🇸🇷
+ 🇸🇪
+ 🇨🇭
+ 🇸🇾
+ 🇹🇼
+ 🇹🇯
+ 🇹🇿
+ 🇹🇭
+ 🇹🇱
+ 🇹🇬
+ 🇹🇰
+ 🇹🇴
+ 🇹🇹
+ 🇹🇳
+ 🇹🇷
+ 🇹🇲
+ 🇹🇨
+ 🇹🇻
+ 🇺🇬
+ 🇺🇦
+ 🇦🇪
+ 🇬🇧
+ 🏴
+ 🏴
+ 🏴
+ 🇺🇸
+ 🇺🇾
+ 🇻🇮
+ 🇺🇿
+ 🇻🇺
+ 🇻🇦
+ 🇻🇪
+ 🇻🇳
+ 🇼🇫
+ 🇪🇭
+ 🇾🇪
+ 🇿🇲
+ 🇿🇼
+
+
+
+
+
diff --git a/Avatar/App/Avatar/Core/SceneDelegate.h b/Avatar/App/Avatar/Core/SceneDelegate.h
new file mode 100644
index 0000000..5cf0c81
--- /dev/null
+++ b/Avatar/App/Avatar/Core/SceneDelegate.h
@@ -0,0 +1,10 @@
+#import
+#import "HomeNavigationViewController.h"
+#import "HomeViewController.h"
+
+@interface SceneDelegate : UIResponder
+
+@property (strong, nonatomic) UIWindow * window;
+
+@end
+
diff --git a/Avatar/App/Avatar/Core/SceneDelegate.m b/Avatar/App/Avatar/Core/SceneDelegate.m
new file mode 100644
index 0000000..3432373
--- /dev/null
+++ b/Avatar/App/Avatar/Core/SceneDelegate.m
@@ -0,0 +1,73 @@
+#import "SceneDelegate.h"
+#import "AvatarManager.h"
+
+@implementation SceneDelegate
+
+
+- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
+
+ self.window = [[UIWindow alloc] initWithWindowScene:(UIWindowScene *)scene];
+ HomeViewController *vc = [[HomeViewController alloc] init];
+ HomeNavigationViewController *nvc = [[HomeNavigationViewController alloc] initWithRootViewController:vc];
+ self.window.rootViewController = nvc;
+ [self.window makeKeyAndVisible];
+
+
+ if (![[NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/AvatarKit.framework"] load]) {
+ NSLog(@"Couldn't load avatar framework");
+ }
+ [AvatarManager prepareMemojiRuntime];
+
+
+}
+
+
+- (void)sceneDidDisconnect:(UIScene *)scene {
+ // Called as the scene is being released by the system.
+ // This occurs shortly after the scene enters the background, or when its session is discarded.
+ // Release any resources associated with this scene that can be re-created the next time the scene connects.
+ // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
+// dispatch_async(dispatch_get_main_queue(), ^{
+// [self checkLicenceStatus];
+// });
+}
+
+
+- (void)sceneDidBecomeActive:(UIScene *)scene {
+ // Called when the scene has moved from an inactive state to an active state.
+ // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
+// dispatch_async(dispatch_get_main_queue(), ^{
+// [self checkLicenceStatus];
+// });
+}
+
+
+- (void)sceneWillResignActive:(UIScene *)scene {
+ // Called when the scene will move from an active state to an inactive state.
+ // This may occur due to temporary interruptions (ex. an incoming phone call).
+// dispatch_async(dispatch_get_main_queue(), ^{
+// [self checkLicenceStatus];
+// });
+}
+
+
+- (void)sceneWillEnterForeground:(UIScene *)scene {
+ // Called as the scene transitions from the background to the foreground.
+ // Use this method to undo the changes made on entering the background.
+// dispatch_async(dispatch_get_main_queue(), ^{
+// [self checkLicenceStatus];
+// });
+}
+
+
+- (void)sceneDidEnterBackground:(UIScene *)scene {
+ // Called as the scene transitions from the foreground to the background.
+ // Use this method to save data, release shared resources, and store enough scene-specific state information
+ // to restore the scene back to its current state.
+// dispatch_async(dispatch_get_main_queue(), ^{
+// [self checkLicenceStatus];
+// });
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/Core/Stickers.plist b/Avatar/App/Avatar/Core/Stickers.plist
new file mode 100644
index 0000000..8f21b26
--- /dev/null
+++ b/Avatar/App/Avatar/Core/Stickers.plist
@@ -0,0 +1,528 @@
+
+
+
+
+
+
+
+
+ Title
+ Smileys
+ Stickers
+
+ smileys_000
+ smileys_001
+ smileys_002
+ smileys_003
+ smileys_004
+ smileys_005
+ smileys_006
+ smileys_007
+ smileys_008
+ smileys_009
+ smileys_010
+ smileys_011
+ smileys_012
+ smileys_013
+ smileys_014
+ smileys_015
+ smileys_016
+ smileys_017
+ smileys_018
+ smileys_019
+ smileys_020
+ smileys_021
+ smileys_022
+ smileys_023
+ smileys_024
+ smileys_025
+ smileys_026
+ smileys_027
+ smileys_028
+ smileys_029
+ smileys_030
+ smileys_031
+ smileys_032
+ smileys_033
+ smileys_034
+ smileys_035
+ smileys_036
+ smileys_037
+ smileys_038
+ smileys_039
+ smileys_040
+ smileys_041
+ smileys_042
+ smileys_043
+ smileys_044
+ smileys_045
+ smileys_046
+ smileys_047
+ smileys_048
+ smileys_049
+ smileys_050
+ smileys_051
+ smileys_052
+ smileys_053
+ smileys_054
+ smileys_055
+ smileys_056
+ smileys_057
+ smileys_058
+ smileys_059
+ smileys_060
+ smileys_061
+ smileys_062
+ smileys_063
+ smileys_064
+ smileys_065
+ smileys_066
+ smileys_067
+ smileys_068
+ smileys_069
+ smileys_070
+ smileys_071
+ smileys_072
+ smileys_073
+ smileys_074
+ smileys_075
+ smileys_076
+ smileys_077
+ smileys_078
+ smileys_079
+ smileys_080
+ smileys_081
+ smileys_082
+
+
+
+
+
+ Title
+ Icons
+ Stickers
+
+ icons_000
+ icons_001
+ icons_002
+ icons_003
+ icons_004
+ icons_005
+ icons_006
+ icons_007
+ icons_008
+ icons_009
+ icons_010
+ icons_011
+ icons_012
+ icons_013
+ icons_014
+ icons_015
+ icons_016
+ icons_017
+ icons_018
+ icons_019
+ icons_020
+ icons_021
+ icons_022
+ icons_023
+ icons_024
+ icons_025
+ icons_026
+ icons_027
+ icons_028
+ icons_029
+ icons_030
+ icons_031
+ icons_032
+ icons_033
+ icons_034
+ icons_035
+ icons_036
+ icons_037
+ icons_038
+ icons_039
+ icons_040
+ icons_041
+ icons_042
+ icons_043
+ icons_044
+ icons_045
+ icons_046
+ icons_047
+ icons_048
+ icons_049
+ icons_050
+ icons_051
+ icons_052
+ icons_053
+ icons_054
+ icons_055
+ icons_056
+ icons_057
+ icons_058
+ icons_059
+ icons_060
+ icons_061
+ icons_062
+ icons_063
+ icons_064
+ icons_065
+ icons_066
+ icons_067
+ icons_068
+ icons_069
+ icons_070
+ icons_071
+ icons_072
+ icons_073
+ icons_074
+ icons_075
+ icons_076
+ icons_077
+ icons_078
+ icons_079
+ icons_080
+ icons_081
+ icons_082
+ icons_083
+ icons_084
+ icons_085
+ icons_086
+ icons_087
+
+
+
+
+
+ Title
+ Love
+ Stickers
+
+ love_000
+ love_001
+ love_002
+ love_003
+ love_004
+ love_005
+ love_006
+ love_007
+ love_008
+ love_009
+ love_010
+ love_011
+ love_012
+ love_013
+ love_014
+ love_015
+ love_016
+ love_017
+ love_018
+ love_019
+ love_020
+ love_021
+ love_022
+ love_023
+ love_024
+ love_025
+ love_026
+ love_027
+ love_028
+ love_029
+ love_030
+ love_031
+ love_032
+ love_033
+ love_034
+ love_035
+ love_036
+ love_037
+ love_038
+ love_039
+ love_040
+ love_041
+ love_042
+ love_043
+ love_044
+ love_045
+ love_046
+ love_047
+ love_048
+ love_049
+ love_050
+ love_051
+ love_052
+ love_053
+ love_054
+ love_055
+ love_056
+ love_057
+ love_058
+ love_059
+ love_060
+ love_061
+ love_062
+ love_063
+ love_064
+ love_065
+ love_066
+ love_067
+ love_068
+ love_069
+ love_070
+ love_071
+ love_072
+ love_073
+ love_074
+ love_075
+ love_076
+ love_077
+ love_078
+ love_079
+ love_080
+ love_081
+ love_082
+ love_083
+ love_084
+ love_085
+ love_086
+ love_087
+ love_088
+ love_089
+ love_090
+ love_091
+ love_092
+ love_093
+ love_094
+
+
+
+
+
+ Title
+ Texts
+ Stickers
+
+ texts_000
+ texts_001
+ texts_002
+ texts_003
+ texts_004
+ texts_005
+ texts_006
+ texts_007
+ texts_008
+ texts_009
+ texts_010
+ texts_011
+ texts_012
+ texts_013
+ texts_014
+ texts_015
+ texts_016
+ texts_017
+ texts_018
+ texts_019
+ texts_020
+ texts_021
+ texts_022
+ texts_023
+ texts_024
+ texts_025
+ texts_026
+ texts_027
+ texts_028
+ texts_029
+ texts_030
+ texts_031
+ texts_032
+ texts_033
+ texts_034
+ texts_035
+ texts_036
+ texts_037
+ texts_038
+ texts_039
+ texts_040
+ texts_041
+ texts_042
+ texts_043
+ texts_044
+ texts_045
+ texts_046
+ texts_047
+ texts_048
+ texts_049
+ texts_050
+ texts_051
+ texts_052
+ texts_053
+ texts_054
+ texts_055
+ texts_056
+ texts_057
+ texts_058
+ texts_059
+ texts_060
+ texts_061
+ texts_062
+ texts_063
+ texts_064
+ texts_065
+ texts_066
+ texts_067
+ texts_068
+
+
+
+
+
+ Title
+ Stickers
+ Stickers
+
+ sticker_000
+ sticker_001
+ sticker_002
+ sticker_003
+ sticker_004
+ sticker_005
+ sticker_006
+ sticker_007
+ sticker_008
+ sticker_009
+ sticker_010
+ sticker_011
+ sticker_012
+ sticker_013
+ sticker_014
+ sticker_015
+ sticker_016
+ sticker_017
+ sticker_018
+ sticker_019
+ sticker_020
+ sticker_021
+ sticker_022
+ sticker_023
+ sticker_024
+ sticker_025
+ sticker_026
+ sticker_027
+ sticker_028
+ sticker_029
+ sticker_030
+ sticker_031
+ sticker_032
+ sticker_033
+ sticker_034
+ sticker_035
+ sticker_036
+ sticker_037
+ sticker_038
+ sticker_039
+ sticker_040
+ sticker_041
+ sticker_042
+ sticker_043
+ sticker_044
+ sticker_045
+ sticker_046
+ sticker_047
+ sticker_048
+ sticker_049
+ sticker_050
+ sticker_051
+ sticker_052
+ sticker_053
+ sticker_054
+ sticker_055
+ sticker_056
+ sticker_057
+ sticker_058
+ sticker_059
+ sticker_060
+ sticker_061
+ sticker_062
+ sticker_063
+ sticker_064
+ sticker_065
+ sticker_066
+ sticker_067
+ sticker_068
+
+
+
+
+
+ Title
+ Passions
+ Stickers
+
+ passions_000
+ passions_001
+ passions_002
+ passions_003
+ passions_004
+ passions_005
+ passions_006
+ passions_007
+ passions_008
+ passions_009
+ passions_010
+ passions_011
+ passions_012
+ passions_013
+ passions_014
+ passions_015
+ passions_016
+ passions_017
+ passions_018
+ passions_019
+ passions_020
+ passions_021
+ passions_022
+ passions_023
+ passions_024
+ passions_025
+ passions_026
+ passions_027
+ passions_028
+ passions_029
+ passions_030
+ passions_031
+ passions_032
+ passions_033
+ passions_034
+ passions_035
+ passions_036
+ passions_037
+ passions_038
+ passions_039
+ passions_040
+ passions_041
+ passions_042
+ passions_043
+ passions_044
+ passions_045
+ passions_046
+ passions_047
+ passions_048
+ passions_049
+ passions_050
+ passions_051
+ passions_052
+ passions_053
+ passions_054
+ passions_055
+ passions_056
+ passions_057
+ passions_058
+ passions_059
+ passions_060
+ passions_061
+
+
+
+
+
diff --git a/Avatar/App/Avatar/CustomClasses/GridView.h b/Avatar/App/Avatar/CustomClasses/GridView.h
new file mode 100644
index 0000000..92d55d5
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/GridView.h
@@ -0,0 +1,13 @@
+#import
+#import
+
+@interface GridView : UIView
+-(instancetype)initWithFrame:(CGRect)frame bg:(UIColor *)background icon:(UIImage *)icon iconSize:(CGFloat)size iconPadding:(CGFloat)iconPadding titleTop:(CGFloat)titleTop titleFont:(UIFont *)titleFont;
+@property (nonatomic, retain) UIImageView *icon;
+@property (nonatomic, retain) UILabel *title;
+@property (nonatomic, retain) UIImage *iconImage;
+@property (nonatomic) CGFloat iconSize;
+@property (nonatomic) CGFloat iconPadding;
+@property (nonatomic) CGFloat titleTopPadding;
+@property (nonatomic, retain) UIFont *titleFont;
+@end
diff --git a/Avatar/App/Avatar/CustomClasses/GridView.m b/Avatar/App/Avatar/CustomClasses/GridView.m
new file mode 100644
index 0000000..73d3dfe
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/GridView.m
@@ -0,0 +1,56 @@
+#import "GridView.h"
+#import "ConstraintExtension.h"
+
+@implementation GridView
+
+-(instancetype)initWithFrame:(CGRect)frame bg:(UIColor *)background icon:(UIImage *)icon iconSize:(CGFloat)size iconPadding:(CGFloat)iconPadding titleTop:(CGFloat)titleTop titleFont:(UIFont *)titleFont {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.clipsToBounds = YES;
+ self.backgroundColor = background;
+ self.layer.cornerRadius = 30;
+ self.layer.cornerCurve = kCACornerCurveContinuous;
+
+ self.iconPadding = iconPadding;
+ self.iconSize = size;
+ self.iconImage = icon;
+ self.titleTopPadding = titleTop;
+ self.titleFont = titleFont;
+
+ [self layoutViews];
+
+ }
+ return self;
+}
+
+
+-(void)layoutViews {
+
+ self.icon = [[UIImageView alloc] init];
+ self.icon.contentMode = UIViewContentModeScaleAspectFit;
+ self.icon.tintColor = UIColor.whiteColor;
+ self.icon.image = self.iconImage;
+ [self addSubview:self.icon];
+
+ [self.icon size:CGSizeMake(self.iconSize, self.iconSize)];
+ [self.icon top:self.topAnchor padding:self.iconPadding];
+ [self.icon x:self.centerXAnchor];
+
+
+ self.title = [[UILabel alloc] init];
+ self.title.textAlignment = NSTextAlignmentCenter;
+ self.title.numberOfLines = 3;
+ self.title.font = self.titleFont;
+ self.title.textColor = UIColor.whiteColor;
+ [self addSubview:self.title];
+
+ [self.title x:self.centerXAnchor];
+ [self.title top:self.icon.bottomAnchor padding:self.titleTopPadding];
+ [self.title leading:self.leadingAnchor padding:20];
+ [self.title trailing:self.trailingAnchor padding:-20];
+
+}
+
+@end
diff --git a/Avatar/App/Avatar/CustomClasses/HomeNavigationViewController.h b/Avatar/App/Avatar/CustomClasses/HomeNavigationViewController.h
new file mode 100644
index 0000000..c832a40
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/HomeNavigationViewController.h
@@ -0,0 +1,5 @@
+#import
+
+@interface HomeNavigationViewController : UINavigationController
+@end
+
diff --git a/Avatar/App/Avatar/CustomClasses/HomeNavigationViewController.m b/Avatar/App/Avatar/CustomClasses/HomeNavigationViewController.m
new file mode 100644
index 0000000..3995326
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/HomeNavigationViewController.m
@@ -0,0 +1,25 @@
+#import "HomeNavigationViewController.h"
+
+
+@implementation HomeNavigationViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+}
+
+
+- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated {
+ [super setNavigationBarHidden:hidden animated:animated];
+ self.interactivePopGestureRecognizer.delegate = self;
+}
+
+
+- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
+ if (self.viewControllers.count > 1) {
+ return YES;
+ }
+ return NO;
+}
+
+@end
diff --git a/Avatar/App/Avatar/CustomClasses/RecordingButton.h b/Avatar/App/Avatar/CustomClasses/RecordingButton.h
new file mode 100644
index 0000000..e7ffb27
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/RecordingButton.h
@@ -0,0 +1,8 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface RecordingButton : UIControl
+-(instancetype)initWithIcon:(NSString *)iconString accent:(UIColor *)accent action:(SEL)customAction;
+@property (nonatomic, retain) UIImageView *icon;
+@end
+
diff --git a/Avatar/App/Avatar/CustomClasses/RecordingButton.m b/Avatar/App/Avatar/CustomClasses/RecordingButton.m
new file mode 100644
index 0000000..275a2b1
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/RecordingButton.m
@@ -0,0 +1,59 @@
+#import "RecordingButton.h"
+
+@implementation RecordingButton
+
+-(instancetype)initWithIcon:(NSString *)iconString accent:(UIColor *)accent action:(SEL)customAction {
+
+ self = [super init];
+ if (self) {
+
+ self.backgroundColor = accent;
+ self.clipsToBounds = YES;
+
+ self.icon = [[UIImageView alloc] init];
+ self.icon.contentMode = UIViewContentModeScaleAspectFit;
+ self.icon.tintColor = UIColor.whiteColor;
+ self.icon.image = [UIImage systemImageNamed:iconString];
+ [self addSubview:self.icon];
+
+ [self.icon size:CGSizeMake(40, 40)];
+ [self.icon x:self.centerXAnchor y:self.centerYAnchor];
+
+ [self addTarget:self.superview action:customAction forControlEvents:UIControlEventTouchUpInside];
+
+ }
+
+ return self;
+}
+
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
+ [super touchesBegan:touches withEvent:event];
+ [self touchAnimateWithHighlighted:YES];
+}
+
+
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
+ [super touchesEnded:touches withEvent:event];
+ [self touchAnimateWithHighlighted:NO];
+}
+
+
+- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
+ [super touchesCancelled:touches withEvent:event];
+ [self touchAnimateWithHighlighted:NO];
+}
+
+
+-(void)touchAnimateWithHighlighted:(BOOL)isHighlighted {
+
+ [UIView animateWithDuration:0.3 animations:^{
+ self.alpha = isHighlighted ? 0.8 : 1.0;
+ CGAffineTransform transform = self.transform;
+ transform = isHighlighted ? CGAffineTransformScale(transform, 0.96, 0.96) : CGAffineTransformIdentity;
+ self.transform = transform;
+ }];
+
+}
+
+@end
diff --git a/Avatar/App/Avatar/CustomClasses/UtilitiesView.h b/Avatar/App/Avatar/CustomClasses/UtilitiesView.h
new file mode 100644
index 0000000..3efc57a
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/UtilitiesView.h
@@ -0,0 +1,12 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface UtilitiesView : UIView
+-(instancetype)initWithFrame:(CGRect)frame icon:(UIImage *)icon;
+@property (nonatomic, retain) UIView *iconView;
+@property (nonatomic, retain) UIImageView *icon;
+@property (nonatomic, retain) UILabel *title;
+@property (nonatomic, retain) UIImageView *arrow;
+@property (nonatomic, retain) UIImage *iconImage;
+@end
+
diff --git a/Avatar/App/Avatar/CustomClasses/UtilitiesView.m b/Avatar/App/Avatar/CustomClasses/UtilitiesView.m
new file mode 100644
index 0000000..6af8683
--- /dev/null
+++ b/Avatar/App/Avatar/CustomClasses/UtilitiesView.m
@@ -0,0 +1,67 @@
+#import "UtilitiesView.h"
+
+@implementation UtilitiesView
+
+-(instancetype)initWithFrame:(CGRect)frame icon:(UIImage *)icon {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.clipsToBounds = YES;
+ self.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.layer.cornerRadius = 20;
+ self.layer.cornerCurve = kCACornerCurveContinuous;
+
+ self.iconImage = icon;
+
+ [self layoutViews];
+
+ }
+ return self;
+}
+
+
+-(void)layoutViews {
+
+ self.iconView = [[UIView alloc] init];
+ self.iconView.layer.cornerRadius = 20;
+ [self addSubview:self.iconView];
+
+ [self.iconView size:CGSizeMake(40, 40)];
+ [self.iconView y:self.centerYAnchor];
+ [self.iconView leading:self.leadingAnchor padding:15];
+
+
+ self.icon = [[UIImageView alloc] init];
+ self.icon.contentMode = UIViewContentModeScaleAspectFit;
+ self.icon.tintColor = UIColor.whiteColor;
+ self.icon.image = self.iconImage;
+ [self addSubview:self.icon];
+
+ [self.icon size:CGSizeMake(30, 30)];
+ [self.icon x:self.iconView.centerXAnchor y:self.iconView.centerYAnchor];
+
+
+ self.title = [[UILabel alloc] init];
+ self.title.textAlignment = NSTextAlignmentLeft;
+ self.title.textColor = UIColor.labelColor;
+ self.title.font = [UIFont systemFontOfSize:18 weight:UIFontWeightSemibold];
+ [self addSubview:self.title];
+
+ [self.title y:self.centerYAnchor];
+ [self.title leading:self.icon.trailingAnchor padding:15];
+
+
+ self.arrow = [[UIImageView alloc] init];
+ self.arrow.contentMode = UIViewContentModeScaleAspectFit;
+ self.arrow.tintColor = UIColor.tertiaryLabelColor;
+ self.arrow.image = [UIImage systemImageNamed:@"chevron.compact.right"];
+ [self addSubview:self.arrow];
+
+ [self.arrow size:CGSizeMake(25, 25)];
+ [self.arrow y:self.centerYAnchor];
+ [self.arrow trailing:self.trailingAnchor padding:-5];
+
+}
+
+@end
diff --git a/Avatar/App/Avatar/Extensions/ConstraintExtension.h b/Avatar/App/Avatar/Extensions/ConstraintExtension.h
new file mode 100644
index 0000000..e90ec61
--- /dev/null
+++ b/Avatar/App/Avatar/Extensions/ConstraintExtension.h
@@ -0,0 +1,20 @@
+#import
+
+@interface UIView (extension)
+
+-(void)top:(nullable NSLayoutAnchor *)top leading:(nullable NSLayoutAnchor *)leading bottom:(nullable NSLayoutAnchor *)bottom trailing:(nullable NSLayoutAnchor *)trailing padding:(UIEdgeInsets)insets;
+-(void)top:(nullable NSLayoutAnchor *)top padding:(CGFloat)size;
+-(void)leading:(nullable NSLayoutAnchor *)leading padding:(CGFloat)size;
+-(void)trailing:(nullable NSLayoutAnchor *)trailing padding:(CGFloat)size;
+-(void)bottom:(nullable NSLayoutAnchor *)bottom padding:(CGFloat)size;
+-(void)size:(CGSize)size;
+-(void)width:(CGFloat)size;
+-(void)height:(CGFloat)size;
+-(void)x:(nullable NSLayoutAnchor *)centerX;
+-(void)y:(nullable NSLayoutAnchor *)centerY;
+-(void)x:(nullable NSLayoutAnchor *)centerX padding:(CGFloat)size;
+-(void)y:(nullable NSLayoutAnchor *)centerY padding:(CGFloat)size;
+-(void)x:(nullable NSLayoutAnchor *)centerX y:(nullable NSLayoutAnchor *)centerY;
+-(void)fill;
+
+@end
diff --git a/Avatar/App/Avatar/Extensions/ConstraintExtension.m b/Avatar/App/Avatar/Extensions/ConstraintExtension.m
new file mode 100644
index 0000000..bd0a3b9
--- /dev/null
+++ b/Avatar/App/Avatar/Extensions/ConstraintExtension.m
@@ -0,0 +1,132 @@
+#import "ConstraintExtension.h"
+
+@implementation UIView (extension)
+
+-(void)top:(nullable NSLayoutAnchor *)top leading:(nullable NSLayoutAnchor *)leading bottom:(nullable NSLayoutAnchor *)bottom trailing:(nullable NSLayoutAnchor *)trailing padding:(UIEdgeInsets)insets {
+
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+
+ if (top) {
+ [self.topAnchor constraintEqualToAnchor:top constant:insets.top].active = YES;
+ }
+
+ if (leading) {
+ [self.leadingAnchor constraintEqualToAnchor:leading constant:insets.left].active = YES;
+ }
+
+ if (trailing) {
+ [self.trailingAnchor constraintEqualToAnchor:trailing constant:insets.right].active = YES;
+ }
+
+ if (bottom) {
+ [self.bottomAnchor constraintEqualToAnchor:bottom constant:insets.bottom].active = YES;
+ }
+
+}
+
+
+-(void)top:(nullable NSLayoutAnchor *)top padding:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ if (top) {
+ [self.topAnchor constraintEqualToAnchor:top constant:size].active = YES;
+ }
+}
+
+
+-(void)leading:(nullable NSLayoutAnchor *)leading padding:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ if (leading) {
+ [self.leadingAnchor constraintEqualToAnchor:leading constant:size].active = YES;
+ }
+}
+
+
+-(void)trailing:(nullable NSLayoutAnchor *)trailing padding:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ if (trailing) {
+ [self.trailingAnchor constraintEqualToAnchor:trailing constant:size].active = YES;
+ }
+}
+
+
+-(void)bottom:(nullable NSLayoutAnchor *)bottom padding:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ if (bottom) {
+ [self.bottomAnchor constraintEqualToAnchor:bottom constant:size].active = YES;
+ }
+}
+
+
+-(void)size:(CGSize)size {
+
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+
+ if (size.width != 0) {
+ [self.widthAnchor constraintEqualToConstant:size.width].active = YES;
+ }
+
+ if (size.height != 0) {
+ [self.heightAnchor constraintEqualToConstant:size.height].active = YES;
+ }
+
+}
+
+
+-(void)width:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [self.widthAnchor constraintEqualToConstant:size].active = YES;
+}
+
+
+-(void)height:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [self.heightAnchor constraintEqualToConstant:size].active = YES;
+}
+
+
+-(void)x:(nullable NSLayoutAnchor *)centerX y:(nullable NSLayoutAnchor *)centerY {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self centerXAnchor] constraintEqualToAnchor:centerX].active = true;
+ [[self centerYAnchor] constraintEqualToAnchor:centerY].active = true;
+}
+
+
+-(void)x:(nullable NSLayoutAnchor *)centerX {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self centerXAnchor] constraintEqualToAnchor:centerX].active = true;
+}
+
+
+-(void)y:(nullable NSLayoutAnchor *)centerY {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self centerYAnchor] constraintEqualToAnchor:centerY].active = true;
+}
+
+
+-(void)x:(nullable NSLayoutAnchor *)centerX padding:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self centerXAnchor] constraintEqualToAnchor:centerX constant:size].active = true;
+}
+
+
+-(void)y:(nullable NSLayoutAnchor *)centerY padding:(CGFloat)size {
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [[self centerYAnchor] constraintEqualToAnchor:centerY constant:size].active = true;
+}
+
+
+-(void)fill {
+
+ self.translatesAutoresizingMaskIntoConstraints = NO;
+ [self.topAnchor constraintEqualToAnchor:self.superview.topAnchor].active = YES;
+ [self.leadingAnchor constraintEqualToAnchor:self.superview.leadingAnchor].active = YES;
+ [self.trailingAnchor constraintEqualToAnchor:self.superview.trailingAnchor].active = YES;
+ [self.bottomAnchor constraintEqualToAnchor:self.superview.bottomAnchor].active = YES;
+
+}
+
+@end
+
+
+
+
diff --git a/Avatar/App/Avatar/Home/HomeViewController.h b/Avatar/App/Avatar/Home/HomeViewController.h
new file mode 100644
index 0000000..4943816
--- /dev/null
+++ b/Avatar/App/Avatar/Home/HomeViewController.h
@@ -0,0 +1,36 @@
+#import
+#import "ConstraintExtension.h"
+#import "AnimojiPickerViewController.h"
+#import "AVTAvatarStore.h"
+#import "AvatarManager.h"
+#import "AVTAnimoji.h"
+#import "AVTAvatarLibraryViewController.h"
+#import "RecordingStudioViewController.h"
+#import "GridView.h"
+#import "UtilitiesView.h"
+#import "SettingManager.h"
+#import "TDAvatarIdentityPickerViewController.h"
+#import "LibraryViewController.h"
+#import "SettingsViewController.h"
+#import "AvimojiViewController.h"
+#import "Avatar-Swift.h"
+#import "DefaultMemojiViewController.h"
+
+@interface HomeViewController : UIViewController
+@property (nonatomic, retain) AVTAvatarLibraryViewController *memojiViewController;
+@property (nonatomic, retain) UIView *headerView;
+@property (nonatomic, retain) UIImageView *avatarImage;
+@property (nonatomic, retain) UILabel *welcomeTitle;
+@property (nonatomic, retain) UILabel *welcomeSubtitle;
+@property (nonatomic, retain) UIScrollView *scrollView;
+@property (nonatomic, retain) UIView *containerView;
+@property (nonatomic, retain) GridView *memojiView;
+@property (nonatomic, retain) GridView *animojiView;
+@property (nonatomic, retain) GridView *avimojiView;
+@property (nonatomic, retain) GridView *libraryView;
+@property (nonatomic, retain) UILabel *utilitiesLabel;
+@property (nonatomic, retain) UtilitiesView *settingView;
+@property (nonatomic, retain) UtilitiesView *tutorialView;
+@property (nonatomic, retain) UIView *footerView;
+@end
+
diff --git a/Avatar/App/Avatar/Home/HomeViewController.m b/Avatar/App/Avatar/Home/HomeViewController.m
new file mode 100644
index 0000000..09f3405
--- /dev/null
+++ b/Avatar/App/Avatar/Home/HomeViewController.m
@@ -0,0 +1,333 @@
+#import "HomeViewController.h"
+
+NSData *profileAvatar;
+
+@implementation HomeViewController
+
+
+-(void)viewWillAppear:(BOOL)animated {
+ [super viewWillAppear:animated];
+ [self.navigationController setNavigationBarHidden:YES animated:NO];
+}
+
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ [self layoutHeaderView];
+ [self layoutScrollView];
+ [self layoutGridViews];
+ [self initGestures];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didSelectMemojiAvatarNotification:) name:@"DidSelectMemojiAvatar" object:nil];
+
+ BOOL didShowDefaultMemojiOption = [[SettingManager sharedInstance] boolForKey:@"didShowDefaultMemojiOption" defaultValue:NO];
+ if (!didShowDefaultMemojiOption) {
+ [self presentDefaultMemojiVC];
+ }
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[UIView alloc] init];
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 60)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.safeAreaLayoutGuide.topAnchor padding:0];
+
+
+ profileAvatar = [[SettingManager sharedInstance] objectForKey:@"profileAvatar" defaultValue:nil];
+ self.avatarImage = [[UIImageView alloc] init];
+ self.avatarImage.layer.cornerRadius = 25;
+ self.avatarImage.clipsToBounds = YES;
+ if (profileAvatar != nil) {
+ self.avatarImage.image = [UIImage imageWithData:profileAvatar];
+ } else {
+ self.avatarImage.image = [UIImage imageNamed:@"default-avatar"];
+ }
+ self.avatarImage.userInteractionEnabled = YES;
+ [self.headerView addSubview:self.avatarImage];
+
+ [self.avatarImage size:CGSizeMake(50, 50)];
+ [self.avatarImage y:self.headerView.centerYAnchor];
+ [self.avatarImage trailing:self.headerView.trailingAnchor padding:-20];
+
+
+ self.welcomeTitle = [[UILabel alloc] init];
+ self.welcomeTitle.text = @"WELCOME TO";
+ self.welcomeTitle.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
+ self.welcomeTitle.textColor = UIColor.secondaryLabelColor;
+ self.welcomeTitle.textAlignment = NSTextAlignmentLeft;
+ [self.headerView addSubview:self.welcomeTitle];
+
+ [self.welcomeTitle top:self.avatarImage.topAnchor padding:0];
+ [self.welcomeTitle leading:self.headerView.leadingAnchor padding:20];
+ [self.welcomeTitle trailing:self.avatarImage.leadingAnchor padding:-20];
+
+
+ self.welcomeSubtitle = [[UILabel alloc] init];
+ self.welcomeSubtitle.text = @"Avatar Studio";
+ self.welcomeSubtitle.font = [UIFont systemFontOfSize:26 weight:UIFontWeightBold];
+ self.welcomeSubtitle.textColor = UIColor.labelColor;
+ self.welcomeSubtitle.textAlignment = NSTextAlignmentLeft;
+ [self.headerView addSubview:self.welcomeSubtitle];
+
+ [self.welcomeSubtitle bottom:self.avatarImage.bottomAnchor padding:0];
+ [self.welcomeSubtitle leading:self.headerView.leadingAnchor padding:20];
+ [self.welcomeSubtitle trailing:self.avatarImage.leadingAnchor padding:-20];
+
+}
+
+
+-(void)layoutScrollView {
+
+ self.scrollView = [[UIScrollView alloc] init];
+ self.scrollView.showsVerticalScrollIndicator = NO;
+ self.scrollView.showsHorizontalScrollIndicator = NO;
+ self.scrollView.backgroundColor = UIColor.clearColor;
+ [self.view addSubview:self.scrollView];
+
+ [self.scrollView top:self.headerView.bottomAnchor padding:0];
+ [self.scrollView leading:self.view.leadingAnchor padding:0];
+ [self.scrollView trailing:self.view.trailingAnchor padding:0];
+ [self.scrollView bottom:self.view.bottomAnchor padding:0];
+
+
+ self.containerView = [[UIView alloc] init];
+ self.containerView.backgroundColor = UIColor.clearColor;
+ [self.scrollView addSubview:self.containerView];
+
+ [self.containerView size:CGSizeMake(self.view.frame.size.width, 780)];
+ [self.containerView x:self.scrollView.centerXAnchor];
+ [self.containerView top:self.scrollView.topAnchor padding:0];
+
+}
+
+
+-(void)layoutGridViews {
+
+ self.memojiView = [[GridView alloc] initWithFrame:CGRectZero bg:[self colorWithHexString:@"96CEB4"] icon:[UIImage imageNamed:@"memoji"] iconSize:120 iconPadding:20 titleTop:20 titleFont:[UIFont systemFontOfSize:22 weight:UIFontWeightBold]];
+ self.memojiView.title.text = @"Memoji";
+ [self.containerView addSubview:self.memojiView];
+
+ [self.memojiView size:CGSizeMake(self.view.frame.size.width/2-30, 200)];
+ [self.memojiView top:self.containerView.topAnchor padding:20];
+ [self.memojiView leading:self.containerView.leadingAnchor padding:20];
+
+
+ self.animojiView = [[GridView alloc] initWithFrame:CGRectZero bg:[self colorWithHexString:@"FFDBAC"] icon:[UIImage imageNamed:@"animoji"] iconSize:110 iconPadding:10 titleTop:5 titleFont:[UIFont systemFontOfSize:20 weight:UIFontWeightBold]];
+ self.animojiView.title.text = @"Animoji";
+ [self.containerView addSubview:self.animojiView];
+
+ [self.animojiView size:CGSizeMake(self.view.frame.size.width/2-30, 160)];
+ [self.animojiView top:self.containerView.topAnchor padding:20];
+ [self.animojiView trailing:self.containerView.trailingAnchor padding:-20];
+
+
+ self.avimojiView = [[GridView alloc] initWithFrame:CGRectZero bg:[self colorWithHexString:@"E4DBF1"] icon:[UIImage imageNamed:@"avimoji"] iconSize:110 iconPadding:10 titleTop:5 titleFont:[UIFont systemFontOfSize:20 weight:UIFontWeightBold]];
+ self.avimojiView.title.text = @"Avimoji";
+ [self.containerView addSubview:self.avimojiView];
+
+ [self.avimojiView size:CGSizeMake(self.view.frame.size.width/2-30, 160)];
+ [self.avimojiView top:self.memojiView.bottomAnchor padding:20];
+ [self.avimojiView leading:self.containerView.leadingAnchor padding:20];
+
+
+ self.libraryView = [[GridView alloc] initWithFrame:CGRectZero bg:[self colorWithHexString:@"DBEDC1"] icon:[UIImage imageNamed:@"library"] iconSize:120 iconPadding:20 titleTop:20 titleFont:[UIFont systemFontOfSize:22 weight:UIFontWeightBold]];
+ self.libraryView.title.text = @"Library";
+ [self.containerView addSubview:self.libraryView];
+
+ [self.libraryView size:CGSizeMake(self.view.frame.size.width/2-30, 200)];
+ [self.libraryView top:self.animojiView.bottomAnchor padding:20];
+ [self.libraryView trailing:self.containerView.trailingAnchor padding:-20];
+
+
+ self.utilitiesLabel = [[UILabel alloc] init];
+ self.utilitiesLabel.text = @"Utilities";
+ self.utilitiesLabel.font = [UIFont systemFontOfSize:28 weight:UIFontWeightHeavy];
+ self.utilitiesLabel.textColor = UIColor.labelColor;
+ self.utilitiesLabel.textAlignment = NSTextAlignmentLeft;
+ [self.containerView addSubview:self.utilitiesLabel];
+
+ [self.utilitiesLabel top:self.libraryView.bottomAnchor padding:25];
+ [self.utilitiesLabel leading:self.containerView.leadingAnchor padding:20];
+
+
+ self.settingView = [[UtilitiesView alloc] initWithFrame:CGRectZero icon:[UIImage systemImageNamed:@"gear"]];
+ self.settingView.title.text = @"Settings";
+ self.settingView.iconView.backgroundColor = UIColor.systemIndigoColor;
+ [self.containerView addSubview:self.settingView];
+
+ [self.settingView size:CGSizeMake(self.view.frame.size.width-40, 70)];
+ [self.settingView x:self.containerView.centerXAnchor];
+ [self.settingView top:self.utilitiesLabel.bottomAnchor padding:10];
+
+
+ self.tutorialView = [[UtilitiesView alloc] initWithFrame:CGRectZero icon:[UIImage systemImageNamed:@"questionmark"]];
+ self.tutorialView.title.text = @"Tutorial";
+ self.tutorialView.iconView.backgroundColor = UIColor.systemRedColor;
+ [self.containerView addSubview:self.tutorialView];
+
+ [self.tutorialView size:CGSizeMake(self.view.frame.size.width-40, 70)];
+ [self.tutorialView x:self.containerView.centerXAnchor];
+ [self.tutorialView top:self.settingView.bottomAnchor padding:10];
+
+
+ self.footerView = [[UIView alloc] init];
+ [self.scrollView addSubview:self.footerView];
+
+ [self.footerView size:CGSizeMake(self.view.frame.size.width, 20)];
+ [self.footerView x:self.scrollView.centerXAnchor];
+ [self.footerView bottom:self.scrollView.bottomAnchor padding:0];
+ [self.footerView top:self.containerView.bottomAnchor padding:0];
+
+}
+
+
+-(void)initGestures {
+
+ [self.avatarImage addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentProfileAvatarPickerVC)]];
+ [self.memojiView addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentMemojiVC)]];
+ [self.animojiView addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentAnimojiVC)]];
+ [self.avimojiView addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentAvimojiVC)]];
+ [self.libraryView addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentLibraryVC)]];
+ [self.settingView addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentSettingsVC)]];
+ [self.tutorialView addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(presentTutorialVC)]];
+}
+
+
+-(void)presentProfileAvatarPickerVC {
+
+ TDAvatarIdentityPickerViewController *vc = [[TDAvatarIdentityPickerViewController alloc] initWithTitle:@"Avatar" showDefaultAvatar:NO avatarImage:self.avatarImage.image accent:UIColor.systemBlueColor];
+ vc.delegate = self;
+ [self presentViewController:vc animated:YES completion:nil];
+}
+
+
+-(void)didCreatedAvatar:(UIImage *)avatar {
+ self.avatarImage.image = avatar;
+ NSData *imageData = UIImageJPEGRepresentation(self.avatarImage.image, 1.0);
+ [[SettingManager sharedInstance] setObject:imageData forKey:@"profileAvatar"];
+}
+
+
+-(void)didDismissedAvatarPicker {
+ NSLog(@"Avatar picker dismissed");
+}
+
+
+-(void)presentMemojiVC {
+ AVTAvatarStore *store = [[ASAvatarStore alloc] initWithDomainIdentifier:[NSBundle mainBundle].bundleIdentifier];
+ self.memojiViewController = [[ASAvatarLibraryViewController alloc] initWithAvatarStore:store];
+ [self presentViewController:self.memojiViewController animated:YES completion:nil];
+}
+
+
+-(void)presentAnimojiVC {
+ AnimojiPickerViewController *vc = [[AnimojiPickerViewController alloc] init];
+ vc.delegate = self;
+ [self presentViewController:vc animated:YES completion:nil];
+}
+
+
+-(void)presentAvimojiVC {
+ AvimojiViewController *vc = [[AvimojiViewController alloc] init];
+ [self.navigationController pushViewController:vc animated:YES];
+}
+
+
+-(void)presentLibraryVC {
+ LibraryViewController *vc = [[LibraryViewController alloc] init];
+ [self.navigationController pushViewController:vc animated:YES];
+}
+
+
+-(void)presentSettingsVC {
+ SettingsViewController *vc = [[SettingsViewController alloc] init];
+ [self.navigationController pushViewController:vc animated:YES];
+}
+
+
+-(void)presentTutorialVC {
+ TutorialViewController *vc = [[TutorialViewController alloc] init];
+ [self.navigationController pushViewController:vc animated:YES];
+}
+
+
+- (void)didSelectAnimojiWithName:(NSString *)animojiName {
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ RecordingStudioViewController *vc = [[RecordingStudioViewController alloc] init];
+ vc.puppetName = animojiName;
+ [self.navigationController pushViewController:vc animated:YES];
+ });
+}
+
+
+- (void)didSelectMemojiAvatarNotification:(NSNotification *)notification {
+
+ NSData *memojiData = (NSData *)notification.object;
+ if (![memojiData isKindOfClass:[NSData class]]) return;
+
+ NSError *error;
+ id avatar = [AVTAvatar avatarWithDataRepresentation:memojiData error:&error];
+
+ if (error) {
+ return;
+ }
+
+ [self.memojiViewController dismissViewControllerAnimated:YES completion:nil];
+
+ BOOL isMemoji = [avatar isKindOfClass:[ASAnimoji class]];
+ [self pushRecordingControllerWithAvatarInstance:avatar isMemoji:isMemoji];
+}
+
+
+- (void)pushRecordingControllerWithAvatarInstance:(AVTAvatarInstance *)instance isMemoji:(BOOL)isMemoji {
+
+ RecordingStudioViewController *recording = [RecordingStudioViewController new];
+ [self.navigationController pushViewController:recording animated:YES];
+ recording.avatar = instance;
+}
+
+
+-(void)presentDefaultMemojiVC {
+ DefaultMemojiViewController *vc = [[DefaultMemojiViewController alloc] init];
+ vc.modalInPresentation = YES;
+ [self presentViewController:vc animated:YES completion:nil];
+}
+
+
+-(UIColor*)colorWithHexString:(NSString*)hex {
+
+ NSString *cString = [[hex stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
+
+ if ([cString length] < 6) return [UIColor grayColor];
+
+ if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
+
+ if ([cString length] != 6) return [UIColor grayColor];
+
+ NSRange range;
+ range.location = 0;
+ range.length = 2;
+ NSString *rString = [cString substringWithRange:range];
+
+ range.location = 2;
+ NSString *gString = [cString substringWithRange:range];
+
+ range.location = 4;
+ NSString *bString = [cString substringWithRange:range];
+
+ unsigned int r, g, b;
+ [[NSScanner scannerWithString:rString] scanHexInt:&r];
+ [[NSScanner scannerWithString:gString] scanHexInt:&g];
+ [[NSScanner scannerWithString:bString] scanHexInt:&b];
+
+ return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Info.plist b/Avatar/App/Avatar/Info.plist
new file mode 100644
index 0000000..c557a8f
--- /dev/null
+++ b/Avatar/App/Avatar/Info.plist
@@ -0,0 +1,25 @@
+
+
+
+
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+ UISceneConfigurations
+
+ UIWindowSceneSessionRoleApplication
+
+
+ UISceneConfigurationName
+ Default Configuration
+ UISceneDelegateClassName
+ SceneDelegate
+
+
+
+
+ UIFileSharingEnabled
+
+
+
diff --git a/Avatar/App/Avatar/Library/LibraryCell.h b/Avatar/App/Avatar/Library/LibraryCell.h
new file mode 100644
index 0000000..fc67d25
--- /dev/null
+++ b/Avatar/App/Avatar/Library/LibraryCell.h
@@ -0,0 +1,9 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface LibraryCell : UICollectionViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UIImageView *thumbnailImage;
+@property (nonatomic, retain) UILabel *titleLabel;
+@property (nonatomic, retain) UIImageView *iconImage;
+@end
diff --git a/Avatar/App/Avatar/Library/LibraryCell.m b/Avatar/App/Avatar/Library/LibraryCell.m
new file mode 100644
index 0000000..c443386
--- /dev/null
+++ b/Avatar/App/Avatar/Library/LibraryCell.m
@@ -0,0 +1,76 @@
+#import "LibraryCell.h"
+
+@implementation LibraryCell
+
+- (instancetype)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.layer.cornerRadius = 15;
+ self.layer.cornerCurve = kCACornerCurveContinuous;
+ self.clipsToBounds = true;
+
+
+ self.baseView = [[UIView alloc] init];
+ self.baseView.layer.cornerRadius = 15;
+ self.baseView.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.baseView.clipsToBounds = true;
+ self.baseView.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.contentView addSubview:self.baseView];
+
+ [self.baseView fill];
+
+
+ self.thumbnailImage = [[UIImageView alloc] init];
+ self.thumbnailImage.layer.cornerRadius = 15;
+ self.thumbnailImage.layer.cornerCurve = kCACornerCurveContinuous;
+ self.thumbnailImage.clipsToBounds = YES;
+ self.thumbnailImage.contentMode = UIViewContentModeScaleAspectFill;
+ [self.baseView addSubview:self.thumbnailImage];
+
+ [self.thumbnailImage size:CGSizeMake(100, 70)];
+ [self.thumbnailImage y:self.baseView.centerYAnchor];
+ [self.thumbnailImage leading:self.baseView.leadingAnchor padding:15];
+
+
+ self.iconImage = [[UIImageView alloc] init];
+ self.iconImage.tintColor = UIColor.systemBlueColor;
+ self.iconImage.contentMode = UIViewContentModeScaleAspectFit;
+ self.iconImage.image = [UIImage systemImageNamed:@"play.rectangle.fill"];
+ [self.baseView addSubview:self.iconImage];
+
+ [self.iconImage size:CGSizeMake(40, 40)];
+ [self.iconImage y:self.baseView.centerYAnchor];
+ [self.iconImage trailing:self.baseView.trailingAnchor padding:-15];
+
+
+ self.titleLabel = [[UILabel alloc] init];
+ self.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightSemibold];
+ self.titleLabel.textAlignment = NSTextAlignmentLeft;
+ self.titleLabel.textColor = UIColor.labelColor;
+ [self.baseView addSubview:self.titleLabel];
+
+ [self.titleLabel y:self.baseView.centerYAnchor];
+ [self.titleLabel leading:self.thumbnailImage.trailingAnchor padding:10];
+ [self.titleLabel trailing:self.iconImage.leadingAnchor padding:-8];
+
+ }
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+ self.thumbnailImage.image = nil;
+ self.titleLabel.text = nil;
+}
+
+
+- (void)setHighlighted:(BOOL)highlighted {
+ [super setHighlighted:highlighted];
+ self.backgroundColor = UIColor.clearColor;
+ self.contentView.backgroundColor = UIColor.clearColor;
+}
+
+@end
diff --git a/Avatar/App/Avatar/Library/LibraryDataSource.h b/Avatar/App/Avatar/Library/LibraryDataSource.h
new file mode 100644
index 0000000..41a2bae
--- /dev/null
+++ b/Avatar/App/Avatar/Library/LibraryDataSource.h
@@ -0,0 +1,9 @@
+#import
+#import
+
+@interface LibraryDataSource : NSObject
++(instancetype)sharedInstance;
+-(id)init;
+
+-(NSMutableArray*)thumbnailData;
+@end
diff --git a/Avatar/App/Avatar/Library/LibraryDataSource.m b/Avatar/App/Avatar/Library/LibraryDataSource.m
new file mode 100644
index 0000000..78d67dc
--- /dev/null
+++ b/Avatar/App/Avatar/Library/LibraryDataSource.m
@@ -0,0 +1,65 @@
+#import "LibraryDataSource.h"
+
+@implementation LibraryDataSource
+
++(instancetype)sharedInstance {
+ static LibraryDataSource*sharedInstance = nil;
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ sharedInstance = [[LibraryDataSource alloc] init];
+ });
+ return sharedInstance;
+}
+
+
+-(id)init {
+ return self;
+}
+
+
+-(NSMutableArray*)thumbnailData {
+
+ NSMutableArray *array = [[NSMutableArray alloc] init];
+
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *thumbnailPath = [documentsDirectory stringByAppendingPathComponent:@"/Thumbnails/"];
+
+ NSMutableArray *folders = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:thumbnailPath error:nil] mutableCopy];
+
+ for (int i = 0; i < folders.count; i++) {
+
+ NSString *path = [folders objectAtIndex:i];
+ if ([path hasSuffix:@".png"]){
+ [array addObject:path];
+ }
+ }
+
+ [array sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
+
+ return array;
+}
+
+
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Avatar/App/Avatar/Library/LibraryViewController.h b/Avatar/App/Avatar/Library/LibraryViewController.h
new file mode 100644
index 0000000..be90314
--- /dev/null
+++ b/Avatar/App/Avatar/Library/LibraryViewController.h
@@ -0,0 +1,15 @@
+#import
+#import
+#import
+#import
+#import "ConstraintExtension.h"
+#import "LibraryCell.h"
+#import "TDHeaderView.h"
+#import "LibraryDataSource.h"
+
+@interface LibraryViewController : UIViewController
+@property (nonatomic, retain) TDHeaderView *headerView;
+@property (nonatomic, retain) UICollectionView *collectionView;
+@property (nonatomic, retain) NSMutableArray *videoArray;
+@property (nonatomic, retain) UILabel *messageLabel;
+@end
diff --git a/Avatar/App/Avatar/Library/LibraryViewController.m b/Avatar/App/Avatar/Library/LibraryViewController.m
new file mode 100644
index 0000000..fa4fb58
--- /dev/null
+++ b/Avatar/App/Avatar/Library/LibraryViewController.m
@@ -0,0 +1,307 @@
+#import "LibraryViewController.h"
+
+@implementation LibraryViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ self.videoArray = [[LibraryDataSource sharedInstance] thumbnailData];
+
+ [self layoutHeaderView];
+ [self layoutCollectionView];
+ [self checkVideoCount];
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[TDHeaderView alloc] initWithTitle:@"Library" accent:UIColor.systemBlueColor leftIcon:@"chevron.left" leftAction:@selector(dismissVC)];
+ self.headerView.grabberView.alpha = 0;
+ self.headerView.leftButton.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 55)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.safeAreaLayoutGuide.topAnchor padding:0];
+
+
+ self.messageLabel = [[UILabel alloc] init];
+ self.messageLabel.textAlignment = NSTextAlignmentCenter;
+ self.messageLabel.font = [UIFont systemFontOfSize:24 weight:UIFontWeightBold];
+ self.messageLabel.textColor = UIColor.tertiaryLabelColor;
+ self.messageLabel.numberOfLines = 2;
+ self.messageLabel.text = @"You don't have any \nvideo available";
+ self.messageLabel.alpha = 0;
+ [self.view addSubview:self.messageLabel];
+
+ [self.messageLabel x:self.view.centerXAnchor y:self.view.centerYAnchor];
+ [self.messageLabel leading:self.view.leadingAnchor padding:20];
+ [self.messageLabel trailing:self.view.trailingAnchor padding:-20];
+}
+
+
+-(void)layoutCollectionView {
+
+ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+ self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
+ self.collectionView.backgroundColor = UIColor.clearColor;
+ self.collectionView.translatesAutoresizingMaskIntoConstraints = NO;
+ self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ [self.collectionView setShowsHorizontalScrollIndicator:NO];
+ [self.collectionView setShowsVerticalScrollIndicator:NO];
+ [self.collectionView registerClass:[LibraryCell class] forCellWithReuseIdentifier:@"Cell"];
+ [self.view addSubview:self.collectionView];
+
+ [self.collectionView leading:self.view.leadingAnchor padding:0];
+ [self.collectionView trailing:self.view.trailingAnchor padding:0];
+ [self.collectionView top:self.headerView.bottomAnchor padding:15];
+ [self.collectionView bottom:self.view.bottomAnchor padding:0];
+
+ self.collectionView.delegate = self;
+ self.collectionView.dataSource = self;
+}
+
+
+- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+ return self.videoArray.count;
+}
+
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
+
+ LibraryCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
+
+ cell.backgroundColor = UIColor.clearColor;
+
+ NSString *thumbnailFile = [self.videoArray objectAtIndex:indexPath.row];
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *finalPath = [NSString stringWithFormat:@"/Thumbnails/%@", thumbnailFile];
+ NSString *thumbnailPath = [documentsDirectory stringByAppendingPathComponent:finalPath];
+
+ cell.thumbnailImage.image = [UIImage imageWithContentsOfFile:thumbnailPath];
+ cell.titleLabel.text = [NSString stringWithFormat:@"Video %li", indexPath.row +1];
+
+ return cell;
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
+ return CGSizeMake(self.view.frame.size.width-40, 90);
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ NSString *videoFile = [self.videoArray objectAtIndex:indexPath.row];
+ NSString *videoName = [videoFile stringByReplacingOccurrencesOfString:@".png" withString:@""];
+
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *finalPath = [NSString stringWithFormat:@"/Recordings/%@", videoName];
+ NSString *thumbnailPath = [documentsDirectory stringByAppendingPathComponent:finalPath];
+
+ NSURL *videoURL = [NSURL fileURLWithPath:thumbnailPath];
+
+ AVPlayer *player = [AVPlayer playerWithURL:videoURL];
+ AVPlayerViewController *playerViewController = [[AVPlayerViewController alloc] init];
+ playerViewController.player = player;
+ [self presentViewController:playerViewController animated:YES completion:nil];
+ [playerViewController.player play];
+
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
+ [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^(){
+ cell.transform = CGAffineTransformMakeScale(0.97, 0.97);
+ cell.alpha = 0.5;
+ } completion:nil];
+
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
+ [UIView animateWithDuration:0.6 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^(){
+ cell.transform = CGAffineTransformMakeScale(1.0, 1.0);
+ cell.alpha = 1;
+ } completion:nil];
+
+}
+
+
+- (UIContextMenuConfiguration *)collectionView:(UICollectionView *)collectionView contextMenuConfigurationForItemAtIndexPath:(NSIndexPath *)indexPath point:(CGPoint)point {
+
+ UIContextMenuConfiguration* config = [UIContextMenuConfiguration configurationWithIdentifier:nil previewProvider:nil actionProvider:^UIMenu* _Nullable(NSArray* _Nonnull suggestedActions) {
+
+ UIAction *saveAction = [UIAction actionWithTitle:@"Save Video" image:[UIImage systemImageNamed:@"icloud.and.arrow.down.fill"] identifier:nil handler:^(UIAction *action) {
+
+ NSString *videoFile = [self.videoArray objectAtIndex:indexPath.row];
+ NSString *videoName = [videoFile stringByReplacingOccurrencesOfString:@".png" withString:@""];
+
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+
+ NSString *finalVideoPath = [NSString stringWithFormat:@"/Recordings/%@", videoName];
+ NSString *videoPath = [documentsDirectory stringByAppendingPathComponent:finalVideoPath];
+
+ [self saveVideoWithString:videoPath];
+
+ }];
+
+
+ UIAction *shareAction = [UIAction actionWithTitle:@"Share Video" image:[UIImage systemImageNamed:@"square.and.arrow.up.fill"] identifier:nil handler:^(UIAction *action) {
+
+ NSString *videoFile = [self.videoArray objectAtIndex:indexPath.row];
+ NSString *videoName = [videoFile stringByReplacingOccurrencesOfString:@".png" withString:@""];
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *finalPath = [NSString stringWithFormat:@"/Recordings/%@", videoName];
+ NSString *videoPath = [documentsDirectory stringByAppendingPathComponent:finalPath];
+
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [self shareVideoWithString:videoPath];
+ });
+
+ }];
+
+
+ UIAction *deleteAction = [UIAction actionWithTitle:@"Delete Video" image:[UIImage systemImageNamed:@"trash.fill"] identifier:nil handler:^(UIAction *action) {
+
+ NSString *videoFile = [self.videoArray objectAtIndex:indexPath.row];
+ NSString *videoName = [videoFile stringByReplacingOccurrencesOfString:@".png" withString:@""];
+
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+
+ NSString *finalVideoPath = [NSString stringWithFormat:@"/Recordings/%@", videoName];
+ NSString *videoPath = [documentsDirectory stringByAppendingPathComponent:finalVideoPath];
+
+
+ NSString *thumbnailFile = [self.videoArray objectAtIndex:indexPath.row];
+ NSString *documentsDirectory2 = [paths objectAtIndex:0];
+ NSString *finalThumbnailPath = [NSString stringWithFormat:@"/Thumbnails/%@", thumbnailFile];
+ NSString *thumbnailPath = [documentsDirectory2 stringByAppendingPathComponent:finalThumbnailPath];
+
+ [self deleteVideoWithString:videoPath];
+ [self deleteThumbnailWithString:thumbnailPath];
+
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [self refreshData];
+ });
+
+ }];
+ deleteAction.attributes = UIMenuElementAttributesDestructive;
+
+ return [UIMenu menuWithTitle:@"" children:@[saveAction, shareAction, deleteAction]];
+
+ }];
+
+ return config;
+
+}
+
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
+ return 10.0;
+}
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
+ return 10.0;
+}
+
+
+- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
+ return UIEdgeInsetsMake(0,10,0,10);
+}
+
+
+-(void)shareVideoWithString:(NSString *)video {
+
+ NSURL *videoURL = [NSURL fileURLWithPath:video];
+
+ UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[videoURL] applicationActivities:nil];
+
+ [activityController setCompletionWithItemsHandler:^(UIActivityType _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
+ if (!completed || !activityType) return;
+ }];
+ [self presentViewController:activityController animated:YES completion:nil];
+
+}
+
+
+-(void)saveVideoWithString:(NSString *)video {
+
+ NSURL *url = [NSURL URLWithString:video];
+
+ [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^ {
+ [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:url];
+ } completionHandler:^(BOOL success, NSError *error) {
+ if (success) {
+ NSLog(@"Movie saved to camera roll.");
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [self showAlertWithTitle:@"Successful!" subtitle:@"The video was saved to your photo library."];
+ });
+ } else {
+ NSLog(@"Could not save movie to camera roll. Error: %@", error);
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [self showAlertWithTitle:@"Failed!" subtitle:@"The video failed to save to your photo library."];
+ });
+ }
+ }];
+
+}
+
+
+-(void)deleteVideoWithString:(NSString *)video {
+ NSError *error = nil;
+ [[NSFileManager defaultManager] removeItemAtPath:video error:&error];
+}
+
+
+-(void)deleteThumbnailWithString:(NSString *)thumbnail {
+ NSError *error = nil;
+ [[NSFileManager defaultManager] removeItemAtPath:thumbnail error:&error];
+}
+
+
+-(void)refreshData {
+
+ self.videoArray = [[LibraryDataSource sharedInstance] thumbnailData];
+ [self.collectionView reloadData];
+ [self checkVideoCount];
+}
+
+
+-(void)showAlertWithTitle:(NSString *)title subtitle:(NSString *)subtitle {
+
+ UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:subtitle preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
+ }];
+
+ [alert addAction:defaultAction];
+ [self presentViewController:alert animated:YES completion:nil];
+}
+
+
+-(void)checkVideoCount {
+ if (self.videoArray.count == 0) {
+ self.messageLabel.alpha = 1;
+ } else {
+ self.messageLabel.alpha = 0;
+ }
+}
+
+
+-(void)dismissVC {
+ [self.navigationController popToRootViewControllerAnimated:YES];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Manager/ARConfiguration+Overrides.h b/Avatar/App/Avatar/Manager/ARConfiguration+Overrides.h
new file mode 100644
index 0000000..39d6edc
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/ARConfiguration+Overrides.h
@@ -0,0 +1,4 @@
+#import
+
+@interface ARConfiguration (Overrides)
+@end
diff --git a/Avatar/App/Avatar/Manager/ARConfiguration+Overrides.m b/Avatar/App/Avatar/Manager/ARConfiguration+Overrides.m
new file mode 100644
index 0000000..b10ad55
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/ARConfiguration+Overrides.m
@@ -0,0 +1,10 @@
+#import "ARConfiguration+Overrides.h"
+
+@implementation ARConfiguration (Overrides)
+
+- (void)setProvidesAudioData:(BOOL)providesAudioData {
+ // prevent this from working, we never want audio data from ARKit
+ return;
+}
+
+@end
diff --git a/Avatar/App/Avatar/Manager/AvatarManager.h b/Avatar/App/Avatar/Manager/AvatarManager.h
new file mode 100644
index 0000000..935e8b8
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/AvatarManager.h
@@ -0,0 +1,12 @@
+#import
+#import
+#import "SettingManager.h"
+
+//extern const NSNotificationName DidSelectMemoji;
+
+@interface AvatarManager : NSObject
+
++ (void)prepareMemojiRuntime;
++ (BOOL)deviceSupportsMemoji;
+
+@end
diff --git a/Avatar/App/Avatar/Manager/AvatarManager.m b/Avatar/App/Avatar/Manager/AvatarManager.m
new file mode 100644
index 0000000..ce2420d
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/AvatarManager.m
@@ -0,0 +1,243 @@
+#import "AvatarManager.h"
+
+NSURL *animojiStudioStoreLocation(void);
+
+@interface AVTCoreDataCloudKitMirroringConfiguration: NSObject
++ (BOOL)cloudKitMirroringEnabled;
+@end
+
+
+@interface AVTCoreDataPersistentStoreConfiguration: NSObject
++ (instancetype)localConfigurationWithStoreLocation:(id)location environment:(id)environment;
+@end
+
+
+@interface AVTUIEnvironment: NSObject
++ (instancetype)defaultEnvironment;
+@end
+
+
+@import os.log;
+
+
+@interface AvatarManager ()
+@property (readonly) NSArray *mutableLibraryItems;
+@property (assign) BOOL memojiRuntimeInitializedSuccessfully;
+@end
+
+
+@implementation AvatarManager {
+ os_log_t _log;
+}
+
+
++ (instancetype)sharedInstance {
+ static AvatarManager *_shared;
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ _shared = [AvatarManager new];
+ });
+ return _shared;
+}
+
+
+- (instancetype)init {
+ self = [super init];
+
+ _log = os_log_create("AnimojiStudio", "MemojiSupport");
+
+ return self;
+}
+
+
++ (void)prepareMemojiRuntime {
+ [AvatarManager sharedInstance].memojiRuntimeInitializedSuccessfully = [[AvatarManager sharedInstance] _initializeMemojiRuntime];
+}
+
+
+- (BOOL)_initializeMemojiRuntime {
+
+ if (![[NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/AvatarUI.framework"] load]) {
+ os_log_error(_log, "Failed to load AvatarUI framework. Memoji support disabled.");
+ return NO;
+ }
+
+ Class AVTArchiverBasedStoreBackend = NSClassFromString(@"AVTArchiverBasedStoreBackend");
+ if (!AVTArchiverBasedStoreBackend) {
+ os_log_error(_log, "Class AVTArchiverBasedStoreBackend not found. Memoji support disabled.");
+ return NO;
+ }
+
+ Class AVTUIEnvironment = NSClassFromString(@"AVTUIEnvironment");
+ if (!AVTUIEnvironment) {
+ os_log_error(_log, "Class AVTUIEnvironment not found. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m1 = class_getClassMethod(AVTArchiverBasedStoreBackend, NSSelectorFromString(@"storeLocationForDomainIdentifier:environment:"));
+ if (!m1) {
+ os_log_error(_log, "Method storeLocationForDomainIdentifier:environment: not found on class AVTArchiverBasedStoreBackend. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m2 = class_getClassMethod([self class], @selector(storeLocationForDomainIdentifier:environment:));
+
+ method_exchangeImplementations(m1, m2);
+
+ Method m3 = class_getInstanceMethod(AVTUIEnvironment, NSSelectorFromString(@"storeLocation"));
+ if (!m3) {
+ os_log_error(_log, "Method storeLocation not found on class AVTUIEnvironment. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m4 = class_getClassMethod([self class], @selector(storeLocation));
+
+ method_exchangeImplementations(m3, m4);
+
+ Method m5 = class_getInstanceMethod(AVTUIEnvironment, NSSelectorFromString(@"imageStoreLocation"));
+ if (!m5) {
+ os_log_error(_log, "Method imageStoreLocation not found on class AVTUIEnvironment. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m6 = class_getClassMethod([self class], @selector(imageStoreLocation));
+
+ method_exchangeImplementations(m5, m6);
+
+ Class AVTAvatarLibraryModel = NSClassFromString(@"AVTAvatarLibraryModel");
+ if (!AVTAvatarLibraryModel) {
+ os_log_error(_log, "Class AVTAvatarLibraryModel not found. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m7 = class_getInstanceMethod(AVTAvatarLibraryModel, NSSelectorFromString(@"performActionOnItemAtIndex:"));
+ if (!m7) {
+ os_log_error(_log, "Method performActionOnItemAtIndex: not found on class AVTAvatarLibraryModel. Memoji support disabled.");
+ return NO;
+ }
+
+ class_addMethod(AVTAvatarLibraryModel, @selector(original_performActionOnItemAtIndex:), method_getImplementation(m7), method_getTypeEncoding(m7));
+
+ Method m8 = class_getInstanceMethod([self class], @selector(performActionOnItemAtIndex:));
+ method_exchangeImplementations(m7, m8);
+
+ if (!NSClassFromString(@"AVTCoreDataPersistentStoreConfiguration")) {
+ os_log_error(_log, "Class AVTCoreDataPersistentStoreConfiguration not found. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m9 = class_getClassMethod(NSClassFromString(@"AVTCoreDataPersistentStoreConfiguration"), NSSelectorFromString(@"remoteConfigurationWithDaemonClient:environment:"));
+ Method m10 = class_getClassMethod([self class], @selector(localConfigurationWithStoreLocation:environment:));
+ method_exchangeImplementations(m9, m10);
+
+ if (!NSClassFromString(@"AVTCoreDataCloudKitMirroringConfiguration")) {
+ os_log_error(_log, "Class AVTCoreDataCloudKitMirroringConfiguration not found. Memoji support disabled.");
+ return NO;
+ }
+
+ Method m11 = class_getClassMethod(NSClassFromString(@"AVTCoreDataCloudKitMirroringConfiguration"), @selector(cloudKitMirroringEnabled));
+ Method m12 = class_getClassMethod([self class], @selector(cloudKitMirroringEnabled));
+ method_exchangeImplementations(m11, m12);
+
+ os_log_info(_log, "Memoji runtime initialized successfully");
+
+ return YES;
+}
+
+
++ (BOOL)cloudKitMirroringEnabled {
+ return NO;
+}
+
+
++ (id)localConfigurationWithStoreLocation:(id)location environment:(id)environment {
+ return [NSClassFromString(@"AVTCoreDataPersistentStoreConfiguration") localConfigurationWithStoreLocation:animojiStudioStoreLocation() environment:[NSClassFromString(@"AVTUIEnvironment") defaultEnvironment]];
+}
+
+
++ (NSURL *)storeLocationForDomainIdentifier:(id)identifier environment:(id)environment {
+ return animojiStudioStoreLocation();
+}
+
+
++ (NSURL *)storeLocation {
+ NSString *path;
+
+ BOOL useDefaultMemoji = [[SettingManager sharedInstance] boolForKey:@"useDefaultMemoji" defaultValue:NO];
+
+ if (useDefaultMemoji) {
+ path = @"/var/mobile/Library/Avatar/";
+ } else {
+ path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
+ path = [path stringByAppendingPathComponent:@"MemojiStore"];
+ }
+
+ return [NSURL fileURLWithPath:path];
+}
+
+
++ (NSURL *)imageStoreLocation {
+ NSString *path;
+
+ BOOL useDefaultMemoji = [[SettingManager sharedInstance] boolForKey:@"useDefaultMemoji" defaultValue:NO];
+
+ if (useDefaultMemoji) {
+ path = @"/var/mobile/Library/Avatar/";
+ } else {
+ path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
+ path = [path stringByAppendingPathComponent:@"MemojiStore"];
+ }
+ return [NSURL fileURLWithPath:path];
+}
+
+
+- (void)original_performActionOnItemAtIndex:(NSUInteger)index {
+ // implementation replaced at runtime
+ return;
+}
+
+
+- (void)performActionOnItemAtIndex:(NSUInteger)index {
+ if (index >= self.mutableLibraryItems.count) return;
+
+ id item = self.mutableLibraryItems[index];
+
+ if ([item isKindOfClass:NSClassFromString(@"AVTAvatarLibraryCreateNewItem")]) {
+ [self original_performActionOnItemAtIndex:index];
+ return;
+ }
+
+ NSData *memojiData = [[item valueForKey:@"avatarRecord"] valueForKey:@"avatarData"];
+ if (!memojiData) return;
+
+ [[NSNotificationCenter defaultCenter] postNotificationName:@"DidSelectMemojiAvatar" object:memojiData];
+}
+
+
++ (BOOL)deviceSupportsMemoji {
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:@"ASSimulateMemojiUnsupported"]) return NO;
+
+ return [AvatarManager sharedInstance].memojiRuntimeInitializedSuccessfully;
+}
+
+@end
+
+
+NSURL *animojiStudioStoreLocation(void) {
+ NSString *path;
+
+ BOOL useDefaultMemoji = [[SettingManager sharedInstance] boolForKey:@"useDefaultMemoji" defaultValue:NO];
+
+ if (useDefaultMemoji) {
+ path = @"/var/mobile/Library/Avatar/";
+ } else {
+ path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
+ path = [path stringByAppendingPathComponent:@"MemojiStore"];
+ }
+ return [NSURL fileURLWithPath:path];
+}
+
+
+int override_AVTUIIsAvatarSyncEnabled(void) {
+ return 0;
+}
diff --git a/Avatar/App/Avatar/Manager/RecordingManager.h b/Avatar/App/Avatar/Manager/RecordingManager.h
new file mode 100644
index 0000000..25e6ba7
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/RecordingManager.h
@@ -0,0 +1,18 @@
+@import UIKit;
+@class RecordingManager;
+@import ReplayKit;
+@import AVFoundation;
+
+@protocol RecordingManagerDelegate
+- (void)recordingManager:(RecordingManager *)coordinator recordingDidFailWithError:(NSError *)error;
+- (void)recordingManager:(RecordingManager *)coordinator wantsToPresentRecordingPreviewWithController:(__kindof UIViewController *)previewController;
+- (void)recordingManagerDidFinishRecording:(RecordingManager *)coordinator;
+@end
+
+@interface RecordingManager : NSObject
+- (void)startRecordingWithAudio:(BOOL)shouldCaptureAudio frontCameraPreview:(BOOL)shouldCaptureFrontCamera;
+- (void)stopRecording;
+@property (nonatomic, weak) id delegate;
+@property (nonatomic, readonly, getter=isRecording) BOOL recording;
+@property (nonatomic, readonly) NSURL *videoURL;
+@end
diff --git a/Avatar/App/Avatar/Manager/RecordingManager.m b/Avatar/App/Avatar/Manager/RecordingManager.m
new file mode 100644
index 0000000..bdecc1b
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/RecordingManager.m
@@ -0,0 +1,253 @@
+#import "RecordingManager.h"
+
+@interface RecordingManager ()
+@property (nonatomic, strong) RPScreenRecorder *recorder;
+@property (nonatomic, assign, getter=isRecording) BOOL recording;
+@property (nonatomic, strong) AVAssetWriter *assetWriter;
+@property (nonatomic, strong) AVAssetWriterInput *videoInput;
+@property (nonatomic, strong) AVAssetWriterInput *micInput;
+@property (nonatomic, strong) AVAssetWriterInput *appInput;
+@property (nonatomic, assign) BOOL videoSessionStarted;
+@property (nonatomic, assign) BOOL micSessionStarted;
+@property (nonatomic, assign) BOOL appSessionStarted;
+@property (nonatomic, assign) BOOL isMicEnabled;
+@end
+
+
+@implementation RecordingManager
+
++ (BOOL)shouldUseDumbRecordingMode {
+ return NO;
+}
+
+
+- (void)startRecordingWithAudio:(BOOL)shouldCaptureAudio frontCameraPreview:(BOOL)shouldCaptureFrontCamera {
+
+ self.isMicEnabled = shouldCaptureAudio;
+
+ if (!self.recorder) {
+ self.recorder = [RPScreenRecorder sharedRecorder];
+ self.recorder.microphoneEnabled = shouldCaptureAudio;
+ self.recorder.cameraEnabled = shouldCaptureFrontCamera;
+ }
+
+ if ([RecordingManager shouldUseDumbRecordingMode]) {
+ [self _startDumbRecording];
+ } else {
+ [self _startSmartRecording];
+ }
+}
+
+
+- (void)stopRecording {
+ if ([RecordingManager shouldUseDumbRecordingMode]) {
+ [self _stopDumbRecording];
+ } else {
+ [self _stopSmartRecordingWithError:nil];
+ }
+}
+
+
+- (void)_startDumbRecording {
+
+ __weak typeof(self) weakSelf = self;
+ [self.recorder startRecordingWithHandler:^(NSError * _Nullable error) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ if (!error) {
+ weakSelf.recording = YES;
+ return;
+ }
+
+ [weakSelf.delegate recordingManager:weakSelf recordingDidFailWithError:error];
+ });
+ }];
+}
+
+
+- (void)_stopDumbRecording {
+
+ __weak typeof(self) weakSelf = self;
+ [self.recorder stopRecordingWithHandler:^(RPPreviewViewController * _Nullable previewViewController, NSError * _Nullable error) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ weakSelf.recording = NO;
+
+ if (error || !previewViewController) {
+ [weakSelf.delegate recordingManager:weakSelf recordingDidFailWithError:error];
+ } else {
+ previewViewController.previewControllerDelegate = weakSelf;
+ [weakSelf.delegate recordingManager:weakSelf wantsToPresentRecordingPreviewWithController:previewViewController];
+ }
+ });
+ }];
+}
+
+
+- (NSURL *)_recordingURL {
+
+ NSString *basePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
+ NSString *path = [basePath stringByAppendingPathComponent:@"Recordings"];
+
+ if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
+ [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
+ }
+
+ NSString *fileName = [NSString stringWithFormat:@"Avatar_%.0f.mp4", [NSDate date].timeIntervalSince1970];
+
+ NSURL *url = [NSURL fileURLWithPath:[NSString pathWithComponents:@[path, fileName]]];
+
+ return url;
+}
+
+
+- (void)_startSmartRecording {
+
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:@"ASDemoMode"]) {
+ self.recording = YES;
+ return;
+ }
+
+ NSError *writerError;
+ self.assetWriter = [AVAssetWriter assetWriterWithURL:[self _recordingURL] fileType:AVFileTypeQuickTimeMovie error:&writerError];
+
+ NSDictionary *aperture = @{AVVideoCleanApertureWidthKey: @(1024), AVVideoCleanApertureHeightKey: @(1024), AVVideoCleanApertureVerticalOffsetKey: @(10), AVVideoCleanApertureHorizontalOffsetKey: @(10)};
+
+ NSDictionary *aspectRatio = @{AVVideoPixelAspectRatioVerticalSpacingKey: @1, AVVideoPixelAspectRatioHorizontalSpacingKey: @1};
+
+ NSDictionary *compressionSettings = @{AVVideoPixelAspectRatioKey: aspectRatio, AVVideoCleanApertureKey: aperture};
+
+ NSDictionary *videoSettings = @{AVVideoCompressionPropertiesKey: compressionSettings, AVVideoCodecKey: AVVideoCodecTypeHEVC, AVVideoWidthKey: @(1024), AVVideoHeightKey: @(1024), AVVideoScalingModeKey: AVVideoScalingModeResizeAspectFill};
+
+ NSDictionary *micAudioSettings = @{AVFormatIDKey: @(kAudioFormatMPEG4AAC), AVNumberOfChannelsKey: @(2), AVSampleRateKey: @(44100.0), AVEncoderBitRateKey: @(128000)};
+
+ NSDictionary *appAudioSettings = @{AVFormatIDKey: @(kAudioFormatMPEG4AAC), AVNumberOfChannelsKey: @(2), AVSampleRateKey: @(44100.0),AVEncoderBitRateKey: @(128000)};
+
+ self.videoInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoSettings];
+ self.micInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeAudio outputSettings:micAudioSettings];
+ self.appInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeAudio outputSettings:appAudioSettings];
+
+ self.videoInput.expectsMediaDataInRealTime = YES;
+ self.micInput.expectsMediaDataInRealTime = YES;
+ self.appInput.expectsMediaDataInRealTime = YES;
+
+ [self.assetWriter addInput:self.videoInput];
+
+ if (self.isMicEnabled) [self.assetWriter addInput:self.micInput];
+
+ [self.assetWriter addInput:self.appInput];
+
+ if (writerError) {
+ [self.delegate recordingManager:self recordingDidFailWithError:writerError];
+ return;
+ }
+
+ if (![self.assetWriter startWriting]) {
+ [self _stopSmartRecordingWithError:self.assetWriter.error];
+ return;
+ }
+
+ __weak typeof(self) weakSelf = self;
+ [self.recorder startCaptureWithHandler:^(CMSampleBufferRef _Nonnull sampleBuffer, RPSampleBufferType bufferType, NSError * _Nullable error) {
+ if (!CMSampleBufferDataIsReady(sampleBuffer)) return;
+
+ if (self.assetWriter.status != AVAssetWriterStatusWriting) return;
+
+ switch (bufferType) {
+ case RPSampleBufferTypeVideo:
+ if (!weakSelf.videoSessionStarted) {
+ weakSelf.videoSessionStarted = YES;
+ [self.assetWriter startSessionAtSourceTime:CMSampleBufferGetPresentationTimeStamp(sampleBuffer)];
+ }
+
+ if (weakSelf.videoInput.isReadyForMoreMediaData) {
+ [weakSelf.videoInput appendSampleBuffer:sampleBuffer];
+ }
+ break;
+ case RPSampleBufferTypeAudioMic:
+ if (!weakSelf.isMicEnabled) break;
+
+ if (!weakSelf.micSessionStarted) {
+ weakSelf.micSessionStarted = YES;
+ [self.assetWriter startSessionAtSourceTime:CMSampleBufferGetPresentationTimeStamp(sampleBuffer)];
+ }
+
+ if (weakSelf.micInput.isReadyForMoreMediaData) {
+ [weakSelf.micInput appendSampleBuffer:sampleBuffer];
+ }
+ break;
+ case RPSampleBufferTypeAudioApp:
+ if (!weakSelf.appSessionStarted) {
+ weakSelf.appSessionStarted = YES;
+ [self.assetWriter startSessionAtSourceTime:CMSampleBufferGetPresentationTimeStamp(sampleBuffer)];
+ }
+
+ if (weakSelf.appInput.isReadyForMoreMediaData) {
+ [weakSelf.appInput appendSampleBuffer:sampleBuffer];
+ }
+ break;
+ default: break;
+ }
+ } completionHandler:^(NSError * _Nullable error) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ if (error) {
+ [weakSelf.delegate recordingManager:weakSelf recordingDidFailWithError:error];
+ } else {
+ weakSelf.recording = YES;
+ }
+ });
+ }];
+}
+
+
+- (void)_stopSmartRecordingWithError:(NSError *)inputError {
+
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:@"ASDemoMode"]) {
+ self.recording = NO;
+ [self.delegate recordingManagerDidFinishRecording:self];
+ return;
+ }
+
+ if (inputError) {
+ [self.recorder stopCaptureWithHandler:nil];
+ [self.delegate recordingManager:self recordingDidFailWithError:inputError];
+ return;
+ }
+
+ __weak typeof(self) weakSelf = self;
+ [self.recorder stopCaptureWithHandler:^(NSError * _Nullable error) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ weakSelf.recording = NO;
+
+ if (error) {
+ [weakSelf.delegate recordingManager:self recordingDidFailWithError:error];
+ }
+
+ [weakSelf.assetWriter finishWritingWithCompletionHandler:^{
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [weakSelf.delegate recordingManagerDidFinishRecording:weakSelf];
+ });
+ }];
+ });
+ }];
+}
+
+
+- (NSURL *)videoURL {
+
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:@"ASDemoMode"]) {
+ return [[NSBundle mainBundle] URLForResource:@"Foxie" withExtension:@"mov"];
+ }
+
+ return self.assetWriter.outputURL;
+}
+
+
+- (void)previewControllerDidFinish:(RPPreviewViewController *)previewController {
+ [previewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+- (void)previewController:(RPPreviewViewController *)previewController didFinishWithActivityTypes:(NSSet *)activityTypes {
+ [previewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Manager/SettingManager.h b/Avatar/App/Avatar/Manager/SettingManager.h
new file mode 100644
index 0000000..c402150
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/SettingManager.h
@@ -0,0 +1,20 @@
+#import
+
+@interface SettingManager : NSObject
++(instancetype)sharedInstance;
+-(id)init;
+
+- (void)setBool:(BOOL)anObject forKey:(id)aKey;
+- (void)setObject:(id)anObject forKey:(id)aKey;
+- (void)setFloat:(long long)anObject forKey:(id)aKey;
+- (void)setInt:(int)anObject forKey:(id)aKey;
+- (bool)boolForKey:(id)aKey defaultValue:(BOOL)defaultValue;
+- (id)objectForKey:(id)aKey defaultValue:(id)defaultValue;
+- (long long)floatForKey:(id)aKey defaultValue:(long long)defaultValue;
+- (int)intForKey:(id)aKey defaultValue:(int)defaultValue;
+- (bool)boolForKey:(id)aKey;
+- (id)objectForKey:(id)aKey;
+- (long long)floatForKey:(id)aKey;
+- (int)intForKey:(id)aKey;
+-(UIColor *)systemColourForKey:(id)aKey defaultColour:(UIColor *)defaultColour;
+@end
diff --git a/Avatar/App/Avatar/Manager/SettingManager.m b/Avatar/App/Avatar/Manager/SettingManager.m
new file mode 100644
index 0000000..01a8bf8
--- /dev/null
+++ b/Avatar/App/Avatar/Manager/SettingManager.m
@@ -0,0 +1,135 @@
+#import "SettingManager.h"
+
+
+@implementation SettingManager
+
++(instancetype)sharedInstance {
+ static SettingManager *sharedInstance = nil;
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ sharedInstance = [[SettingManager alloc] init];
+ });
+ return sharedInstance;
+}
+
+-(id)init {
+ return self;
+}
+
+- (void)setBool:(BOOL)anObject forKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ [settings setObject:[NSNumber numberWithBool:anObject] forKey:aKey];
+ [settings writeToFile:prefPath atomically:YES];
+}
+
+- (void)setObject:(id)anObject forKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ [settings setObject:anObject forKey:aKey];
+ [settings writeToFile:prefPath atomically:YES];
+ NSLog(@"Write image data...");
+}
+
+- (void)setFloat:(long long)anObject forKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ [settings setObject:@(anObject) forKey:aKey];
+ [settings writeToFile:prefPath atomically:YES];
+}
+
+- (void)setInt:(int)anObject forKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ [settings setObject:@(anObject) forKey:aKey];
+ [settings writeToFile:prefPath atomically:YES];
+}
+
+- (bool)boolForKey:(id)aKey defaultValue:(BOOL)defaultValue {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ if([settings objectForKey:aKey] == NULL){
+ return defaultValue;
+ }
+ return [[settings objectForKey:aKey] boolValue];
+}
+
+- (id)objectForKey:(id)aKey defaultValue:(id)defaultValue {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [settings objectForKey:aKey]?:defaultValue;
+}
+
+- (long long)floatForKey:(id)aKey defaultValue:(long long)defaultValue {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [[settings objectForKey:aKey] longLongValue]?:defaultValue;
+}
+
+- (int)intForKey:(id)aKey defaultValue:(int)defaultValue {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [[settings objectForKey:aKey] intValue]?:defaultValue;
+}
+
+- (bool)boolForKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [[settings objectForKey:aKey] boolValue];
+}
+
+- (id)objectForKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [settings objectForKey:aKey];
+}
+
+- (long long)floatForKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [[settings objectForKey:aKey] longLongValue];
+}
+
+- (int)intForKey:(id)aKey {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ return [[settings objectForKey:aKey] intValue];
+}
+
+
+- (UIColor *)systemColourForKey:(id)aKey defaultColour:(UIColor *)defaultColour {
+ NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
+ NSString *prefPath = [NSString stringWithFormat:@"%@/Settings.plist", aDocumentsDirectory];
+ NSMutableDictionary *settings = [NSMutableDictionary dictionary];
+ [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:prefPath]];
+ NSData *decodedData = [settings objectForKey:aKey];
+ UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:decodedData]?:defaultColour;
+ return color;
+}
+
+
+@end
diff --git a/Avatar/App/Avatar/Onboarding/DefaultMemojiViewController.h b/Avatar/App/Avatar/Onboarding/DefaultMemojiViewController.h
new file mode 100644
index 0000000..975fd6d
--- /dev/null
+++ b/Avatar/App/Avatar/Onboarding/DefaultMemojiViewController.h
@@ -0,0 +1,11 @@
+#import
+#import "ConstraintExtension.h"
+#import "SettingManager.h"
+
+@interface DefaultMemojiViewController : UIViewController
+@property (nonatomic, retain) UIView *grabberView;
+@property (nonatomic, retain) UIImageView *coverImage;
+@property (nonatomic, retain) UITextView *textView;
+@property (nonatomic, retain) UIButton *yesButton;
+@property (nonatomic, retain) UIButton *noButton;
+@end
diff --git a/Avatar/App/Avatar/Onboarding/DefaultMemojiViewController.m b/Avatar/App/Avatar/Onboarding/DefaultMemojiViewController.m
new file mode 100644
index 0000000..b5472f4
--- /dev/null
+++ b/Avatar/App/Avatar/Onboarding/DefaultMemojiViewController.m
@@ -0,0 +1,114 @@
+#import "DefaultMemojiViewController.h"
+
+
+@implementation DefaultMemojiViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ self.grabberView = [[UIView alloc] init];
+ self.grabberView.backgroundColor = UIColor.tertiarySystemFillColor;
+ self.grabberView.layer.cornerRadius = 3;
+ [self.view addSubview:self.grabberView];
+
+ [self.grabberView size:CGSizeMake(40, 6)];
+ [self.grabberView x:self.view.centerXAnchor];
+ [self.grabberView top:self.view.topAnchor padding:10];
+
+ [self layoutViews];
+}
+
+
+-(void)layoutViews {
+
+ self.coverImage = [[UIImageView alloc] init];
+ self.coverImage.image = [UIImage imageNamed:@"cover"];
+ [self.view addSubview:self.coverImage];
+
+ [self.coverImage size:CGSizeMake(300, 147)];
+ [self.coverImage x:self.view.centerXAnchor];
+ [self.coverImage top:self.grabberView.bottomAnchor padding:20];
+
+
+ self.noButton = [[UIButton alloc] init];
+ self.noButton.backgroundColor = [UIColor.systemRedColor colorWithAlphaComponent:0.4];
+ self.noButton.layer.cornerRadius = 15;
+ self.noButton.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.noButton setTitle:@"NO" forState:UIControlStateNormal];
+ [self.noButton addTarget:self action:@selector(dontUseDefaultMemoji) forControlEvents:UIControlEventTouchUpInside];
+ [self.noButton setTitleColor:UIColor.systemRedColor forState:UIControlStateNormal];
+ [self.view addSubview:self.noButton];
+
+ [self.noButton size:CGSizeMake(self.view.frame.size.width-100, 50)];
+ [self.noButton x:self.view.centerXAnchor];
+ [self.noButton bottom:self.view.safeAreaLayoutGuide.bottomAnchor padding:-10];
+
+
+ self.yesButton = [[UIButton alloc] init];
+ self.yesButton.backgroundColor = [UIColor.systemBlueColor colorWithAlphaComponent:0.4];
+ self.yesButton.layer.cornerRadius = 15;
+ self.yesButton.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.yesButton setTitle:@"YES" forState:UIControlStateNormal];
+ [self.yesButton addTarget:self action:@selector(useDefaultMemoji) forControlEvents:UIControlEventTouchUpInside];
+ [self.yesButton setTitleColor:UIColor.systemBlueColor forState:UIControlStateNormal];
+ [self.view addSubview:self.yesButton];
+
+ [self.yesButton size:CGSizeMake(self.view.frame.size.width-100, 50)];
+ [self.yesButton x:self.view.centerXAnchor];
+ [self.yesButton bottom:self.noButton.topAnchor padding:-15];
+
+
+ self.textView = [[UITextView alloc] init];
+ self.textView.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.textView.textColor = UIColor.labelColor;
+ self.textView.text = @"Do you want to import existing Memoji that you’ve already created in iMessage? If yes then you won’t be able to create new Memoji in the Avatar app but you still can create new Memoji in iMessage then the Avatar app will load the newly created Memoji. If you choose no then you will need to create new Memoji within the app. Don’t worry you can switch between existing or new Memoji in the settings option.";
+ self.textView.editable = NO;
+ self.textView.layer.cornerRadius = 20;
+ self.textView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.textView.textContainerInset = UIEdgeInsetsMake(10, 10, 10, 10);
+ self.textView.font = [UIFont systemFontOfSize:22];
+ [self.view addSubview:self.textView];
+
+ [self.textView top:self.coverImage.bottomAnchor padding:25];
+ [self.textView leading:self.view.leadingAnchor padding:25];
+ [self.textView trailing:self.view.trailingAnchor padding:-25];
+ [self.textView bottom:self.yesButton.topAnchor padding:-25];
+}
+
+
+-(void)dontUseDefaultMemoji {
+
+ [[SettingManager sharedInstance] setBool:YES forKey:@"didShowDefaultMemojiOption"];
+ [[SettingManager sharedInstance] setBool:NO forKey:@"useDefaultMemoji"];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)useDefaultMemoji {
+
+ [[SettingManager sharedInstance] setBool:YES forKey:@"didShowDefaultMemojiOption"];
+ [[SettingManager sharedInstance] setBool:YES forKey:@"useDefaultMemoji"];
+ [self showAlertWithTitle:@"Existing Memoji" subtitle:@"Restarting is required, the app will now terminate and you will need to relaunch the Avatar app in order for it to load existing Memoji."];
+}
+
+
+-(void)showAlertWithTitle:(NSString *)title subtitle:(NSString *)subtitle {
+
+ UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:subtitle preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
+ [self dismissViewControllerAnimated:YES completion:nil];
+ //exit(0);
+ UIApplication *app = [UIApplication sharedApplication];
+ [app performSelector:@selector(suspend)];
+ [NSThread sleepForTimeInterval:1.0];
+ exit(0);
+ }];
+
+ [alert addAction:defaultAction];
+ [self presentViewController:alert animated:YES completion:nil];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Onboarding/RecordingOnboardingViewController.h b/Avatar/App/Avatar/Onboarding/RecordingOnboardingViewController.h
new file mode 100644
index 0000000..1d7f370
--- /dev/null
+++ b/Avatar/App/Avatar/Onboarding/RecordingOnboardingViewController.h
@@ -0,0 +1,10 @@
+#import
+#import "ConstraintExtension.h"
+#import "SettingManager.h"
+
+@interface RecordingOnboardingViewController : UIViewController
+@property (nonatomic, retain) UIView *grabberView;
+@property (nonatomic, retain) UIImageView *screenshot;
+@property (nonatomic, retain) UITextView *textView;
+@property (nonatomic, retain) UIButton *dismissButton;
+@end
diff --git a/Avatar/App/Avatar/Onboarding/RecordingOnboardingViewController.m b/Avatar/App/Avatar/Onboarding/RecordingOnboardingViewController.m
new file mode 100644
index 0000000..60b13e9
--- /dev/null
+++ b/Avatar/App/Avatar/Onboarding/RecordingOnboardingViewController.m
@@ -0,0 +1,71 @@
+#import "RecordingOnboardingViewController.h"
+
+@implementation RecordingOnboardingViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ self.grabberView = [[UIView alloc] init];
+ self.grabberView.backgroundColor = UIColor.tertiarySystemFillColor;
+ self.grabberView.layer.cornerRadius = 3;
+ [self.view addSubview:self.grabberView];
+
+ [self.grabberView size:CGSizeMake(40, 6)];
+ [self.grabberView x:self.view.centerXAnchor];
+ [self.grabberView top:self.view.topAnchor padding:10];
+
+ [self layoutScreenshotView];
+}
+
+
+-(void)layoutScreenshotView {
+
+ self.screenshot = [[UIImageView alloc] init];
+ self.screenshot.image = [UIImage imageNamed:@"recording-tutorial"];
+ [self.view addSubview:self.screenshot];
+
+ [self.screenshot size:CGSizeMake(self.view.frame.size.width-70, self.view.frame.size.width-70)];
+ [self.screenshot x:self.view.centerXAnchor];
+ [self.screenshot top:self.grabberView.bottomAnchor padding:20];
+
+
+ self.dismissButton = [[UIButton alloc] init];
+ self.dismissButton.backgroundColor = [UIColor.systemBlueColor colorWithAlphaComponent:0.4];
+ self.dismissButton.layer.cornerRadius = 15;
+ self.dismissButton.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.dismissButton setTitle:@"Continue" forState:UIControlStateNormal];
+ [self.dismissButton addTarget:self action:@selector(dismissVC) forControlEvents:UIControlEventTouchUpInside];
+ [self.dismissButton setTitleColor:UIColor.systemBlueColor forState:UIControlStateNormal];
+ [self.view addSubview:self.dismissButton];
+
+ [self.dismissButton size:CGSizeMake(self.view.frame.size.width-100, 50)];
+ [self.dismissButton x:self.view.centerXAnchor];
+ [self.dismissButton bottom:self.view.safeAreaLayoutGuide.bottomAnchor padding:-10];
+
+
+ self.textView = [[UITextView alloc] init];
+ self.textView.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.textView.textColor = UIColor.labelColor;
+ self.textView.text = @"The red border line is your recording area. Don’t put stickers or objects out of bounds otherwise they will not be in the actual video.";
+ self.textView.editable = NO;
+ self.textView.layer.cornerRadius = 20;
+ self.textView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.textView.textContainerInset = UIEdgeInsetsMake(10, 10, 10, 10);
+ self.textView.font = [UIFont systemFontOfSize:22];
+ [self.view addSubview:self.textView];
+
+ [self.textView top:self.screenshot.bottomAnchor padding:25];
+ [self.textView leading:self.view.leadingAnchor padding:25];
+ [self.textView trailing:self.view.trailingAnchor padding:-25];
+ [self.textView bottom:self.dismissButton.topAnchor padding:-25];
+}
+
+
+-(void)dismissVC {
+ [[SettingManager sharedInstance] setBool:YES forKey:@"didShowRecordingOnboarding"];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Preview/AvatarVideoPreviewViewController.h b/Avatar/App/Avatar/Preview/AvatarVideoPreviewViewController.h
new file mode 100644
index 0000000..52454f8
--- /dev/null
+++ b/Avatar/App/Avatar/Preview/AvatarVideoPreviewViewController.h
@@ -0,0 +1,20 @@
+#import
+#import
+#import
+#import "ConstraintExtension.h"
+#import "TDHeaderView.h"
+#import "RecordingButton.h"
+
+@interface AvatarVideoPreviewViewController : UIViewController
+@property (nonatomic, retain) TDHeaderView *headerView;
+@property (nonatomic, retain) NSURL *previouslyLoadedVideo;
+@property (nonatomic, strong) AVPlayer *player;
+@property (nonatomic, strong) AVPlayerLayer *videoLayer;
+@property (nonatomic, strong) UIView *videoView;
+@property (nonatomic, retain) NSURL *videoURL;
+@property (nonatomic, retain) NSString *videoName;
+@property (nonatomic, retain) UIButton *saveButton;
+@property (nonatomic, retain) UIButton *shareButton;
+@property (nonatomic, retain) RecordingButton *replayButton;
+@end
+
diff --git a/Avatar/App/Avatar/Preview/AvatarVideoPreviewViewController.m b/Avatar/App/Avatar/Preview/AvatarVideoPreviewViewController.m
new file mode 100644
index 0000000..baa206c
--- /dev/null
+++ b/Avatar/App/Avatar/Preview/AvatarVideoPreviewViewController.m
@@ -0,0 +1,232 @@
+#import "AvatarVideoPreviewViewController.h"
+
+@implementation AvatarVideoPreviewViewController
+
+- (void)viewDidAppear:(BOOL)animated {
+ [super viewDidAppear:animated];
+
+ [self _loadVideoIfNeeded];
+ [self generateThumbnail];
+}
+
+
+- (void)viewWillDisappear:(BOOL)animated {
+ [super viewWillDisappear:animated];
+
+ [self.player pause];
+ [self.player cancelPendingPrerolls];
+}
+
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ [self layoutHeaderView];
+ [self layoutVideoView];
+ [self layoutActionButton];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.player];
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[TDHeaderView alloc] initWithTitle:@"Preview" accent:UIColor.systemBlueColor leftIcon:@"xmark" leftAction:@selector(dismissVC)];
+ self.headerView.leftButton.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 75)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.safeAreaLayoutGuide.topAnchor padding:0];
+}
+
+
+- (void)layoutVideoView {
+
+ self.videoView = [UIView new];
+ self.videoView.layer.cornerRadius = 25;
+ self.videoView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.videoView.clipsToBounds = YES;
+ [self.view addSubview:self.videoView];
+
+ [self.videoView size:CGSizeMake(self.view.frame.size.width-40, self.view.frame.size.width-40)];
+ [self.videoView x:self.view.centerXAnchor];
+ [self.videoView top:self.headerView.bottomAnchor padding:30];
+}
+
+
+-(void)layoutActionButton {
+
+ self.saveButton = [[UIButton alloc] init];
+ self.saveButton.backgroundColor = [UIColor.systemBlueColor colorWithAlphaComponent:0.4];
+ self.saveButton.layer.cornerRadius = 15;
+ self.saveButton.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.saveButton setTitle:@"Save Video" forState:UIControlStateNormal];
+ [self.saveButton addTarget:self action:@selector(saveAvatarVideo) forControlEvents:UIControlEventTouchUpInside];
+ [self.saveButton setTitleColor:UIColor.systemBlueColor forState:UIControlStateNormal];
+ [self.view addSubview:self.saveButton];
+
+ [self.saveButton size:CGSizeMake(self.view.frame.size.width-100, 50)];
+ [self.saveButton x:self.view.centerXAnchor];
+ [self.saveButton top:self.videoView.bottomAnchor padding:25];
+
+
+ self.shareButton = [[UIButton alloc] init];
+ self.shareButton.backgroundColor = [UIColor.systemBlueColor colorWithAlphaComponent:0.4];
+ self.shareButton.layer.cornerRadius = 15;
+ self.shareButton.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.shareButton setTitle:@"Share Video" forState:UIControlStateNormal];
+ [self.shareButton addTarget:self action:@selector(shareAvatarVideo) forControlEvents:UIControlEventTouchUpInside];
+ [self.shareButton setTitleColor:UIColor.systemBlueColor forState:UIControlStateNormal];
+ [self.view addSubview:self.shareButton];
+
+ [self.shareButton size:CGSizeMake(self.view.frame.size.width-100, 50)];
+ [self.shareButton x:self.view.centerXAnchor];
+ [self.shareButton top:self.saveButton.bottomAnchor padding:15];
+
+
+ self.replayButton = [[RecordingButton alloc] initWithIcon:@"play.fill" accent:[UIColor.systemBlueColor colorWithAlphaComponent:0.6] action:@selector(togglePlaying)];
+ self.replayButton.layer.cornerRadius = 35;
+ self.replayButton.alpha = 0;
+ [self.view addSubview:self.replayButton];
+
+ [self.replayButton size:CGSizeMake(70, 70)];
+ [self.replayButton x:self.videoView.centerXAnchor y:self.videoView.centerYAnchor];
+}
+
+
+- (void)_loadVideoIfNeeded {
+
+ if (!self.videoURL || !self.isViewLoaded) return;
+
+ if ([self.previouslyLoadedVideo isEqual:self.videoURL]) return;
+
+ self.previouslyLoadedVideo = self.videoURL;
+
+ [self.videoLayer removeFromSuperlayer];
+ [self.player pause];
+ [self.player cancelPendingPrerolls];
+
+ self.player = [AVPlayer playerWithURL:self.videoURL];
+ self.videoLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
+
+ self.videoLayer.frame = self.videoView.bounds;
+ [self.videoView.layer addSublayer:self.videoLayer];
+
+ [self.player play];
+}
+
+
+-(void)togglePlaying {
+
+ [self.player play];
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ self.replayButton.alpha = 0;
+ });
+
+}
+
+
+-(void)saveAvatarVideo {
+
+ [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^ {
+ [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:self.videoURL];
+ } completionHandler:^(BOOL success, NSError *error) {
+ if (success) {
+ NSLog(@"Movie saved to camera roll.");
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [self showAlertWithTitle:@"Successful!" subtitle:@"The video was saved to your photo library."];
+ });
+ } else {
+ NSLog(@"Could not save movie to camera roll. Error: %@", error);
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [self showAlertWithTitle:@"Failed!" subtitle:@"The video failed to save to your photo library."];
+ });
+ }
+ }];
+
+}
+
+
+-(void)shareAvatarVideo {
+
+ if (!self.videoURL) return;
+
+ UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[self.videoURL] applicationActivities:nil];
+
+ [activityController setCompletionWithItemsHandler:^(UIActivityType _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
+ if (!completed || !activityType) return;
+ }];
+ [self presentViewController:activityController animated:YES completion:nil];
+}
+
+
+-(void)generateThumbnail {
+
+ NSArray *existingPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
+ YES);
+ NSString *documentsPath = [existingPath objectAtIndex:0];
+ NSString *myPath = [documentsPath stringByAppendingPathComponent:@"/Thumbnails"];
+
+ if (![[NSFileManager defaultManager] fileExistsAtPath:myPath]) {
+ [[NSFileManager defaultManager] createDirectoryAtPath:myPath withIntermediateDirectories:NO
+ attributes:nil error:NULL];
+ }
+
+
+ NSString *videoURLString = self.videoURL.absoluteString;
+
+ self.videoName = videoURLString.lastPathComponent;
+
+ NSURL *videoURL = [NSURL fileURLWithPath:videoURLString];
+
+ AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
+ AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
+ generator.appliesPreferredTrackTransform = YES;
+
+ NSError *err = NULL;
+ CMTime thumbTime = CMTimeMakeWithSeconds(0,02);
+ CGSize maxSize = CGSizeMake(425,425);
+ generator.maximumSize = maxSize;
+
+ CGImageRef imgRef = [generator copyCGImageAtTime:thumbTime actualTime:NULL error:&err];
+ UIImage *thumbnail = [[UIImage alloc] initWithCGImage:imgRef];
+
+ NSData *data = UIImagePNGRepresentation(thumbnail);
+
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString *newFileName = [NSString stringWithFormat:@"/Thumbnails/%@.png", self.videoName];
+
+ NSString *dirs = [documentsDirectory stringByAppendingPathComponent:newFileName];
+
+ [data writeToFile:dirs atomically:YES];
+
+}
+
+
+-(void)dismissVC {
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)showAlertWithTitle:(NSString *)title subtitle:(NSString *)subtitle {
+
+ UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:subtitle preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
+ }];
+
+ [alert addAction:defaultAction];
+ [self presentViewController:alert animated:YES completion:nil];
+}
+
+
+-(void)itemDidFinishPlaying:(NSNotification *) notification {
+ [self.player seekToTime:kCMTimeZero];
+ self.replayButton.alpha = 1;
+}
+
+@end
diff --git a/Avatar/App/Avatar/Recording/RecordingActionMenuCell.h b/Avatar/App/Avatar/Recording/RecordingActionMenuCell.h
new file mode 100644
index 0000000..19f356f
--- /dev/null
+++ b/Avatar/App/Avatar/Recording/RecordingActionMenuCell.h
@@ -0,0 +1,10 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface RecordingActionMenuCell : UICollectionViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UIView *iconView;
+@property (nonatomic, retain) UIImageView *iconImage;
+@property (nonatomic, retain) UILabel *titleLabel;
+@end
+
diff --git a/Avatar/App/Avatar/Recording/RecordingActionMenuCell.m b/Avatar/App/Avatar/Recording/RecordingActionMenuCell.m
new file mode 100644
index 0000000..cf1c8a3
--- /dev/null
+++ b/Avatar/App/Avatar/Recording/RecordingActionMenuCell.m
@@ -0,0 +1,59 @@
+#import "RecordingActionMenuCell.h"
+
+@implementation RecordingActionMenuCell
+
+- (instancetype)initWithFrame:(CGRect)frame {
+
+ self = [super initWithFrame:frame];
+ if (self) {
+
+ self.baseView = [[UIView alloc] init];
+ self.baseView.backgroundColor = UIColor.clearColor;
+ [self addSubview:self.baseView];
+
+ [self.baseView top:self.topAnchor padding:0];
+ [self.baseView leading:self.leadingAnchor padding:0];
+ [self.baseView trailing:self.trailingAnchor padding:0];
+ [self.baseView bottom:self.bottomAnchor padding:0];
+
+
+ self.iconView = [[UIView alloc] init];
+ self.iconView.layer.cornerRadius = 10;
+ self.iconView.layer.cornerCurve = kCACornerCurveContinuous;
+ [self.baseView addSubview:self.iconView];
+
+ [self.iconView size:CGSizeMake(50, 50)];
+ [self.iconView x:self.baseView.centerXAnchor];
+ [self.iconView top:self.baseView.topAnchor padding:0];
+
+
+ self.iconImage = [[UIImageView alloc] init];
+ self.iconImage.contentMode = UIViewContentModeScaleAspectFit;
+ [self.iconView addSubview:self.iconImage];
+
+ [self.iconImage size:CGSizeMake(30, 30)];
+ [self.iconImage x:self.iconView.centerXAnchor y:self.iconView.centerYAnchor];
+
+
+ self.titleLabel = [[UILabel alloc] init];
+ self.titleLabel.textColor = UIColor.labelColor;
+ self.titleLabel.font = [UIFont systemFontOfSize:9 weight:UIFontWeightRegular];
+ self.titleLabel.textAlignment = NSTextAlignmentCenter;
+ [self.baseView addSubview:self.titleLabel];
+
+ [self.titleLabel top:self.iconView.bottomAnchor padding:3];
+ [self.titleLabel x:self.baseView.centerXAnchor];
+
+ }
+
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+ self.iconImage.image = nil;
+ self.titleLabel.text = nil;
+}
+
+@end
diff --git a/Avatar/App/Avatar/Recording/RecordingStudioViewController.h b/Avatar/App/Avatar/Recording/RecordingStudioViewController.h
new file mode 100644
index 0000000..af4355e
--- /dev/null
+++ b/Avatar/App/Avatar/Recording/RecordingStudioViewController.h
@@ -0,0 +1,31 @@
+#import
+#import "RecordingManager.h"
+#import "AVTAnimoji.h"
+#import "AvatarMotionView.h"
+#import "AvatarVideoPreviewViewController.h"
+#import "ConstraintExtension.h"
+#import "TDHeaderView.h"
+#import "RecordingActionMenuCell.h"
+#import "RecordingButton.h"
+#import "TDStickerPickerViewController.h"
+#import "StickerView.h"
+#import "SettingManager.h"
+#import "RecordingOnboardingViewController.h"
+
+@interface RecordingStudioViewController : UIViewController
+@property (nonatomic, copy) NSString *puppetName;
+@property (nonatomic, strong) id avatar;
+@property (nonatomic, strong) RecordingManager *recordingManager;
+@property (nonatomic, strong) AvatarMotionView *avatarMotionView;
+@property (nonatomic, strong) AVTAnimoji *puppet;
+@property (nonatomic, strong) AVTAvatarInstance *avatarInstance;
+@property (nonatomic, retain) UIImageView *wallpaper;
+@property (nonatomic, retain) TDHeaderView *headerView;
+@property (nonatomic, retain) UIView *actionView;
+@property (nonatomic, retain) UICollectionView *collectionView;
+@property (nonatomic, retain) NSTimer *timer;
+@property (nonatomic, retain) RecordingButton *stopButton;
+@property (strong, nonatomic) StickerView *selectedSticker;
+@property (strong,nonatomic) UIDynamicAnimator *animator;
+@property (nonatomic) NSInteger numberOfStickers;
+@end
diff --git a/Avatar/App/Avatar/Recording/RecordingStudioViewController.m b/Avatar/App/Avatar/Recording/RecordingStudioViewController.m
new file mode 100755
index 0000000..bc931a3
--- /dev/null
+++ b/Avatar/App/Avatar/Recording/RecordingStudioViewController.m
@@ -0,0 +1,526 @@
+#import "RecordingStudioViewController.h"
+
+
+@implementation RecordingStudioViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ [self layoutWallpaper];
+ [self layoutAvatarMotionView];
+ [self layoutHeaderView];
+ [self layoutActionView];
+ [self layoutStickerTools];
+ [self layoutCollectionView];
+
+ BOOL showOnboarding = [[SettingManager sharedInstance] boolForKey:@"didShowRecordingOnboarding" defaultValue:NO];
+
+ if (!showOnboarding) {
+ [self presentOnboarding];
+ }
+}
+
+
+-(void)layoutWallpaper {
+
+ self.wallpaper = [[UIImageView alloc] init];
+ self.wallpaper.contentMode = UIViewContentModeScaleAspectFill;
+ self.wallpaper.clipsToBounds = YES;
+ self.wallpaper.alpha = 0;
+ [self.view addSubview:self.wallpaper];
+
+ [self.wallpaper fill];
+}
+
+
+- (void)layoutAvatarMotionView {
+
+ if (self.avatarMotionView) return;
+
+ self.avatarMotionView = [[AvatarMotionView alloc] init];
+ self.avatarMotionView.alpha = 0;
+ self.avatarMotionView.frame = self.view.bounds;
+ self.avatarMotionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
+ self.avatarMotionView.backgroundColor = [UIColor colorNamed:@"Primary"];
+ [self.view addSubview:self.avatarMotionView];
+
+
+ if (self.avatarInstance) [self.avatarMotionView setAvatar:self.avatarInstance];
+
+ [self.avatarMotionView resetTracking];
+
+ [UIView animateWithDuration:0.3 animations:^{
+ self.avatarMotionView.alpha = 1;
+ }];
+
+}
+
+
+- (void)setPuppetName:(NSString *)puppetName {
+ _puppetName = [puppetName copy];
+ self.avatarInstance = (AVTAvatarInstance *)[AVTAnimoji animojiNamed:_puppetName];
+}
+
+
+- (void)setAvatar:(id)avatar {
+ self.avatarInstance = (AVTAvatarInstance *)avatar;
+}
+
+
+- (void)setAvatarInstance:(AVTAvatarInstance *)avatarInstance {
+ _avatarInstance = avatarInstance;
+ [self.avatarMotionView setAvatar:_avatarInstance];
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[TDHeaderView alloc] initWithTitle:@"Studio" accent:UIColor.systemBlueColor leftIcon:@"chevron.left" leftAction:@selector(dismissVC)];
+ self.headerView.grabberView.alpha = 0;
+ self.headerView.leftButton.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 55)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.safeAreaLayoutGuide.topAnchor padding:0];
+}
+
+-(void)layoutActionView {
+
+ self.actionView = [[UIView alloc] init];
+ self.actionView.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.actionView.layer.cornerRadius = 25;
+ self.actionView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.actionView.layer.maskedCorners = 3;
+ [self.view addSubview:self.actionView];
+
+ [self.actionView size:CGSizeMake(self.view.frame.size.width, 130)];
+ [self.actionView x:self.view.centerXAnchor];
+ [self.actionView bottom:self.view.bottomAnchor padding:0];
+
+
+ self.stopButton = [[RecordingButton alloc] initWithIcon:@"stop.fill" accent:UIColor.systemRedColor action:@selector(stopRecording)];
+ self.stopButton.layer.cornerRadius = 35;
+ self.stopButton.alpha = 0;
+ [self.actionView addSubview:self.stopButton];
+
+ [self.stopButton size:CGSizeMake(70, 70)];
+ [self.stopButton x:self.actionView.centerXAnchor y:self.actionView.centerYAnchor];
+
+}
+
+
+-(void)layoutCollectionView {
+
+ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
+ layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
+ self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
+ self.collectionView.backgroundColor = UIColor.clearColor;
+ self.collectionView.translatesAutoresizingMaskIntoConstraints = NO;
+ self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ [self.collectionView setShowsHorizontalScrollIndicator:NO];
+ [self.collectionView setShowsVerticalScrollIndicator:NO];
+ [self.collectionView registerClass:[RecordingActionMenuCell class] forCellWithReuseIdentifier:@"Cell"];
+ [self.actionView addSubview:self.collectionView];
+
+ [self.collectionView height:80];
+ [self.collectionView width:300];
+ [self.collectionView x:self.actionView.centerXAnchor];
+ [self.collectionView top:self.actionView.topAnchor padding:15];
+
+
+ self.collectionView.delegate = self;
+ self.collectionView.dataSource = self;
+}
+
+
+- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
+ return 5;
+}
+
+
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
+
+ RecordingActionMenuCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
+
+ cell.backgroundColor = UIColor.clearColor;
+
+ if (indexPath.row == 0) {
+
+ cell.iconView.backgroundColor = [UIColor.systemRedColor colorWithAlphaComponent:0.3];
+ cell.iconImage.image = [UIImage systemImageNamed:@"record.circle"];
+ cell.iconImage.tintColor = UIColor.systemRedColor;
+ cell.titleLabel.text = @"Record";
+
+ } else if (indexPath.row == 1) {
+
+ cell.iconView.backgroundColor = [UIColor.systemYellowColor colorWithAlphaComponent:0.3];
+ cell.iconImage.image = [UIImage systemImageNamed:@"photo.fill"];
+ cell.iconImage.tintColor = UIColor.systemYellowColor;
+ cell.titleLabel.text = @"Wallpaper";
+
+ } else if (indexPath.row == 2) {
+
+ cell.iconView.backgroundColor = [UIColor.systemOrangeColor colorWithAlphaComponent:0.3];
+ cell.iconImage.image = [UIImage systemImageNamed:@"paintpalette.fill"];
+ cell.iconImage.tintColor = UIColor.systemOrangeColor;
+ cell.titleLabel.text = @"Colour";
+
+ } else if (indexPath.row == 3) {
+
+ cell.iconView.backgroundColor = [UIColor.systemIndigoColor colorWithAlphaComponent:0.3];
+ cell.iconImage.image = [UIImage systemImageNamed:@"face.smiling.fill"];
+ cell.iconImage.tintColor = UIColor.systemIndigoColor;
+ cell.titleLabel.text = @"Stickers";
+
+ } else if (indexPath.row == 4) {
+
+ cell.iconView.backgroundColor = [UIColor.systemRedColor colorWithAlphaComponent:0.3];
+ cell.iconImage.image = [UIImage systemImageNamed:@"trash.fill"];
+ cell.iconImage.tintColor = UIColor.systemRedColor;
+ cell.titleLabel.text = @"Reset";
+
+ }
+
+ return cell;
+}
+
+
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
+ return CGSizeMake(50, 80);
+}
+
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
+ return 10.0;
+}
+
+- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
+ return 10.0;
+}
+
+
+- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
+
+ if (indexPath.row == 0) {
+ [self prepareRecording];
+ } else if (indexPath.row == 1) {
+ [self presentImagePickerVC];
+ } else if (indexPath.row == 2) {
+ [self presentColourPickerVC];
+ } else if (indexPath.row == 3) {
+ [self presentStickersPickerVC];
+ } else if (indexPath.row == 4) {
+ [self reset];
+ }
+}
+
+
+-(void)layoutStickerTools {
+
+ self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
+
+ UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapBackground:)];
+ [tapRecognizer setNumberOfTapsRequired:1];
+ [self.avatarMotionView addGestureRecognizer:tapRecognizer];
+}
+
+
+-(void)prepareRecording {
+
+ [self.avatarMotionView resetTracking];
+
+ if (self.recordingManager.isRecording) {
+ [self stopRecording];
+ } else {
+ [self startRecording];
+ }
+
+ if (!self.timer) {
+ self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(checkRecordingStatus) userInfo:nil repeats:YES];
+ }
+
+}
+
+
+-(void)checkRecordingStatus {
+
+ if (self.recordingManager.isRecording) {
+ self.collectionView.alpha = 0;
+ self.stopButton.alpha = 1;
+ } else {
+ self.collectionView.alpha = 1;
+ self.stopButton.alpha = 0;
+ }
+
+}
+
+
+- (void)startRecording {
+
+ self.recordingManager = [RecordingManager new];
+ self.recordingManager.delegate = self;
+
+ [RPScreenRecorder sharedRecorder].microphoneEnabled = YES;
+
+ if (![[NSUserDefaults standardUserDefaults] boolForKey:@"ASDemoMode"]) {
+ [self.recordingManager startRecordingWithAudio:YES frontCameraPreview:NO];
+ }
+
+ [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
+}
+
+
+- (void)stopRecording {
+
+ [self.recordingManager stopRecording];
+
+ [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
+
+ [self.timer invalidate];
+ self.timer = nil;
+
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ [UIView animateWithDuration:0.2f animations:^{
+ self.collectionView.alpha = 1;
+ self.stopButton.alpha = 0;
+ }];
+ });
+}
+
+
+- (void)recordingManager:(RecordingManager *)coordinator recordingDidFailWithError:(NSError *)error {
+ NSString *errorMessage = (error.localizedDescription) ? error.localizedDescription : @"Unknown error";
+ NSString *message = [NSString stringWithFormat:@"Sorry, the recording failed.\n%@", errorMessage];
+ NSLog(@"%@%@", errorMessage, message);
+}
+
+
+- (void)recordingManager:(RecordingManager *)coordinator wantsToPresentRecordingPreviewWithController:(__kindof UIViewController *)previewController {
+}
+
+
+- (void)recordingManagerDidFinishRecording:(RecordingManager *)coordinator {
+
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+ AvatarVideoPreviewViewController *vc = [[AvatarVideoPreviewViewController alloc] init];
+ vc.videoURL = self.recordingManager.videoURL;
+ [self.navigationController presentViewController:vc animated:YES completion:nil];
+ });
+
+}
+
+
+-(void)presentImagePickerVC {
+ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
+ imagePickerController.delegate = self;
+ imagePickerController.allowsEditing = false;
+ imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
+ [self presentViewController:imagePickerController animated:YES completion:nil];
+}
+
+
+-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(nonnull NSDictionary *)info {
+
+ self.avatarMotionView.backgroundColor = UIColor.clearColor;
+ self.wallpaper.alpha = 1;
+ self.wallpaper.image = info[UIImagePickerControllerOriginalImage];
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
+ [self dismissViewControllerAnimated:YES completion:nil];
+}
+
+
+-(void)presentColourPickerVC {
+ UIColorPickerViewController *colourPickerVC = [[UIColorPickerViewController alloc] init];
+ colourPickerVC.delegate = self;
+ colourPickerVC.selectedColor = self.avatarMotionView.backgroundColor;
+ colourPickerVC.supportsAlpha = NO;
+ [self presentViewController:colourPickerVC animated:YES completion:nil];
+}
+
+
+- (void)colorPickerViewControllerDidSelectColor:(UIColorPickerViewController *)viewController{
+ self.wallpaper.alpha = 0;
+ UIColor *cpSelectedColour = viewController.selectedColor;
+ self.avatarMotionView.backgroundColor = cpSelectedColour;
+}
+
+
+- (void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController{
+ self.wallpaper.alpha = 0;
+ UIColor *cpSelectedColour = viewController.selectedColor;
+ self.avatarMotionView.backgroundColor = cpSelectedColour;
+}
+
+
+-(void)presentStickersPickerVC {
+
+ if (self.numberOfStickers == 5) {
+ [self showAlertWithTitle:@"Sorry!" subtitle:@"You can only use up to 5 stickers 🙁"];
+ } else {
+
+ TDStickerPickerViewController *vc = [[TDStickerPickerViewController alloc] init];
+ vc.delegate = self;
+ [self presentViewController:vc animated:YES completion:nil];
+
+ }
+
+}
+
+
+- (void)didDismissedStickersPicker {
+}
+
+
+- (void)didSelectSticker:(NSString *)sticker {
+
+ NSInteger add = self.numberOfStickers+1;
+ self.numberOfStickers = add;
+
+ StickerView *stickerView = [[StickerView alloc] initWithContentFrame:CGRectMake(0, 0, 150, 150) contentImage:[UIImage imageNamed:sticker]];
+ stickerView.center = self.view.center;
+ stickerView.enabledControl = NO;
+ stickerView.enabledBorder = NO;
+ stickerView.delegate = self;
+ stickerView.tag = self.numberOfStickers;
+ [self.view addSubview:stickerView];
+}
+
+
+- (void)stickerViewDidTapDeleteControl:(StickerView *)stickerView {
+ NSInteger sub = self.numberOfStickers-1;
+ self.numberOfStickers = sub;
+}
+
+
+- (void)stickerViewDidTapContentView:(StickerView *)stickerView {
+
+ if (self.selectedSticker) {
+ self.selectedSticker.enabledBorder = NO;
+ self.selectedSticker.enabledControl = NO;
+ }
+ self.selectedSticker = stickerView;
+ self.selectedSticker.enabledBorder = YES;
+ self.selectedSticker.enabledControl = YES;
+}
+
+
+- (void)tapBackground:(UITapGestureRecognizer *)recognizer {
+ if (self.selectedSticker) {
+ self.selectedSticker.enabledControl = NO;
+ self.selectedSticker.enabledBorder = NO;
+ self.selectedSticker = nil;
+ }
+}
+
+
+- (UIImage *)stickerView:(StickerView *)stickerView imageForRightTopControl:(CGSize)recommendedSize {
+ return [UIImage imageNamed:@"btn_smile"];
+}
+
+
+- (UIImage *)stickerView:(StickerView *)stickerView imageForLeftBottomControl:(CGSize)recommendedSize {
+ return [UIImage imageNamed:@"btn_flip"];
+}
+
+
+- (void)stickerViewDidTapLeftBottomControl:(StickerView *)stickerView {
+ UIImageOrientation targetOrientation = (stickerView.contentImage.imageOrientation == UIImageOrientationUp ? UIImageOrientationUpMirrored : UIImageOrientationUp);
+ UIImage *invertImage = [UIImage imageWithCGImage:stickerView.contentImage.CGImage scale:1.0 orientation:targetOrientation];
+ stickerView.contentImage = invertImage;
+}
+
+
+- (void)stickerViewDidTapRightTopControl:(StickerView *)stickerView {
+ [_animator removeAllBehaviors];
+ UISnapBehavior * snapbehavior = [[UISnapBehavior alloc] initWithItem:stickerView snapToPoint:self.view.center];
+ snapbehavior.damping = 0.65;
+ [self.animator addBehavior:snapbehavior];
+}
+
+
+-(void)reset {
+
+ self.wallpaper.alpha = 0;
+ [self.avatarMotionView resetTracking];
+ self.avatarMotionView.backgroundColor = [UIColor colorNamed:@"Primary"];
+
+ for (UIView *subView in self.view.subviews) {
+ if ([subView isKindOfClass:[StickerView class]]) {
+ [subView removeFromSuperview];
+ }
+ }
+
+ self.numberOfStickers = 0;
+
+}
+
+
+-(void)dismissVC {
+ [self.navigationController popToRootViewControllerAnimated:YES];
+}
+
+
+-(void)showAlertWithTitle:(NSString *)title subtitle:(NSString *)subtitle {
+
+ UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:subtitle preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
+
+ }];
+
+ [alert addAction:defaultAction];
+ [self presentViewController:alert animated:YES completion:nil];
+}
+
+
+-(void)presentOnboarding {
+ RecordingOnboardingViewController *vc = [[RecordingOnboardingViewController alloc] init];
+ vc.modalInPresentation = YES;
+ [self presentViewController:vc animated:YES completion:nil];
+}
+
+
+//-(void)testMethod {
+//
+//// CGRect frames = CGRectMake(0, 0, 200, 200);
+//
+// CGRect frames = CGRectMake(0, 90, self.view.frame.size.width, self.view.frame.size.height-90);
+//
+// UIViewController *vc = [[UIViewController alloc] init];
+//
+// vc.view.backgroundColor = UIColor.whiteColor;
+//
+// UIImageView *img = [[UIImageView alloc] initWithFrame:frames];
+// //img.image = [self getScreenShot:frames];
+//
+// UIImage *image2 = [self.avatarMotionView snapshot];
+// img.image = image2;
+//
+// [vc.view addSubview:img];
+//
+// [self presentViewController:vc animated:YES completion:nil];
+//
+//}
+
+
+//- (UIImage *)getScreenShot:(CGRect)captureFrame {
+// //UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
+// CGRect rect = captureFrame;
+// //UIGraphicsBeginImageContextWithOptions(rect.size, self.view.opaque, 0.0);
+// //UIGraphicsBeginImageContext(rect.size);
+// UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
+// CGContextRef context = UIGraphicsGetCurrentContext();
+// [self.view.layer renderInContext:context];
+// UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
+// UIGraphicsEndImageContext();
+// return img;
+//}
+
+@end
diff --git a/Avatar/App/Avatar/Settings/SettingsViewController.h b/Avatar/App/Avatar/Settings/SettingsViewController.h
new file mode 100644
index 0000000..9a16d8f
--- /dev/null
+++ b/Avatar/App/Avatar/Settings/SettingsViewController.h
@@ -0,0 +1,10 @@
+#import
+#import "ConstraintExtension.h"
+#import "TDHeaderView.h"
+#import "SocialCell.h"
+#import "SwitchCell.h"
+
+@interface SettingsViewController : UIViewController
+@property (nonatomic, retain) TDHeaderView *headerView;
+@property (nonatomic, retain) UITableView *tableView;
+@end
diff --git a/Avatar/App/Avatar/Settings/SettingsViewController.m b/Avatar/App/Avatar/Settings/SettingsViewController.m
new file mode 100644
index 0000000..2b8061b
--- /dev/null
+++ b/Avatar/App/Avatar/Settings/SettingsViewController.m
@@ -0,0 +1,194 @@
+#import "SettingsViewController.h"
+
+
+@implementation SettingsViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ self.view.backgroundColor = [UIColor colorNamed:@"Primary"];
+ [self layoutHeaderView];
+ [self layoutTableView];
+}
+
+
+-(void)layoutHeaderView {
+
+ self.headerView = [[TDHeaderView alloc] initWithTitle:@"Settings" accent:UIColor.systemBlueColor leftIcon:@"chevron.left" leftAction:@selector(dismissVC)];
+ self.headerView.grabberView.alpha = 0;
+ self.headerView.leftButton.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ [self.view addSubview:self.headerView];
+
+ [self.headerView size:CGSizeMake(self.view.frame.size.width, 55)];
+ [self.headerView x:self.view.centerXAnchor];
+ [self.headerView top:self.view.safeAreaLayoutGuide.topAnchor padding:0];
+}
+
+
+-(void)layoutTableView {
+
+ self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleInsetGrouped];
+ self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ self.tableView.editing = NO;
+ self.tableView.backgroundColor = UIColor.clearColor;
+ [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
+ self.tableView.showsVerticalScrollIndicator = NO;
+ [self.view addSubview:self.tableView];
+
+ self.tableView.dataSource = self;
+ self.tableView.delegate = self;
+
+ [self.tableView top:self.headerView.bottomAnchor padding:20];
+ [self.tableView leading:self.view.leadingAnchor padding:0];
+ [self.tableView trailing:self.view.trailingAnchor padding:0];
+ [self.tableView bottom:self.view.bottomAnchor padding:0];
+}
+
+
+-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ return 2;
+}
+
+
+- (NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ if (section == 0) {
+ return 1;
+ } else {
+ return 3;
+ }
+}
+
+
+- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
+ return 35.0f;
+}
+
+
+- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
+
+ UIView *sectionHeaderView = [[UIView alloc] initWithFrame:CGRectMake(15, 0, tableView.frame.size.width -15, 45)];
+ sectionHeaderView.backgroundColor = UIColor.clearColor;
+ sectionHeaderView.layer.cornerRadius = 15;
+ sectionHeaderView.clipsToBounds = true;
+
+ UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, sectionHeaderView.frame.size.height /2 -9, 200, 18)];
+ headerLabel.backgroundColor = [UIColor clearColor];
+ headerLabel.textColor = UIColor.tertiaryLabelColor;
+ headerLabel.textAlignment = NSTextAlignmentLeft;
+ headerLabel.font = [UIFont boldSystemFontOfSize:16];
+ [sectionHeaderView addSubview:headerLabel];
+
+ if (section == 0) {
+ headerLabel.text = @"General";
+ } else {
+ headerLabel.text = @"Social";
+ }
+
+ return sectionHeaderView;
+}
+
+
+- (UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
+
+ if (indexPath.section == 0) {
+
+ SwitchCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
+
+ if (cell == nil) {
+ cell = [[SwitchCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
+ }
+
+
+ UIView *selectionView = [UIView new];
+ selectionView.backgroundColor = UIColor.clearColor;
+ [[UITableViewCell appearance] setSelectedBackgroundView:selectionView];
+ cell.backgroundColor = UIColor.clearColor;
+
+
+ cell.iconView.backgroundColor = [UIColor.systemIndigoColor colorWithAlphaComponent:0.4];
+ cell.iconImage.image = [UIImage systemImageNamed:@"face.smiling.fill"];
+ cell.iconImage.tintColor = UIColor.systemIndigoColor;
+ cell.titleLabel.text = @"Memoji";
+ cell.subtitleLabel.text = @"Import existing Memoji";
+
+
+ return cell;
+
+ } else {
+
+ SocialCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
+
+ if (cell == nil) {
+ cell = [[SocialCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
+ }
+
+ UIView *selectionView = [UIView new];
+ selectionView.backgroundColor = UIColor.clearColor;
+ [[UITableViewCell appearance] setSelectedBackgroundView:selectionView];
+ cell.backgroundColor = UIColor.clearColor;
+
+
+ if (indexPath.row == 0) {
+
+ cell.iconView.backgroundColor = [UIColor.systemTealColor colorWithAlphaComponent:0.4];
+ cell.iconImage.image = [[UIImage imageNamed:@"twitter"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
+ cell.iconImage.tintColor = UIColor.systemTealColor;
+ cell.titleLabel.text = @"Twitter";
+ cell.subtitleLabel.text = @"Follow us on Twitter";
+
+ } else if (indexPath.row == 1) {
+
+ cell.iconView.backgroundColor = [UIColor.systemYellowColor colorWithAlphaComponent:0.4];
+ cell.iconImage.image = [[UIImage imageNamed:@"discord"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
+ cell.iconImage.tintColor = UIColor.systemYellowColor;
+ cell.titleLabel.text = @"Discord";
+ cell.subtitleLabel.text = @"Chat with us";
+
+ } else if (indexPath.row == 2) {
+
+ cell.iconView.backgroundColor = [UIColor.systemOrangeColor colorWithAlphaComponent:0.4];
+ cell.iconImage.image = [[UIImage imageNamed:@"paypal"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
+ cell.iconImage.tintColor = UIColor.systemOrangeColor;
+ cell.titleLabel.text = @"PayPal";
+ cell.subtitleLabel.text = @"Any donation is greatly appreciated";
+
+ }
+
+ return cell;
+ }
+
+}
+
+
+-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+ return 75;
+}
+
+
+-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
+
+ UIApplication *application = [UIApplication sharedApplication];
+
+ if (indexPath.section == 1) {
+
+ if (indexPath.row == 0) {
+ NSURL *URL = [NSURL URLWithString:@"https://twitter.com/D3vTitan"];
+ [application openURL:URL options:@{} completionHandler:nil];
+ } else if (indexPath.row == 1) {
+ NSURL *URL = [NSURL URLWithString:@"https://discord.gg/Kk4KYpZ528"];
+ [application openURL:URL options:@{} completionHandler:nil];
+ } else if (indexPath.row == 2) {
+ NSURL *URL = [NSURL URLWithString:@"https://paypal.me/southerngirlwhocode"];
+ [application openURL:URL options:@{} completionHandler:nil];
+ }
+
+ }
+}
+
+
+-(void)dismissVC {
+ [self.navigationController popToRootViewControllerAnimated:YES];
+}
+
+@end
diff --git a/Avatar/App/Avatar/Settings/SocialCell.h b/Avatar/App/Avatar/Settings/SocialCell.h
new file mode 100644
index 0000000..9263615
--- /dev/null
+++ b/Avatar/App/Avatar/Settings/SocialCell.h
@@ -0,0 +1,11 @@
+#import
+#import "ConstraintExtension.h"
+
+@interface SocialCell : UITableViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UIView *iconView;
+@property (nonatomic, retain) UIImageView *iconImage;
+@property (nonatomic, retain) UILabel *titleLabel;
+@property (nonatomic, retain) UILabel *subtitleLabel;
+@end
+
diff --git a/Avatar/App/Avatar/Settings/SocialCell.m b/Avatar/App/Avatar/Settings/SocialCell.m
new file mode 100644
index 0000000..abbf4d6
--- /dev/null
+++ b/Avatar/App/Avatar/Settings/SocialCell.m
@@ -0,0 +1,77 @@
+#import "SocialCell.h"
+
+@implementation SocialCell
+
+-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+
+ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+
+ if (self) {
+
+ self.baseView = [[UIView alloc] init];
+ self.baseView.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.baseView.layer.cornerRadius = 15;
+ self.baseView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.baseView.clipsToBounds = true;
+ [self addSubview:self.baseView];
+
+ [self.baseView top:self.topAnchor padding:5];
+ [self.baseView leading:self.leadingAnchor padding:5];
+ [self.baseView trailing:self.trailingAnchor padding:-5];
+ [self.baseView bottom:self.bottomAnchor padding:-5];
+
+
+ self.iconView = [[UIView alloc] init];
+ self.iconView.layer.cornerRadius = 10;
+ self.iconView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.iconView.clipsToBounds = YES;
+ [self.baseView addSubview:self.iconView];
+
+ [self.iconView size:CGSizeMake(40, 40)];
+ [self.iconView y:self.baseView.centerYAnchor];
+ [self.iconView leading:self.baseView.leadingAnchor padding:10];
+
+
+ self.iconImage = [[UIImageView alloc] init];
+ [self.iconView addSubview:self.iconImage];
+
+ [self.iconImage size:CGSizeMake(30, 30)];
+ [self.iconImage x:self.iconView.centerXAnchor y:self.iconView.centerYAnchor];
+
+
+ self.titleLabel = [[UILabel alloc] init];
+ self.titleLabel.textAlignment = NSTextAlignmentLeft;
+ self.titleLabel.font = [UIFont systemFontOfSize:16];
+ self.titleLabel.textColor = UIColor.labelColor;
+ [self.baseView addSubview:self.titleLabel];
+
+ [self.titleLabel leading:self.iconView.trailingAnchor padding:10];
+ [self.titleLabel top:self.iconView.topAnchor padding:2];
+ [self.titleLabel trailing:self.baseView.trailingAnchor padding:-10];
+
+
+ self.subtitleLabel = [[UILabel alloc] init];
+ self.subtitleLabel.textAlignment = NSTextAlignmentLeft;
+ self.subtitleLabel.font = [UIFont systemFontOfSize:13];
+ self.subtitleLabel.textColor = UIColor.tertiaryLabelColor;
+ [self.baseView addSubview:self.subtitleLabel];
+
+ [self.subtitleLabel leading:self.iconView.trailingAnchor padding:10];
+ [self.subtitleLabel bottom:self.iconView.bottomAnchor padding:-2];
+ [self.subtitleLabel trailing:self.baseView.trailingAnchor padding:-10];
+
+ }
+
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+
+ self.iconImage.image = nil;
+ self.titleLabel.text = nil;
+ self.subtitleLabel.text = nil;
+}
+
+@end
diff --git a/Avatar/App/Avatar/Settings/SwitchCell.h b/Avatar/App/Avatar/Settings/SwitchCell.h
new file mode 100644
index 0000000..3d70f4b
--- /dev/null
+++ b/Avatar/App/Avatar/Settings/SwitchCell.h
@@ -0,0 +1,13 @@
+#import
+#import "ConstraintExtension.h"
+#import "SettingManager.h"
+
+@interface SwitchCell : UITableViewCell
+@property (nonatomic, retain) UIView *baseView;
+@property (nonatomic, retain) UIView *iconView;
+@property (nonatomic, retain) UIImageView *iconImage;
+@property (nonatomic, retain) UILabel *titleLabel;
+@property (nonatomic, retain) UILabel *subtitleLabel;
+@property (nonatomic, retain) UISwitch *toggleSwitch;
+@end
+
diff --git a/Avatar/App/Avatar/Settings/SwitchCell.m b/Avatar/App/Avatar/Settings/SwitchCell.m
new file mode 100644
index 0000000..afa559c
--- /dev/null
+++ b/Avatar/App/Avatar/Settings/SwitchCell.m
@@ -0,0 +1,98 @@
+#import "SwitchCell.h"
+
+@implementation SwitchCell
+
+-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
+
+ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+
+ if (self) {
+
+ BOOL useDefaultMemoji = [[SettingManager sharedInstance] boolForKey:@"useDefaultMemoji" defaultValue:NO];
+
+ self.baseView = [[UIView alloc] init];
+ self.baseView.backgroundColor = [UIColor colorNamed:@"Secondary"];
+ self.baseView.layer.cornerRadius = 15;
+ self.baseView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.baseView.clipsToBounds = true;
+ [self addSubview:self.baseView];
+
+ [self.baseView top:self.topAnchor padding:5];
+ [self.baseView leading:self.leadingAnchor padding:5];
+ [self.baseView trailing:self.trailingAnchor padding:-5];
+ [self.baseView bottom:self.bottomAnchor padding:-5];
+
+
+ self.iconView = [[UIView alloc] init];
+ self.iconView.layer.cornerRadius = 10;
+ self.iconView.layer.cornerCurve = kCACornerCurveContinuous;
+ self.iconView.clipsToBounds = YES;
+ [self.baseView addSubview:self.iconView];
+
+ [self.iconView size:CGSizeMake(40, 40)];
+ [self.iconView y:self.baseView.centerYAnchor];
+ [self.iconView leading:self.baseView.leadingAnchor padding:10];
+
+
+ self.iconImage = [[UIImageView alloc] init];
+ [self.iconView addSubview:self.iconImage];
+
+ [self.iconImage size:CGSizeMake(30, 30)];
+ [self.iconImage x:self.iconView.centerXAnchor y:self.iconView.centerYAnchor];
+
+
+ self.toggleSwitch = [[UISwitch alloc] init];
+ [self.toggleSwitch addTarget:self action:@selector(switchChangedState:) forControlEvents:UIControlEventValueChanged];
+ [self.toggleSwitch setOn:useDefaultMemoji animated:NO];
+ self.toggleSwitch.onTintColor = UIColor.systemIndigoColor;
+ self.toggleSwitch.thumbTintColor = [UIColor colorNamed:@"Secondary"];
+ [self.contentView addSubview:self.toggleSwitch];
+
+ [self.toggleSwitch y:self.baseView.centerYAnchor];
+ [self.toggleSwitch trailing:self.baseView.trailingAnchor padding:-10];
+
+
+ self.titleLabel = [[UILabel alloc] init];
+ self.titleLabel.textAlignment = NSTextAlignmentLeft;
+ self.titleLabel.font = [UIFont systemFontOfSize:16];
+ self.titleLabel.textColor = UIColor.labelColor;
+ [self.baseView addSubview:self.titleLabel];
+
+ [self.titleLabel leading:self.iconView.trailingAnchor padding:10];
+ [self.titleLabel top:self.iconView.topAnchor padding:2];
+ [self.titleLabel trailing:self.toggleSwitch.leadingAnchor padding:-10];
+
+
+ self.subtitleLabel = [[UILabel alloc] init];
+ self.subtitleLabel.textAlignment = NSTextAlignmentLeft;
+ self.subtitleLabel.font = [UIFont systemFontOfSize:13];
+ self.subtitleLabel.textColor = UIColor.tertiaryLabelColor;
+ [self.baseView addSubview:self.subtitleLabel];
+
+ [self.subtitleLabel leading:self.iconView.trailingAnchor padding:10];
+ [self.subtitleLabel bottom:self.iconView.bottomAnchor padding:-2];
+ [self.subtitleLabel trailing:self.toggleSwitch.leadingAnchor padding:-10];
+
+ }
+
+ return self;
+}
+
+
+-(void)prepareForReuse {
+ [super prepareForReuse];
+
+ self.iconImage.image = nil;
+ self.titleLabel.text = nil;
+ self.subtitleLabel.text = nil;
+}
+
+
+- (void)switchChangedState:(UISwitch *)sender {
+ [[SettingManager sharedInstance] setBool:sender.on forKey:@"useDefaultMemoji"];
+// if ([sender isOn]) {
+// } else {
+// }
+}
+
+@end
diff --git a/Avatar/App/Avatar/StickerPicker/SingleHandGestureRecognizer.h b/Avatar/App/Avatar/StickerPicker/SingleHandGestureRecognizer.h
new file mode 100644
index 0000000..00da453
--- /dev/null
+++ b/Avatar/App/Avatar/StickerPicker/SingleHandGestureRecognizer.h
@@ -0,0 +1,8 @@
+#import
+
+@interface SingleHandGestureRecognizer : UIGestureRecognizer
+@property (assign, nonatomic) CGFloat scale;
+@property (assign, nonatomic) CGFloat rotation;
+- (nonnull instancetype)initWithTarget:(nullable id)target action:(nullable SEL)action anchorView:(nonnull UIView *)anchorView;
+- (void)reset;
+@end
diff --git a/Avatar/App/Avatar/StickerPicker/SingleHandGestureRecognizer.m b/Avatar/App/Avatar/StickerPicker/SingleHandGestureRecognizer.m
new file mode 100644
index 0000000..9468d19
--- /dev/null
+++ b/Avatar/App/Avatar/StickerPicker/SingleHandGestureRecognizer.m
@@ -0,0 +1,69 @@
+#import "SingleHandGestureRecognizer.h"
+#import
+
+@interface SingleHandGestureRecognizer ()
+@property (strong, nonatomic) UIView *anchorView;
+@end
+
+@implementation SingleHandGestureRecognizer
+
+- (nonnull instancetype)initWithTarget:(nullable id)target action:(nullable SEL)action anchorView:(nonnull UIView *)anchorView {
+ SingleHandGestureRecognizer *gesture = [[SingleHandGestureRecognizer alloc] initWithTarget:target action:action];
+ gesture.anchorView = anchorView;
+ return gesture;
+}
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
+ // Only support single hand.
+ if ([[event touchesForGestureRecognizer:self] count] > 1) {
+ self.state = UIGestureRecognizerStateFailed;
+ }
+}
+
+- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
+ if (self.state == UIGestureRecognizerStatePossible) {
+ self.state = UIGestureRecognizerStateBegan;
+ } else {
+ self.state = UIGestureRecognizerStateChanged;
+ }
+
+ UITouch *touch = [touches anyObject];
+ CGPoint anchorViewCenter = self.anchorView.center;
+ CGPoint currentPoint = [touch locationInView:self.anchorView.superview];
+ CGPoint previousPoint = [touch previousLocationInView:self.anchorView.superview];
+
+ CGFloat currentRotation = atan2f((currentPoint.y - anchorViewCenter.y), (currentPoint.x - anchorViewCenter.x));
+ CGFloat previousRotation = atan2f((previousPoint.y - anchorViewCenter.y), (previousPoint.x - anchorViewCenter.x));
+
+ CGFloat currentRadius = [self distanceBetweenFirstPoint:currentPoint secondPoint:anchorViewCenter];
+ CGFloat previousRadius = [self distanceBetweenFirstPoint:previousPoint secondPoint:anchorViewCenter];
+ CGFloat scale = currentRadius / previousRadius;
+
+ [self setRotation:(currentRotation - previousRotation)];
+ [self setScale:scale];
+}
+
+- (CGFloat)distanceBetweenFirstPoint:(CGPoint)first secondPoint:(CGPoint)second {
+ CGFloat deltaX = second.x - first.x;
+ CGFloat deltaY = second.y - first.y;
+ return sqrt(deltaX * deltaX + deltaY * deltaY);
+}
+
+- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
+ if (self.state == UIGestureRecognizerStateChanged) {
+ self.state = UIGestureRecognizerStateEnded;
+ } else {
+ self.state = UIGestureRecognizerStateFailed;
+ }
+}
+
+- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
+ self.state = UIGestureRecognizerStateFailed;
+}
+
+- (void)reset {
+ self.rotation = 0;
+ self.scale = 1;
+}
+
+@end
diff --git a/Avatar/App/Avatar/StickerPicker/StickerView.h b/Avatar/App/Avatar/StickerPicker/StickerView.h
new file mode 100644
index 0000000..1b8bfb7
--- /dev/null
+++ b/Avatar/App/Avatar/StickerPicker/StickerView.h
@@ -0,0 +1,25 @@
+#import
+
+@protocol StickerViewDelegate;
+
+@interface StickerView : UIView
+@property (assign, nonatomic) BOOL enabledControl;
+@property (assign, nonatomic) BOOL enabledDeleteControl;
+@property (assign, nonatomic) BOOL enabledShakeAnimation;
+@property (assign, nonatomic) BOOL enabledBorder;
+@property (strong, nonatomic) UIImage *contentImage;
+@property (assign, nonatomic) id delegate;
+- (instancetype)initWithContentFrame:(CGRect)frame contentImage:(UIImage *)contentImage;
+- (void)performTapOperation;
+@end
+
+
+@protocol StickerViewDelegate
+@optional
+- (void)stickerViewDidTapContentView:(StickerView *)stickerView;
+- (void)stickerViewDidTapDeleteControl:(StickerView *)stickerView;
+- (UIImage *)stickerView:(StickerView *)stickerView imageForRightTopControl:(CGSize)recommendedSize;
+- (void)stickerViewDidTapRightTopControl:(StickerView *)stickerView;
+- (UIImage *)stickerView:(StickerView *)stickerView imageForLeftBottomControl:(CGSize)recommendedSize;
+- (void)stickerViewDidTapLeftBottomControl:(StickerView *)stickerView;
+@end
diff --git a/Avatar/App/Avatar/StickerPicker/StickerView.m b/Avatar/App/Avatar/StickerPicker/StickerView.m
new file mode 100644
index 0000000..4408f6c
--- /dev/null
+++ b/Avatar/App/Avatar/StickerPicker/StickerView.m
@@ -0,0 +1,353 @@
+#import "StickerView.h"
+#import "SingleHandGestureRecognizer.h"
+
+#define kStickerControlViewSize 30
+#define kStickerHalfControlViewSize 15
+#define kStickerMinScale 0.5f
+#define kStickerMaxScale 2.0f
+
+
+@interface StickerView ()