Commit a2923d259ba809174dabcd61758bfe92de317426

Authored by liushiyu
1 parent ca5150a0

3.1.2

Showing 31 changed files with 1226 additions and 1641 deletions

Too many changes to show.

To preserve performance only 31 of 80 files are displayed.

Example/Podfile
@@ -9,7 +9,7 @@ target 'YBImageBrowser_DSCnliveShop_Example' do @@ -9,7 +9,7 @@ target 'YBImageBrowser_DSCnliveShop_Example' do
9 target 'YBImageBrowser_DSCnliveShop_Tests' do 9 target 'YBImageBrowser_DSCnliveShop_Tests' do
10 inherit! :search_paths 10 inherit! :search_paths
11 11
12 - pod 'SDWebImage' 12 + pod 'SDWebImage','~>5.2.3'
13 pod 'YYKit' 13 pod 'YYKit'
14 14
15 end 15 end
Example/Podfile.lock
1 PODS: 1 PODS:
2 - - SDWebImage (5.8.4):  
3 - - SDWebImage/Core (= 5.8.4)  
4 - - SDWebImage/Core (5.8.4)  
5 - - YBImageBrowser_DSCnliveShop (3.1.0):  
6 - - SDWebImage 2 + - SDWebImage (5.2.5):
  3 + - SDWebImage/Core (= 5.2.5)
  4 + - SDWebImage/Core (5.2.5)
  5 + - YBImageBrowser_DSCnliveShop (3.1.2):
  6 + - SDWebImage (~> 5.2.3)
7 - YYKit 7 - YYKit
8 - YYKit (1.0.9): 8 - YYKit (1.0.9):
9 - YYKit/no-arc (= 1.0.9) 9 - YYKit/no-arc (= 1.0.9)
10 - YYKit/no-arc (1.0.9) 10 - YYKit/no-arc (1.0.9)
11 11
12 DEPENDENCIES: 12 DEPENDENCIES:
13 - - SDWebImage 13 + - SDWebImage (~> 5.2.3)
14 - YBImageBrowser_DSCnliveShop (from `../`) 14 - YBImageBrowser_DSCnliveShop (from `../`)
15 - YYKit 15 - YYKit
16 16
@@ -24,10 +24,10 @@ EXTERNAL SOURCES: @@ -24,10 +24,10 @@ EXTERNAL SOURCES:
24 :path: "../" 24 :path: "../"
25 25
26 SPEC CHECKSUMS: 26 SPEC CHECKSUMS:
27 - SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9  
28 - YBImageBrowser_DSCnliveShop: beca1a333282098979595a7eae0a73a4805d14a5 27 + SDWebImage: 4eabf2fa6695c95c47724214417a9c036c965e4a
  28 + YBImageBrowser_DSCnliveShop: 0c757771a976328769463a9a55e43957030941c5
29 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 29 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
30 30
31 -PODFILE CHECKSUM: 1c9382532bba4c074f5c669a65132a33e0cc5171 31 +PODFILE CHECKSUM: 634c1354f9225a9c3712a8a331ac1d0e0476a483
32 32
33 COCOAPODS: 1.9.1 33 COCOAPODS: 1.9.1
Example/Pods/Local Podspecs/YBImageBrowser_DSCnliveShop.podspec.json
1 { 1 {
2 "name": "YBImageBrowser_DSCnliveShop", 2 "name": "YBImageBrowser_DSCnliveShop",
3 - "version": "3.1.0", 3 + "version": "3.1.2",
4 "summary": "YBImageBrowser改依赖为YYKit", 4 "summary": "YBImageBrowser改依赖为YYKit",
5 "homepage": "http://bj.gitlab.cnlive.com/DSIOSTeam", 5 "homepage": "http://bj.gitlab.cnlive.com/DSIOSTeam",
6 "authors": { 6 "authors": {
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 "license": "MIT", 9 "license": "MIT",
10 "source": { 10 "source": {
11 "git": "http://bj.gitlab.cnlive.com/DSIOSTeam/YBImageBrowser_DSCnliveShop.git", 11 "git": "http://bj.gitlab.cnlive.com/DSIOSTeam/YBImageBrowser_DSCnliveShop.git",
12 - "tag": "3.1.0" 12 + "tag": "3.1.2"
13 }, 13 },
14 "platforms": { 14 "platforms": {
15 "ios": "9.0" 15 "ios": "9.0"
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 ], 21 ],
22 "dependencies": { 22 "dependencies": {
23 "SDWebImage": [ 23 "SDWebImage": [
24 - 24 + "~>5.2.3"
25 ], 25 ],
26 "YYKit": [ 26 "YYKit": [
27 27
Example/Pods/Manifest.lock
1 PODS: 1 PODS:
2 - - SDWebImage (5.8.4):  
3 - - SDWebImage/Core (= 5.8.4)  
4 - - SDWebImage/Core (5.8.4)  
5 - - YBImageBrowser_DSCnliveShop (3.1.0):  
6 - - SDWebImage 2 + - SDWebImage (5.2.5):
  3 + - SDWebImage/Core (= 5.2.5)
  4 + - SDWebImage/Core (5.2.5)
  5 + - YBImageBrowser_DSCnliveShop (3.1.2):
  6 + - SDWebImage (~> 5.2.3)
7 - YYKit 7 - YYKit
8 - YYKit (1.0.9): 8 - YYKit (1.0.9):
9 - YYKit/no-arc (= 1.0.9) 9 - YYKit/no-arc (= 1.0.9)
10 - YYKit/no-arc (1.0.9) 10 - YYKit/no-arc (1.0.9)
11 11
12 DEPENDENCIES: 12 DEPENDENCIES:
13 - - SDWebImage 13 + - SDWebImage (~> 5.2.3)
14 - YBImageBrowser_DSCnliveShop (from `../`) 14 - YBImageBrowser_DSCnliveShop (from `../`)
15 - YYKit 15 - YYKit
16 16
@@ -24,10 +24,10 @@ EXTERNAL SOURCES: @@ -24,10 +24,10 @@ EXTERNAL SOURCES:
24 :path: "../" 24 :path: "../"
25 25
26 SPEC CHECKSUMS: 26 SPEC CHECKSUMS:
27 - SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9  
28 - YBImageBrowser_DSCnliveShop: beca1a333282098979595a7eae0a73a4805d14a5 27 + SDWebImage: 4eabf2fa6695c95c47724214417a9c036c965e4a
  28 + YBImageBrowser_DSCnliveShop: 0c757771a976328769463a9a55e43957030941c5
29 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 29 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
30 30
31 -PODFILE CHECKSUM: 1c9382532bba4c074f5c669a65132a33e0cc5171 31 +PODFILE CHECKSUM: 634c1354f9225a9c3712a8a331ac1d0e0476a483
32 32
33 COCOAPODS: 1.9.1 33 COCOAPODS: 1.9.1
Example/Pods/Pods.xcodeproj/project.pbxproj
@@ -8,71 +8,65 @@ @@ -8,71 +8,65 @@
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 0060D0002F5404112A217929E462A1E3 /* NSString+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = FD46990B6EBC034765E7F896D7692AF0 /* NSString+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 10 0060D0002F5404112A217929E462A1E3 /* NSString+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = FD46990B6EBC034765E7F896D7692AF0 /* NSString+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
11 - 010A21434427A1E7CE25060BA3A66A61 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 618EA55D0CE2B6CFE74715E49A256295 /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };  
12 - 013FB3424E97C9CBA093B58F3FF74537 /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D239E8639A886939B6B5EB58FC27342 /* SDImageLoadersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
13 0272570CDAD7111506606BBA6F85A080 /* NSDictionary+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDDD031AB39EE10A73CBCA382968C97 /* NSDictionary+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 11 0272570CDAD7111506606BBA6F85A080 /* NSDictionary+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDDD031AB39EE10A73CBCA382968C97 /* NSDictionary+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
14 029C5740548FC68443365660D8ABA6F9 /* UIColor+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2058F8BF3995BDEFE75215FA94771AA0 /* UIColor+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 029C5740548FC68443365660D8ABA6F9 /* UIColor+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2058F8BF3995BDEFE75215FA94771AA0 /* UIColor+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
15 - 02A4C8ABD5DCC501DE7A6CE19B398E14 /* SDWebImageDownloaderResponseModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 968801418C5808212099C7AAECFD942F /* SDWebImageDownloaderResponseModifier.h */; settings = {ATTRIBUTES = (Public, ); }; };  
16 - 02B6598C52131C10E3CA344FB49B87FA /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 060133C4A0CD84D7E43EA5A6AE35A7BA /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; };  
17 02C881CC8FD4159AA03D68B194FD365B /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAEE433C1A4AC2340AD30180CD833DE /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 02C881CC8FD4159AA03D68B194FD365B /* YYAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = DEAEE433C1A4AC2340AD30180CD833DE /* YYAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
18 - 033813F58E3D20FA511AF1B5C3D58FA7 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 64D193C84163B92004E21BE9A8A13B71 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
19 048D7570F580B28F3DF0FC0B2AA930EF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; }; 14 048D7570F580B28F3DF0FC0B2AA930EF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
20 04ADC5DD2971F1A73C00ADF4C40439EB /* YYTextContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 666CEBB485FC6B4BC1861FC6F4EE5093 /* YYTextContainerView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 15 04ADC5DD2971F1A73C00ADF4C40439EB /* YYTextContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 666CEBB485FC6B4BC1861FC6F4EE5093 /* YYTextContainerView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  16 + 06012BECF3390F6D209D81ABC29DEE7F /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 03917DDCF8C121DD56B0AD9B603C2B9D /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; };
21 0678C6B089EDAAEBF0ABD11243A753A3 /* YYDispatchQueuePool.h in Headers */ = {isa = PBXBuildFile; fileRef = E467579343CF6E084F5AF44750D3B054 /* YYDispatchQueuePool.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 0678C6B089EDAAEBF0ABD11243A753A3 /* YYDispatchQueuePool.h in Headers */ = {isa = PBXBuildFile; fileRef = E467579343CF6E084F5AF44750D3B054 /* YYDispatchQueuePool.h */; settings = {ATTRIBUTES = (Public, ); }; };
  18 + 06EF6A665BCC7FDFD85BD8ABD55A3959 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 4532E0D4D1C1FCB630416F347E791110 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
22 0751F49015B77B3FB215DB3AD60A231D /* YBIBCopywriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 33DBCD81CD9E79FBDBDD1041BC653A17 /* YBIBCopywriter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 19 0751F49015B77B3FB215DB3AD60A231D /* YBIBCopywriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 33DBCD81CD9E79FBDBDD1041BC653A17 /* YBIBCopywriter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
23 0755CF3A071367BA31851EB62D5B2A60 /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FC399F5E175605828984C7E67A02DD73 /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 20 0755CF3A071367BA31851EB62D5B2A60 /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FC399F5E175605828984C7E67A02DD73 /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
  21 + 07ECBE230ADCE64A5E565EAC5608FE06 /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E9E88F1E31A013B69A717855A9A782E /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
24 083BF8C20CE1E1F3773EE3C5536D0B0C /* YBIBImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 97A38E03511200872A6CE102D312DA97 /* YBIBImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 22 083BF8C20CE1E1F3773EE3C5536D0B0C /* YBIBImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 97A38E03511200872A6CE102D312DA97 /* YBIBImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  23 + 0897E820C9A330AEE938549F3A202047 /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6338E013B6CE8A040D3B94EC208F53 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  24 + 09291E0580080AF730970F2DE20C6F2F /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FB82601936A52D10C46ABDED4C4D68E /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
25 098E4E9C697F092846351BE92E971CCB /* YYDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 95F7B5AB059394D73D87262D3556EB78 /* YYDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 25 098E4E9C697F092846351BE92E971CCB /* YYDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 95F7B5AB059394D73D87262D3556EB78 /* YYDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
26 - 09EB95CBDF8D54EB05C26A5196EBBB65 /* SDDeviceHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = CD970A6F82F507060C225F86F7A3F410 /* SDDeviceHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; 26 + 0A12ECF7CCD9D053812435656179FE07 /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EE818633CBD870C5763EC5A7DEEFEBB /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
27 0A29B5E3535A71017ED3189727F50C85 /* YYThreadSafeDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F091181C07B3942FF0C12310A2FD678 /* YYThreadSafeDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; 27 0A29B5E3535A71017ED3189727F50C85 /* YYThreadSafeDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F091181C07B3942FF0C12310A2FD678 /* YYThreadSafeDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
28 0C2C51B9FDB2D20A15B32D15242BFBEA /* YBIBCellProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = A483F09FE887E66A6F02B7FCBE79F846 /* YBIBCellProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 28 0C2C51B9FDB2D20A15B32D15242BFBEA /* YBIBCellProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = A483F09FE887E66A6F02B7FCBE79F846 /* YBIBCellProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
29 0CCE71ACEC301683C4A76B510BF57603 /* YBIBTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 96371E9C734320A546704E45E02ED3DE /* YBIBTopView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 29 0CCE71ACEC301683C4A76B510BF57603 /* YBIBTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 96371E9C734320A546704E45E02ED3DE /* YBIBTopView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
30 - 0CD7B135FD4B84BDB1FB8727A2F85550 /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = DF00E591E4B26D6D1D35456AAE90B1C1 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };  
31 0D11DEFCE2724FE3C96AC4EE40F55DDF /* YBIBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B794942CBB5B6C0D1CF9F241EB18B3C /* YBIBUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 30 0D11DEFCE2724FE3C96AC4EE40F55DDF /* YBIBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B794942CBB5B6C0D1CF9F241EB18B3C /* YBIBUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
32 0E1842A4AB5D622772AEB9F4B6287A8D /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 563F4DAD613D6C00571FC9D44766124D /* YYImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 31 0E1842A4AB5D622772AEB9F4B6287A8D /* YYImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 563F4DAD613D6C00571FC9D44766124D /* YYImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
33 0E5602930F727902D8CBC2F207D498D4 /* YBIBToolViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A1341A583321F6A80299E2B2D53093F0 /* YBIBToolViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 32 0E5602930F727902D8CBC2F207D498D4 /* YBIBToolViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = A1341A583321F6A80299E2B2D53093F0 /* YBIBToolViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
34 0F1D2464A4C6139BB34E7B6E6E39023B /* NSObject+YYAddForKVO.m in Sources */ = {isa = PBXBuildFile; fileRef = E1EF95E26F5A8BC0AD3CEC7DE8D50611 /* NSObject+YYAddForKVO.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 33 0F1D2464A4C6139BB34E7B6E6E39023B /* NSObject+YYAddForKVO.m in Sources */ = {isa = PBXBuildFile; fileRef = E1EF95E26F5A8BC0AD3CEC7DE8D50611 /* NSObject+YYAddForKVO.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
35 0F4E5CD38D18F2E3E75AC64F03934E98 /* YYKitMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = AC5675312A245FA26DAC5D3DA60C6060 /* YYKitMacro.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34 0F4E5CD38D18F2E3E75AC64F03934E98 /* YYKitMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = AC5675312A245FA26DAC5D3DA60C6060 /* YYKitMacro.h */; settings = {ATTRIBUTES = (Public, ); }; };
36 0FC30F9DC8F64DC4B502B719869ED79C /* YYTextUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B335348A63303EE2CF47F0FB10EC9122 /* YYTextUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; 35 0FC30F9DC8F64DC4B502B719869ED79C /* YYTextUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B335348A63303EE2CF47F0FB10EC9122 /* YYTextUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
37 - 104CBAC9F34C7B8475A096C4B0ACA3A0 /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 91C17D860CA95052284F7C9198001DC9 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; };  
38 - 1201437E196032353D4D2B2DF8206775 /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 17C2170C0DA7F6751732A3F6F2D3304C /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 36 + 11631B3F15728204C488D6CF17DA63BF /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF0A0D18F37DBE6D852FCEA2251F1C1 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; };
39 122BD5442BBECACB54A06747DED37B0F /* YYWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FC526297A9617C4BE9A6F090BD02A7EC /* YYWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 37 122BD5442BBECACB54A06747DED37B0F /* YYWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FC526297A9617C4BE9A6F090BD02A7EC /* YYWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
40 1238CAAE4120F0A66FDD66BC8ECA2418 /* YYWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDAB2149ED799695566D25A14612AFD4 /* YYWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; 38 1238CAAE4120F0A66FDD66BC8ECA2418 /* YYWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDAB2149ED799695566D25A14612AFD4 /* YYWeakProxy.h */; settings = {ATTRIBUTES = (Public, ); }; };
41 - 12A76A691E704E6EBE12CC888639C31A /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = EF282CB27CB176AE4D81EB193162E61C /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };  
42 - 1367682CED02F22D43F248A0E36CC17B /* SDDisplayLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB5FC7AFB1E5240D21A6FE7DF89E87C /* SDDisplayLink.h */; settings = {ATTRIBUTES = (Private, ); }; }; 39 + 130C29DD67F0DACDAA2E6A57DA2422D7 /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D8872339E7C6C556DCFC2B144D97747 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; };
43 137968123E34895CA083FE3FE12F8F57 /* YYAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A297B0A3BB16024B6497BE64883F91E7 /* YYAsyncLayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 40 137968123E34895CA083FE3FE12F8F57 /* YYAsyncLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A297B0A3BB16024B6497BE64883F91E7 /* YYAsyncLayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  41 + 13B7C26AFEF7B9A9BB71D6340836C1D2 /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B758940E94222028625182D6DD5C48 /* NSButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
44 14958A9E9713112DA8B0BDD453321168 /* YYTextSelectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BB872492D04CC4C2B83ACB1537BCB51 /* YYTextSelectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 42 14958A9E9713112DA8B0BDD453321168 /* YYTextSelectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BB872492D04CC4C2B83ACB1537BCB51 /* YYTextSelectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
45 - 14C2D66D5EC7A892325562A7830E78D4 /* NSBezierPath+SDRoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = 608E04456BC00743986E00E4A8181EA3 /* NSBezierPath+SDRoundedCorners.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
46 - 14E9103FD1B1EFBE7BA8EE1137810EB2 /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA5120287BD232F4C4CECF7D74E0104 /* SDImageCachesManagerOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
47 - 16B189FD50EB941DDBCEF3718C511381 /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5573ECAD013B67C3DCA80D7EFBDE031B /* UIView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 43 + 16EBE72F21A776BA4F5FA1B43DA0D550 /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DC9E6937FC0DCAFBFE9BC1CC778D6C9 /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
48 16F21DD55C514011E36EDA191BC47CE3 /* YBIBCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 4600030B461C937CF76ADA334E8D6F1B /* YBIBCollectionViewLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44 16F21DD55C514011E36EDA191BC47CE3 /* YBIBCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 4600030B461C937CF76ADA334E8D6F1B /* YBIBCollectionViewLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
49 - 183F84DC6D79A0F93AE6C13F2EDDDCD8 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F37753D5DA03467158CF8F3BFA52E460 /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; };  
50 192CE67469A2B7BAD4691D712B2C9D13 /* YYMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF2E5796402740EB5340B609872DBEA /* YYMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 45 192CE67469A2B7BAD4691D712B2C9D13 /* YYMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF2E5796402740EB5340B609872DBEA /* YYMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
51 - 198D45399940A52F6AD442B5F96A24A1 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 232C7410166470C58B9D7DD4BEE465D6 /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
52 - 19BA863C27D0A5BBD664CB1ABDA03238 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D85332D2674E584830AC6CFE3141FE /* SDInternalMacros.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
53 - 1A04C35F3E2D85CFCAFC9934EAC8E033 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DED8461605A23446E943D5B44AC07FB /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 46 + 1A645DC3F75D98F78F685E7E8172E6C4 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = B93B5CB4F97B4C63233C9781D9074385 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; };
  47 + 1A696C66B1AD121F4D74F70046E722BE /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = BF2240205CFBA63D171F27ED059DA17F /* SDImageIOAnimatedCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
54 1B3F4D1188B463D85D392E89DABCDE88 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4FF6780DBBE60AA8EAACC09BD33F72 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 48 1B3F4D1188B463D85D392E89DABCDE88 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4FF6780DBBE60AA8EAACC09BD33F72 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
55 1B529361E5652CD292D14F89C9D29ED3 /* UIGestureRecognizer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A1D7FB30E0B1322F08017865D3AED6 /* UIGestureRecognizer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 49 1B529361E5652CD292D14F89C9D29ED3 /* UIGestureRecognizer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B4A1D7FB30E0B1322F08017865D3AED6 /* UIGestureRecognizer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
56 1B8FD7D8E9EDF9BBA7ACD5FB448BE517 /* UIButton+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = E97D1AED9A06E626CDC89DE4248FA2DF /* UIButton+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 50 1B8FD7D8E9EDF9BBA7ACD5FB448BE517 /* UIButton+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = E97D1AED9A06E626CDC89DE4248FA2DF /* UIButton+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
57 1D457A5D62A3B26C40A0BF028086C923 /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = BAC4F1096AC0661BCC97A1690D41356F /* YYAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 51 1D457A5D62A3B26C40A0BF028086C923 /* YYAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = BAC4F1096AC0661BCC97A1690D41356F /* YYAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  52 + 1D8DC86B542A5C7B185D576593BFEF08 /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4C3869889BF6E0FB48DB6D3E50C42B /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
58 204561FFAF8A0B7292A4045AFA3E6C96 /* NSThread+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2083BC9AABD59C97DC155E29DC3E9A9F /* NSThread+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 53 204561FFAF8A0B7292A4045AFA3E6C96 /* NSThread+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 2083BC9AABD59C97DC155E29DC3E9A9F /* NSThread+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
59 - 21C120EDFCE3F1B685833EAE2F088998 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B17144987DDC3673503BAA63081322E /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 54 + 21C54761AEC4B6FF8F628CF62503856C /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = C8CF816C63E5B6559556C778BE819AF4 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; };
60 22759285C81AA923E5863F79F180DBF7 /* YYWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B0715021BC19551B9A5D5CB2408E7E2B /* YYWebImageOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 55 22759285C81AA923E5863F79F180DBF7 /* YYWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B0715021BC19551B9A5D5CB2408E7E2B /* YYWebImageOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
61 2294C9BC0119442FE4F0EE31CCD819F7 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = E20C5E35E7CBCF4496931DDD69C93799 /* UIControl+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 56 2294C9BC0119442FE4F0EE31CCD819F7 /* UIControl+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = E20C5E35E7CBCF4496931DDD69C93799 /* UIControl+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  57 + 22AC8168428AA91CEFCC4A1EE18C61A1 /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A2C5A33CC842DF0109E16A40FED6D58 /* SDWebImageOptionsProcessor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
62 22DB5291728E37A7B7580BA838C1A746 /* UIDevice+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A25BC91CE33678DD088B666A283A44A /* UIDevice+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 58 22DB5291728E37A7B7580BA838C1A746 /* UIDevice+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A25BC91CE33678DD088B666A283A44A /* UIDevice+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
63 24437A6D0EA45A0A7D4D93972E399050 /* YYThreadSafeDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 57EF9F7EACD9A4EA29C6C7519AC29E42 /* YYThreadSafeDictionary.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 59 24437A6D0EA45A0A7D4D93972E399050 /* YYThreadSafeDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 57EF9F7EACD9A4EA29C6C7519AC29E42 /* YYThreadSafeDictionary.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
64 24EE4728E0D8DCB91B7E600CD3618A99 /* CALayer+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 586579D8B562F5F100F35D60CADAF40B /* CALayer+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 60 24EE4728E0D8DCB91B7E600CD3618A99 /* CALayer+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 586579D8B562F5F100F35D60CADAF40B /* CALayer+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
65 258DB6DA0945B112C39132D5F2B71ECE /* YBIBVideoCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F48485AE0CAFC4B57A15BC09F76DF01F /* YBIBVideoCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 61 258DB6DA0945B112C39132D5F2B71ECE /* YBIBVideoCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F48485AE0CAFC4B57A15BC09F76DF01F /* YBIBVideoCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
66 - 271841B1A02A31A896499240CC233E7A /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D99CAD8BB03A1ED3ACC306DE0083743C /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 62 + 27117846D36D17C67AD6B0BC49819C2E /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D82E5E2C22405F57D03467E23EA118F /* SDWebImageError.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
67 271D732A36C08FBFA8BDDFF597300081 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E326D6F0395EE4BAE670CD855A8D0176 /* SystemConfiguration.framework */; }; 63 271D732A36C08FBFA8BDDFF597300081 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E326D6F0395EE4BAE670CD855A8D0176 /* SystemConfiguration.framework */; };
68 - 27E23C72CC1BAD100D8F8E52A77E0DED /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71B363E5C4B1A08ED28F0F030C3610 /* SDAnimatedImageRep.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
69 27E9D86EE4DB53E0619552A3D32CC2C5 /* YBIBVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ED618A61344837183008AF1693E8716 /* YBIBVideoView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 64 27E9D86EE4DB53E0619552A3D32CC2C5 /* YBIBVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ED618A61344837183008AF1693E8716 /* YBIBVideoView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
70 - 285BB197A61A0553905D872B6E4F6BA1 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = CF05C25EE17396B80BB50C70733D2421 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; };  
71 - 28B63809D42D68F3E44A2012695EC8E8 /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D137AC86EF60C0DD4725A67DBED5F6EC /* SDAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
72 - 292DFB006819CC5C457430933E9DF2CC /* SDDeviceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 54932F1D65D4CE3969AD7014585252E6 /* SDDeviceHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 65 + 2987181816CE330B8D8C8011A163DED5 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FD9BD14816B4B34D6B032B14FCBCD17 /* SDImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
73 299334502C7E8A552B093FA1252592E1 /* YBIBImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CA7D546D1F3F75461DF8423D2BF90D68 /* YBIBImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 66 299334502C7E8A552B093FA1252592E1 /* YBIBImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CA7D546D1F3F75461DF8423D2BF90D68 /* YBIBImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
74 2ACB60B84B7C79A7739A5B0E44D4C65D /* NSObject+YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DEA694BF89E27C54D37D6453687E87A /* NSObject+YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; 67 2ACB60B84B7C79A7739A5B0E44D4C65D /* NSObject+YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DEA694BF89E27C54D37D6453687E87A /* NSObject+YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; };
75 2AF4B545058531DE31545B25783DD75D /* YBIBDataMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF0F50B5FE26ED59651D7C8D462D48E /* YBIBDataMediator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 68 2AF4B545058531DE31545B25783DD75D /* YBIBDataMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = AFF0F50B5FE26ED59651D7C8D462D48E /* YBIBDataMediator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  69 + 2BB48CC4F4CCB6ED239A7116C1399192 /* NSBezierPath+RoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 480531E7E6576BA8EBC67D80A2410524 /* NSBezierPath+RoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; };
76 2C74C620DEC4D8EF9E821945D942E42B /* YYTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABDD0D167F87048EDFBCF3A1E54B781 /* YYTextView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 70 2C74C620DEC4D8EF9E821945D942E42B /* YYTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ABDD0D167F87048EDFBCF3A1E54B781 /* YYTextView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
77 2C9826C18088A3500C545761C905F0F7 /* YYTextParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D27CB4C11DD858E2346FCDB108967EE5 /* YYTextParser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 71 2C9826C18088A3500C545761C905F0F7 /* YYTextParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D27CB4C11DD858E2346FCDB108967EE5 /* YYTextParser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
78 2E0043CD33920B9F3E512FFD04E64A5D /* UIDevice+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D83880B681055CB94822859FFC3C2B6 /* UIDevice+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 72 2E0043CD33920B9F3E512FFD04E64A5D /* UIDevice+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D83880B681055CB94822859FFC3C2B6 /* UIDevice+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
@@ -80,65 +74,63 @@ @@ -80,65 +74,63 @@
80 2FB2D48CEC9FA3F13FE4C8FB20322356 /* YYReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 784B89EF43D57599270D1491D222B2BF /* YYReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; 74 2FB2D48CEC9FA3F13FE4C8FB20322356 /* YYReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 784B89EF43D57599270D1491D222B2BF /* YYReachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
81 2FF328BC76D267CD2BD2464A76F1BE7B /* YYGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B3EE8BE60AF36139B6E231F4FA722917 /* YYGestureRecognizer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 75 2FF328BC76D267CD2BD2464A76F1BE7B /* YYGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B3EE8BE60AF36139B6E231F4FA722917 /* YYGestureRecognizer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
82 313A089C34F2ECEB35BC86470ADC5FE9 /* YBIBImageCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 268BFC97CAD611337B98EA380097C255 /* YBIBImageCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 76 313A089C34F2ECEB35BC86470ADC5FE9 /* YBIBImageCell+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 268BFC97CAD611337B98EA380097C255 /* YBIBImageCell+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
  77 + 31486EEF2AE7067DC3FB4C41D8B06044 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = AD998B4EBF0CD700BD542833326015DB /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
  78 + 31C885C264ACBC869D0C15774FEEEE91 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B836409E7407CD373408BBEE6FB78A56 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
83 326ACB0AEC6F7BDDCD287D41EEB15F06 /* YBIBVideoData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F5670120F17DFEC029094ABAC2358C59 /* YBIBVideoData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79 326ACB0AEC6F7BDDCD287D41EEB15F06 /* YBIBVideoData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F5670120F17DFEC029094ABAC2358C59 /* YBIBVideoData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
84 32E6EAEE45FAFBCC7363F8DA2D5ECE30 /* YYTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 29A3DA3355DD6482745F7763E549FDEC /* YYTimer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 80 32E6EAEE45FAFBCC7363F8DA2D5ECE30 /* YYTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 29A3DA3355DD6482745F7763E549FDEC /* YYTimer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
85 33284B411935766A4D23A0AF0419392F /* YBIBVideoActionBar.h in Headers */ = {isa = PBXBuildFile; fileRef = ADE583D4B2310B6AB0833BF354A6DC60 /* YBIBVideoActionBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81 33284B411935766A4D23A0AF0419392F /* YBIBVideoActionBar.h in Headers */ = {isa = PBXBuildFile; fileRef = ADE583D4B2310B6AB0833BF354A6DC60 /* YBIBVideoActionBar.h */; settings = {ATTRIBUTES = (Public, ); }; };
  82 + 3402867F1DCE2F01EE152BE666D15391 /* SDImageHEICCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = E1824D23FFCDBDE557E8BCF4A5D1EB64 /* SDImageHEICCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
86 34B96FCCC06C1D11BC31E63DBDE184E7 /* YBIBVideoTopBar.h in Headers */ = {isa = PBXBuildFile; fileRef = ACD89195E78715E8E03598ED048B1DB6 /* YBIBVideoTopBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83 34B96FCCC06C1D11BC31E63DBDE184E7 /* YBIBVideoTopBar.h in Headers */ = {isa = PBXBuildFile; fileRef = ACD89195E78715E8E03598ED048B1DB6 /* YBIBVideoTopBar.h */; settings = {ATTRIBUTES = (Public, ); }; };
87 - 34E8A42A4CD18CF55A1C5CBD1F222D71 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A36D864638BFBD8FEE3A451FAC9B3 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
88 34ED3A525719FD3EE9F2A7789D12D7D7 /* YYFileHash.h in Headers */ = {isa = PBXBuildFile; fileRef = B9AB8CA329AC9F81339A2A1B4F0266FE /* YYFileHash.h */; settings = {ATTRIBUTES = (Public, ); }; }; 84 34ED3A525719FD3EE9F2A7789D12D7D7 /* YYFileHash.h in Headers */ = {isa = PBXBuildFile; fileRef = B9AB8CA329AC9F81339A2A1B4F0266FE /* YYFileHash.h */; settings = {ATTRIBUTES = (Public, ); }; };
89 - 3526C8C7BD0C5256C819AEB8DE26BC80 /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 61733D38B2BF61692321B0EAD6CE7AAC /* SDWebImage-dummy.m */; };  
90 35E986B3D2EF9589EDA6898E692750A1 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A182794A8F3D76711F0E02DA7FF03E94 /* UIGestureRecognizer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 85 35E986B3D2EF9589EDA6898E692750A1 /* UIGestureRecognizer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A182794A8F3D76711F0E02DA7FF03E94 /* UIGestureRecognizer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
91 36B94DF1E7E7776212429AE5CF1456B6 /* YBIBOperateBrowserProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AFB40C28BD8BD37F15B50CB7E6A20928 /* YBIBOperateBrowserProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 86 36B94DF1E7E7776212429AE5CF1456B6 /* YBIBOperateBrowserProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AFB40C28BD8BD37F15B50CB7E6A20928 /* YBIBOperateBrowserProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
  87 + 3768A48148C1A559EFA6857AEE21499C /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7213E5D815346B024AC2C78B59AE7E /* SDWebImageDownloaderRequestModifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
92 37E4FA1562451631BA152EDCB15710CF /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F170A24D4E53C3C47A8CE99795457D6A /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88 37E4FA1562451631BA152EDCB15710CF /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F170A24D4E53C3C47A8CE99795457D6A /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
93 384E30CBBBD2B4A155A989F32F982BEC /* YBImageBrowser_DSCnliveShop-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C705108BAA5E0F79A36A255F671FD73C /* YBImageBrowser_DSCnliveShop-dummy.m */; }; 89 384E30CBBBD2B4A155A989F32F982BEC /* YBImageBrowser_DSCnliveShop-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C705108BAA5E0F79A36A255F671FD73C /* YBImageBrowser_DSCnliveShop-dummy.m */; };
94 3951BC1F545F8733CBFC8E36CD6EC461 /* YYThreadSafeArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F23CF51EA97FF806B2D6A43C0B0AD50 /* YYThreadSafeArray.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 90 3951BC1F545F8733CBFC8E36CD6EC461 /* YYThreadSafeArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F23CF51EA97FF806B2D6A43C0B0AD50 /* YYThreadSafeArray.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
95 398ECA87D5BDB9FAAC6424101D8C1DB3 /* YYImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 13FA3D010FCAB935A4C1E9CC535A7D28 /* YYImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 91 398ECA87D5BDB9FAAC6424101D8C1DB3 /* YYImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 13FA3D010FCAB935A4C1E9CC535A7D28 /* YYImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  92 + 3A717A936244852C7999DF2ACDD3EBA4 /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7EB188DA7D4BC587FE249FF628B51C /* UIImage+ForceDecode.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
96 3B365E37B4FC771DA78CDE4C81E9ACC2 /* YBIBInteractionProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = EC297FCDA53117783E423EFCF34C4C6C /* YBIBInteractionProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 93 3B365E37B4FC771DA78CDE4C81E9ACC2 /* YBIBInteractionProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = EC297FCDA53117783E423EFCF34C4C6C /* YBIBInteractionProfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
97 3B697DC46854D39C5E029789A7EB60CF /* NSNotificationCenter+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 39721DF1E2941C5B4B819BD85F2AA60E /* NSNotificationCenter+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 94 3B697DC46854D39C5E029789A7EB60CF /* NSNotificationCenter+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 39721DF1E2941C5B4B819BD85F2AA60E /* NSNotificationCenter+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
98 - 3BAC7E6B28028F929677080D34286C9A /* SDDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 57001503938AEFE09B39A90CD56CF65A /* SDDisplayLink.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 95 + 3B9737EB4BDEA61D7A6D7C2F83ADE16B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
99 3C1845A20677487130FEEB952FB3743C /* YYThreadSafeArray.h in Headers */ = {isa = PBXBuildFile; fileRef = C95F8792B9A29FF9F37927E606871D5B /* YYThreadSafeArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; 96 3C1845A20677487130FEEB952FB3743C /* YYThreadSafeArray.h in Headers */ = {isa = PBXBuildFile; fileRef = C95F8792B9A29FF9F37927E606871D5B /* YYThreadSafeArray.h */; settings = {ATTRIBUTES = (Public, ); }; };
100 3CA5A2706484756D1BA83EFE6B50B63F /* YBIBSheetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 13EFE3DD1D702D85B36FB7D106BC163F /* YBIBSheetView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 97 3CA5A2706484756D1BA83EFE6B50B63F /* YBIBSheetView.h in Headers */ = {isa = PBXBuildFile; fileRef = 13EFE3DD1D702D85B36FB7D106BC163F /* YBIBSheetView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  98 + 3CBE3496D679F3CAC215C24E124CEF20 /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AA629F1636B9E5C1E7779416F41894F /* SDImageLoader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
101 3CECF913D9FE0F03BD7228B4E1C9EF71 /* YBIBTopView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01925082D3D68AFAC34FD497668DDF52 /* YBIBTopView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 99 3CECF913D9FE0F03BD7228B4E1C9EF71 /* YBIBTopView.h in Headers */ = {isa = PBXBuildFile; fileRef = 01925082D3D68AFAC34FD497668DDF52 /* YBIBTopView.h */; settings = {ATTRIBUTES = (Public, ); }; };
102 3D05DA022EDD102E5514E769E47AE751 /* YYTextInput.m in Sources */ = {isa = PBXBuildFile; fileRef = E30659E8DA748D0CF9EA5E88C15DA2DA /* YYTextInput.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 100 3D05DA022EDD102E5514E769E47AE751 /* YYTextInput.m in Sources */ = {isa = PBXBuildFile; fileRef = E30659E8DA748D0CF9EA5E88C15DA2DA /* YYTextInput.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
103 - 3D269D2B6E70D5134F84F471FA897C1D /* UIImage+ExtendedCacheData.m in Sources */ = {isa = PBXBuildFile; fileRef = 20421D13A41D462848F051647414A829 /* UIImage+ExtendedCacheData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
104 3D454A471582F13942DB598AE5959B34 /* NSThread+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FA31B22A4EC7CB38F40BE6C28871B56C /* NSThread+YYAdd.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; 101 3D454A471582F13942DB598AE5959B34 /* NSThread+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FA31B22A4EC7CB38F40BE6C28871B56C /* NSThread+YYAdd.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; };
105 - 3E404F1C1EF06355EBCAD17AAA6A7655 /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D6746DFA44B1641AE23A50377370530 /* NSImage+Compatibility.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 102 + 3F1C17F8ED3A2719985697A88379D691 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F772E2006AB9FCF216A22126D6D46F /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
106 3F6CD94029B30B62256BEE04B742944E /* NSKeyedUnarchiver+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 09D461072FB1F94116B94C3D35ADC919 /* NSKeyedUnarchiver+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 103 3F6CD94029B30B62256BEE04B742944E /* NSKeyedUnarchiver+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 09D461072FB1F94116B94C3D35ADC919 /* NSKeyedUnarchiver+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
107 - 3FE529AB19EA206854B9668E508D927B /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F7D6860C305EDC74687492EDEFC2325 /* SDImageCachesManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
108 406944DED312A7E5BA1B0003EECEA947 /* NSTimer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B1B4E18C7313B870A3AECA294EED03 /* NSTimer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 104 406944DED312A7E5BA1B0003EECEA947 /* NSTimer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B1B4E18C7313B870A3AECA294EED03 /* NSTimer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
109 40802954DE9E2C6E621F0A6C52ECF32A /* UIButton+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D696C9B3DB7929040B3B11E0888CE4D6 /* UIButton+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 105 40802954DE9E2C6E621F0A6C52ECF32A /* UIButton+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D696C9B3DB7929040B3B11E0888CE4D6 /* UIButton+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
110 40B5E49E3E7BA95180F22F1F19BC719C /* YBIBImageData.h in Headers */ = {isa = PBXBuildFile; fileRef = CC069742328B0F99B589CD1E88042C72 /* YBIBImageData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 106 40B5E49E3E7BA95180F22F1F19BC719C /* YBIBImageData.h in Headers */ = {isa = PBXBuildFile; fileRef = CC069742328B0F99B589CD1E88042C72 /* YBIBImageData.h */; settings = {ATTRIBUTES = (Public, ); }; };
111 - 40DD3721BA61598A56ECF57BB1C45EE8 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF3424AF58293B7AECCBA5ADAE1E90EB /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };  
112 40F884DA82F3490D28EE4A18D067133D /* YBIBImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = F95AF0A9B4FD11599AC907D5ED78047F /* YBIBImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 107 40F884DA82F3490D28EE4A18D067133D /* YBIBImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = F95AF0A9B4FD11599AC907D5ED78047F /* YBIBImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
113 41CB6255FC0ABB5BBFAED4A0F704DD47 /* NSAttributedString+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C3520C09D1B40E7E268FF0D9C55D3A /* NSAttributedString+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 108 41CB6255FC0ABB5BBFAED4A0F704DD47 /* NSAttributedString+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C3520C09D1B40E7E268FF0D9C55D3A /* NSAttributedString+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
114 - 41E823881385B837FA086E301CBBB87C /* UIColor+SDHexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DD82D69E6F6CA677C0FD0DB1910BEEB /* UIColor+SDHexString.h */; settings = {ATTRIBUTES = (Private, ); }; };  
115 - 42BB3098DC0E47748C6AD61A10575859 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C6064257443573B6B4428384FE55B429 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
116 - 4458F0F06DDB8ED606F8089B51DE2857 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EADB1874F009D5810228B521E808F8C /* SDAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
117 - 449AF3A1E1DEFBD47B2411DAD0E5D6CC /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C1B3FCC15992E25641767F7CD50BAA99 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
118 - 44F7C039A4502CB6ABFE93BC1626ADAF /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 13211B603D4A4D4D2724F2C5BB4407D3 /* SDImageGraphics.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 109 + 41D2B74D60CECB9A13273FEA70EB0853 /* SDImageCoderHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5820AFD9CB1F531DEEEA85AE53BA9FB1 /* SDImageCoderHelper.h */; settings = {ATTRIBUTES = (Public, ); }; };
  110 + 43367367332A88EC53B2BEA287BAA3DD /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = CF824EAADAAA9D61882AC1E95A4FAAC5 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };
  111 + 43413AE961CEDF130DB347D12953F90F /* SDImageCachesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14AEC03CE74FA3C1ED22FD08ACDC489F /* SDImageCachesManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
119 450020EF80EE2190F959859B70A7200C /* NSNotificationCenter+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ECF2A1D940AD2ABA3D907CE415109326 /* NSNotificationCenter+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 112 450020EF80EE2190F959859B70A7200C /* NSNotificationCenter+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = ECF2A1D940AD2ABA3D907CE415109326 /* NSNotificationCenter+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
120 - 451775744CDDD8A2805CCC5FAAE96FE6 /* SDImageCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 36C8C2D7C7ACA9C26136F7A7D1154082 /* SDImageCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
121 - 461394E1264BA539807AE22B6681037D /* SDWebImageOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = C550536A6B0FFCC49930C911A1A845CA /* SDWebImageOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
122 - 46E5579E12DEE8B0B0E8B4BD484303AF /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EA2BCD717BF8B6108E49F1344996DCF /* SDWebImageCacheSerializer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
123 - 477600BAE7223A59EC2D341F7EAA0C5B /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1072A8A4B2B89ECA95DD401CFB50F108 /* SDImageAPNGCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
124 - 47CFA5C583D7B3BFD0FBAD1F1A474913 /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0DD7284FE8B0C78E070E9DA2D0C46E2 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };  
125 48021E999B1E5F973788B56CCA965E25 /* YYTextRunDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B1F78325C1CF3117C990E0DBB1443AC4 /* YYTextRunDelegate.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 113 48021E999B1E5F973788B56CCA965E25 /* YYTextRunDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B1F78325C1CF3117C990E0DBB1443AC4 /* YYTextRunDelegate.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
126 48229CDD5F7F0027AD9E4156B76F2761 /* YYTextLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E718C6C13FF741C9062C0F849A452F2 /* YYTextLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; 114 48229CDD5F7F0027AD9E4156B76F2761 /* YYTextLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E718C6C13FF741C9062C0F849A452F2 /* YYTextLine.h */; settings = {ATTRIBUTES = (Public, ); }; };
127 4823FF271BD5BF673DC75142A9C9E387 /* UIScreen+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B664849B9E38756422D4E0F139369652 /* UIScreen+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 115 4823FF271BD5BF673DC75142A9C9E387 /* UIScreen+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B664849B9E38756422D4E0F139369652 /* UIScreen+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
128 4A0AF19D46BA2F0FD4AF851196B38EF2 /* YYSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 47EBB445DD9ED1E0006BD00439ED755A /* YYSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 116 4A0AF19D46BA2F0FD4AF851196B38EF2 /* YYSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 47EBB445DD9ED1E0006BD00439ED755A /* YYSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; };
  117 + 4A295CDE35C0C3A0C3BDC83BAEEBC8D1 /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = 81C7DA27208415129BC75A3AE0EC610D /* UIImage+Transform.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
129 4A5A8FC3C886ED3C64CED4D130FE0F03 /* YBIBDefaultWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D2A3CB6FA504A7585BD0C033C2860D /* YBIBDefaultWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 118 4A5A8FC3C886ED3C64CED4D130FE0F03 /* YBIBDefaultWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D2A3CB6FA504A7585BD0C033C2860D /* YBIBDefaultWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; };
  119 + 4A63641D8EA2784EA3ED6DE31D3EEE7B /* SDImageCacheConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 880ED7B5A8CB58EE4EE46F97AAFC7934 /* SDImageCacheConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
  120 + 4B010F01929654CD157576546C2CA5E5 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D4F696743A974B8507BEF6FB323BB62 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
130 4B3B7BFD84DD51A967904785A38307B7 /* YBIBContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 101F73BF4899F419E3CC133F2A9180D4 /* YBIBContainerView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 121 4B3B7BFD84DD51A967904785A38307B7 /* YBIBContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 101F73BF4899F419E3CC133F2A9180D4 /* YBIBContainerView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
131 4B8C95CC6A366A73C4F26F2448899292 /* YBIBLoadingView.h in Headers */ = {isa = PBXBuildFile; fileRef = F0C1D31C0ED9EAF5880440E2214DFB67 /* YBIBLoadingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 122 4B8C95CC6A366A73C4F26F2448899292 /* YBIBLoadingView.h in Headers */ = {isa = PBXBuildFile; fileRef = F0C1D31C0ED9EAF5880440E2214DFB67 /* YBIBLoadingView.h */; settings = {ATTRIBUTES = (Public, ); }; };
132 4B993FDB4652EC183C92386AD8A826F4 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA809AC31169252E62703BD0FBD06EE5 /* AssetsLibrary.framework */; }; 123 4B993FDB4652EC183C92386AD8A826F4 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA809AC31169252E62703BD0FBD06EE5 /* AssetsLibrary.framework */; };
133 4DE3E72DC3D3D19FF35127E11FACFC2C /* NSData+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D09FF329509C51C099F07C2BA4EF7A6 /* NSData+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 124 4DE3E72DC3D3D19FF35127E11FACFC2C /* NSData+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D09FF329509C51C099F07C2BA4EF7A6 /* NSData+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
134 4E113F880A8F4186232B79C088D5B228 /* YYTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BE5EE0D085B4C8EE2CDD27B25526D0D /* YYTextLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; 125 4E113F880A8F4186232B79C088D5B228 /* YYTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BE5EE0D085B4C8EE2CDD27B25526D0D /* YYTextLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
135 - 4F227430C16CAB3FF65A1488229BF46A /* SDImageHEICCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E02A020962AA8A983BE9DEF489D5CC5 /* SDImageHEICCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 126 + 4E303A392C14264AF2A7846A47904C0E /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F679F8EE0717580BF2DF10529B314ED /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; };
  127 + 4E5C5A91108AA66D06C8D32C62266D23 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E907072812DC6E02160321606CBFFD2 /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
136 4FB4BD99B28E8CFEA3F95747EF6CEF79 /* YBIBSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 13CCFEB0FA63FC0D2DCDF8E5B3E3CC33 /* YBIBSentinel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 128 4FB4BD99B28E8CFEA3F95747EF6CEF79 /* YBIBSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 13CCFEB0FA63FC0D2DCDF8E5B3E3CC33 /* YBIBSentinel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  129 + 4FB58F2A627219E59C6002407BA17370 /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C01AF8051358A2AD340A5AB3505F28 /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
137 4FEFE33A7E35A2D1C37A49A938DEA3BF /* YBIBToolViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DF010552264134747196B93F7030F079 /* YBIBToolViewHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 130 4FEFE33A7E35A2D1C37A49A938DEA3BF /* YBIBToolViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = DF010552264134747196B93F7030F079 /* YBIBToolViewHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
138 511503F829FAA5EC9610F4443E3D2847 /* YYTextArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 9126743F263F9F3BED4DDDB5EFF3F2C8 /* YYTextArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; 131 511503F829FAA5EC9610F4443E3D2847 /* YYTextArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 9126743F263F9F3BED4DDDB5EFF3F2C8 /* YYTextArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; };
139 5170A333176FE316425BF9199E723910 /* YYTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = B4632D2A423ADC26289A01B226F70E28 /* YYTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 132 5170A333176FE316425BF9199E723910 /* YYTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = B4632D2A423ADC26289A01B226F70E28 /* YYTimer.h */; settings = {ATTRIBUTES = (Public, ); }; };
140 517A0598B2C0EA7B8F5C74D34845F0D5 /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA14C2DEAB1ED0438F36B2AF930CC1 /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; 133 517A0598B2C0EA7B8F5C74D34845F0D5 /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FA14C2DEAB1ED0438F36B2AF930CC1 /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
141 - 521A2AB2326986DDA7210B222799D82D /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 102A8609FE38B44A4F04554766133491 /* SDImageIOCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
142 52EB680BFBB3E4C3F09C36F423DF2CC8 /* YYDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 28231517D2EC4777AA0E1F8613912A64 /* YYDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 134 52EB680BFBB3E4C3F09C36F423DF2CC8 /* YYDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 28231517D2EC4777AA0E1F8613912A64 /* YYDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
143 538760AA208FF206F3BF4156545C0AEC /* YBIBSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = A8AF070443791A87599C26E1E46E74B1 /* YBIBSheetView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 135 538760AA208FF206F3BF4156545C0AEC /* YBIBSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = A8AF070443791A87599C26E1E46E74B1 /* YBIBSheetView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
144 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7A2AD834B988AB862338A88298281712 /* YBImageBrowser.bundle */; }; 136 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7A2AD834B988AB862338A88298281712 /* YBImageBrowser.bundle */; };
@@ -146,23 +138,23 @@ @@ -146,23 +138,23 @@
146 54F83939D254C814BD261C4F9067EE45 /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = C805133F6D3AF69C8994E6375F7B7155 /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 138 54F83939D254C814BD261C4F9067EE45 /* YYImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = C805133F6D3AF69C8994E6375F7B7155 /* YYImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
147 54F962BB1E3633A8CE3CD524A2A091EC /* NSObject+YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1238AEB9DF5C8189A50C5E4E0B74DC2E /* NSObject+YBImageBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 139 54F962BB1E3633A8CE3CD524A2A091EC /* NSObject+YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1238AEB9DF5C8189A50C5E4E0B74DC2E /* NSObject+YBImageBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
148 5551655EE581057624E66895BC5A99EF /* YYTextLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B4A7C95058000CD832DBF4537DCFBA4 /* YYTextLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 140 5551655EE581057624E66895BC5A99EF /* YYTextLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B4A7C95058000CD832DBF4537DCFBA4 /* YYTextLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
149 - 561EAFCC4AA4A4FFA55319ACF371D31C /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECDD31DCADBB91FE191C953267FFF2D /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; 141 + 55F81E8A4E05DCEA1424C070100D7A08 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0027B01676377B9218BE8AA537BDAA8A /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
150 565EE0410B39DE584B5CB1DC63FF74A9 /* YBIBDataMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 80A4A26F23AC2E0F4F5EBC0F4B53543D /* YBIBDataMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 142 565EE0410B39DE584B5CB1DC63FF74A9 /* YBIBDataMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = 80A4A26F23AC2E0F4F5EBC0F4B53543D /* YBIBDataMediator.h */; settings = {ATTRIBUTES = (Public, ); }; };
151 - 56D4C3BEBAF6D7B57123C4A919EDFC4D /* UIImage+ForceDecode.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A63106E180D500BA4681CBFF159C50 /* UIImage+ForceDecode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 143 + 56D932D22CCE25078DDC72863C793EB6 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = CA2F973E303B162092C59FA182AC2842 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
  144 + 571964893E54957A53F88749EA22E79B /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6076834A27CA897C42FFDA170BDE4715 /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
152 572FF20566D47336C057266897DE4592 /* YBIBVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3378EC961A947D7584285C497BA5C833 /* YBIBVideoCell.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 145 572FF20566D47336C057266897DE4592 /* YBIBVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3378EC961A947D7584285C497BA5C833 /* YBIBVideoCell.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
153 57AA56BCB8A92A8D90C5BA695D8E8FC8 /* UIApplication+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 03021F927B254ED434510FB85A91E7DE /* UIApplication+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 146 57AA56BCB8A92A8D90C5BA695D8E8FC8 /* UIApplication+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 03021F927B254ED434510FB85A91E7DE /* UIApplication+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
154 - 580A58EB2DC597145BE726FF15B7B980 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F204DC3ADE5CAA2617773E3A9EFDDBB /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 147 + 584691DE6F6DC43CCB28E2164DDD65C5 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C0EBBBE53B935FF0453555166C8BD82 /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; };
155 588A0B34308F4D28990E6B5C34B14E57 /* YYTextInput.h in Headers */ = {isa = PBXBuildFile; fileRef = E7A8CFE58CA45BE0CF414ED53D7E9831 /* YYTextInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; 148 588A0B34308F4D28990E6B5C34B14E57 /* YYTextInput.h in Headers */ = {isa = PBXBuildFile; fileRef = E7A8CFE58CA45BE0CF414ED53D7E9831 /* YYTextInput.h */; settings = {ATTRIBUTES = (Public, ); }; };
156 - 5BCB8102AFF58BDD96E0C059F9B88BB5 /* SDGraphicsImageRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6016CD6764077B1F107BD22483AA7D14 /* SDGraphicsImageRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; };  
157 - 5C11EACACCF1A59EC89E212517D471D2 /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F73E603FC59F5282264218DA84C3E5B7 /* SDImageHEICCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
158 - 5C5058FC446A9C6C4F3FA70C2121A267 /* SDImageFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = C43DE0B9900A2DBDABA15312032D955B /* SDImageFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; 149 + 5B6E86C662422D902876E9564F7D0D62 /* SDAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = CCFF6195D3943C3B2EE93D641F705287 /* SDAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
  150 + 5BB4DED775A9AB9259E214C9543F2409 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = AD9AD3087AA0C54D99784B1E96B8F385 /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; };
159 5CE0FBC3853B89C290600C1D8FAA316D /* YBIBAuxiliaryViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 618A21680667BDF2F6B320EC659C0C8A /* YBIBAuxiliaryViewHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 151 5CE0FBC3853B89C290600C1D8FAA316D /* YBIBAuxiliaryViewHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 618A21680667BDF2F6B320EC659C0C8A /* YBIBAuxiliaryViewHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
160 5D2EAD73E6A402F5BFED5E1899810342 /* NSData+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B63F966DDF9161A1C29525E49D01A94F /* NSData+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 152 5D2EAD73E6A402F5BFED5E1899810342 /* NSData+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B63F966DDF9161A1C29525E49D01A94F /* NSData+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  153 + 5D93304CCA386D1CA921179A22788088 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3977DF74625040A3E0128C656F9FA8D0 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
161 5DADAC8CF846B868BB1435BA03B14CB9 /* YBIBWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = E11C276295B8B9FBB66B8CFCEDD10534 /* YBIBWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 154 5DADAC8CF846B868BB1435BA03B14CB9 /* YBIBWebImageMediator.h in Headers */ = {isa = PBXBuildFile; fileRef = E11C276295B8B9FBB66B8CFCEDD10534 /* YBIBWebImageMediator.h */; settings = {ATTRIBUTES = (Public, ); }; };
162 5E21A134F5D88BEDF281002DBB92E3F7 /* YYTextEffectWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = D12BADAA1C1EED1E8EFC4C3B586A68EF /* YYTextEffectWindow.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 155 5E21A134F5D88BEDF281002DBB92E3F7 /* YYTextEffectWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = D12BADAA1C1EED1E8EFC4C3B586A68EF /* YYTextEffectWindow.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
163 5E2CDADC7CCD44D0C28AB2517341C12F /* MKAnnotationView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9505B72CDB9E287780696B552708241D /* MKAnnotationView+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 156 5E2CDADC7CCD44D0C28AB2517341C12F /* MKAnnotationView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9505B72CDB9E287780696B552708241D /* MKAnnotationView+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
164 - 5E96F449788433CD16C308CA4C4974AB /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 9915D39521761F821273ED4AD94F462B /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };  
165 - 5EC0E24AEBC97BED8827D6824B20AEA3 /* SDWebImageDownloaderDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 5566B7FA1592DB68F47F538060773A34 /* SDWebImageDownloaderDecryptor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 157 + 5F7825DA2B38AE6F113742CD8640B6A5 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F853EDBA5EE0AFD5FF80DF4E069774 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
166 5FF823B0C133DC09A947E1EEA83AE787 /* YBImageBrowser+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B6665B0FCAC9FA4988670409B6B9EF /* YBImageBrowser+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 158 5FF823B0C133DC09A947E1EEA83AE787 /* YBImageBrowser+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B6665B0FCAC9FA4988670409B6B9EF /* YBImageBrowser+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
167 604E401B7BD596E58D52BD8C3439E285 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F0A032626FFA7C226DF55204CF32C5A /* CoreImage.framework */; }; 159 604E401B7BD596E58D52BD8C3439E285 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F0A032626FFA7C226DF55204CF32C5A /* CoreImage.framework */; };
168 608BA5B01D1787C25CE77E5A4B61010C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E1DF05D31C52BDD36D3C352B6D38143 /* MobileCoreServices.framework */; }; 160 608BA5B01D1787C25CE77E5A4B61010C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E1DF05D31C52BDD36D3C352B6D38143 /* MobileCoreServices.framework */; };
@@ -170,124 +162,112 @@ @@ -170,124 +162,112 @@
170 613F0D98262025998DBC67A9DD29438C /* YYKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = E1789ACB2E0A630C9C7419690313D4BD /* YYKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; 162 613F0D98262025998DBC67A9DD29438C /* YYKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = E1789ACB2E0A630C9C7419690313D4BD /* YYKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
171 623635ED16355C8405DDCCEE7E014476 /* YBIBVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = ED78F9035D62E00668B4A848571B55C4 /* YBIBVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 163 623635ED16355C8405DDCCEE7E014476 /* YBIBVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = ED78F9035D62E00668B4A848571B55C4 /* YBIBVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; };
172 62EE7A80845DFDB75A9E1F0ABEE8A761 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F23B513D9D8F0D3A6E0802706EAAE0A0 /* YYClassInfo.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 164 62EE7A80845DFDB75A9E1F0ABEE8A761 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F23B513D9D8F0D3A6E0802706EAAE0A0 /* YYClassInfo.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
173 - 64CB4C39356EDD005F3104B820F4B299 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = EFBE035B06C6B5FC5316B23AA385AEB7 /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 165 + 637C07DAF593E361026C13455CED3356 /* SDImageIOCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7492D3D26ACA17BE066949BC5402EFA6 /* SDImageIOCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  166 + 6419E84A00BD1CC2D89FBD11DBA95B35 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 95D767BEAA3A22D8C4B4F881F593EA55 /* SDAsyncBlockOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  167 + 642B272637AFE100C01566715BE9A90E /* SDAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 994DDB7514B65007DB23743EE9419955 /* SDAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
174 64CE031D05AF0C7617076D3ADD88DCB8 /* YBIBImageLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 375D9DE1B1D8EB4B9968FB74F25DE792 /* YBIBImageLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 168 64CE031D05AF0C7617076D3ADD88DCB8 /* YBIBImageLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 375D9DE1B1D8EB4B9968FB74F25DE792 /* YBIBImageLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
175 - 64F3EB426774D6F1D593DBFAFFBF6791 /* SDWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 467332BA4DF047A604E2AD170D2A9A6C /* SDWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };  
176 - 66794E1E249B57756C75632B1CF7AA7A /* UIImage+ForceDecode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4423F2AF5E01BBBB5F27784F5DA57247 /* UIImage+ForceDecode.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 169 + 66ABFE235C4A3EE1284E40B26EC06E50 /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 26EEACAD4CFF038839E5CAE01FC51426 /* SDImageAssetManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  170 + 66E7DB4A06FD62E3319504FA066A159D /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FBAFB1147F9F60F82F67F2F93767AEA8 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
177 66EEEC491B30074BACEFD2257033864B /* YBImageBrowser_DSCnliveShop-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 30A5E7177537475E2A71D3D8A0E4C58F /* YBImageBrowser_DSCnliveShop-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 171 66EEEC491B30074BACEFD2257033864B /* YBImageBrowser_DSCnliveShop-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 30A5E7177537475E2A71D3D8A0E4C58F /* YBImageBrowser_DSCnliveShop-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
178 6711B19F0807169D6079C83D4BFDF7D2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 027369B6DC1B43C3102AE522A00B351F /* CoreGraphics.framework */; }; 172 6711B19F0807169D6079C83D4BFDF7D2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 027369B6DC1B43C3102AE522A00B351F /* CoreGraphics.framework */; };
179 676B7D9D11B4F2687F9B296CC9950AA7 /* YYTextMagnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B436707B203DBCBB754448AF3071705A /* YYTextMagnifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 173 676B7D9D11B4F2687F9B296CC9950AA7 /* YYTextMagnifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B436707B203DBCBB754448AF3071705A /* YYTextMagnifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
180 67992FD17748FE24783B25E1BF320274 /* YYLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = C183149AE26EC946A2F3DEA358713217 /* YYLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 174 67992FD17748FE24783B25E1BF320274 /* YYLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = C183149AE26EC946A2F3DEA358713217 /* YYLabel.h */; settings = {ATTRIBUTES = (Public, ); }; };
181 68F3A40EADC0AF71E41CC70C36F6976E /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 410FD0E1E2173C4AFCCB371FC6932374 /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 175 68F3A40EADC0AF71E41CC70C36F6976E /* YYFrameImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 410FD0E1E2173C4AFCCB371FC6932374 /* YYFrameImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
182 696CD1B74C639EE917E0D2A956F50935 /* YYTextUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AA17CCA3C4553252CF80AEF70404A8 /* YYTextUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 176 696CD1B74C639EE917E0D2A956F50935 /* YYTextUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B5AA17CCA3C4553252CF80AEF70404A8 /* YYTextUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
183 - 69979E7EF7E1322AF64B9D04EC5DC4FC /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 1249E97F29FD39E6B5CA9DD3D122921C /* SDImageCacheDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
184 69B6CA397711950A1FB1F7159D8C730D /* YBIBCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FA23E05944FF1B0AD4A1CAE80AE86E /* YBIBCollectionView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 177 69B6CA397711950A1FB1F7159D8C730D /* YBIBCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FA23E05944FF1B0AD4A1CAE80AE86E /* YBIBCollectionView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
185 - 69FC796803AADF6F7D78E034F759E07A /* SDFileAttributeHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F25D99C7ED5F7ECE058950E756B815B /* SDFileAttributeHelper.h */; settings = {ATTRIBUTES = (Private, ); }; }; 178 + 69B78205FADBA6F82DD7D8842E744559 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF96D9B286912D2041A6038E44BF9D78 /* SDWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
186 6AFF36353F18609B9EBF04EEFFF0AB4B /* YBIBPhotoAlbumManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ACB2C18C7F7569D6D85619691655DB76 /* YBIBPhotoAlbumManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 179 6AFF36353F18609B9EBF04EEFFF0AB4B /* YBIBPhotoAlbumManager.h in Headers */ = {isa = PBXBuildFile; fileRef = ACB2C18C7F7569D6D85619691655DB76 /* YBIBPhotoAlbumManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
187 - 6B8E9A4250E31C61FFB2FA44B1ED587D /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = FDF39D0D9A539DD852E83070D546838D /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; 180 + 6B841305B372900E43EAD6CF233EA695 /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 397498F9C1EC4E17B000928E2E9A2551 /* UIImageView+HighlightedWebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
188 6BACCB1BBF481BA828D7226094996218 /* UIBezierPath+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = AF18321586C240857382009824EBDB64 /* UIBezierPath+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 181 6BACCB1BBF481BA828D7226094996218 /* UIBezierPath+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = AF18321586C240857382009824EBDB64 /* UIBezierPath+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
189 6C294CB68EBA0C3F43058CCA6D0629DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; }; 182 6C294CB68EBA0C3F43058CCA6D0629DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
  183 + 6C9E415ACF9DBBF5276A439ECA83FF41 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A3758E1F2262F48C18DEA44579E7F23 /* SDImageCodersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
190 6DCEAB9BC2D35D749577C700151E76BE /* YYCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA7CBEA43C737A330D9608FE7806297 /* YYCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 184 6DCEAB9BC2D35D749577C700151E76BE /* YYCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BA7CBEA43C737A330D9608FE7806297 /* YYCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
191 - 6F14B66A0031F8CD2DBD49D05F285A5A /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B374325A4827DE6AA8D86E8A4CA0C0E /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
192 - 6F52C02EB7BEBB28BEF797764940E83D /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 115DF10AB89F4BD3959B0760E6FF7F5A /* SDImageTransformer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 185 + 6E23CCE1DD2C5694FB3733EF5969C2BA /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 843DE7A9D5751B6D1E4B542142E88BE5 /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
193 6FFF65E8EF55589DBF7739C2B3C0C408 /* YYTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C9F42DE0F28AF77F3789C8BD0F8A78 /* YYTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; 186 6FFF65E8EF55589DBF7739C2B3C0C408 /* YYTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C9F42DE0F28AF77F3789C8BD0F8A78 /* YYTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; };
194 7100C768AE648D8FF211D24F285AF3F7 /* YYTextRunDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 89E1C94E51AFCA8ADEB14A14D7E5C910 /* YYTextRunDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 187 7100C768AE648D8FF211D24F285AF3F7 /* YYTextRunDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 89E1C94E51AFCA8ADEB14A14D7E5C910 /* YYTextRunDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
195 - 71C055BCF544D98F47CCFB404A9157A0 /* SDWebImageTransitionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DF0BE15112187DE13F59F20FD37196BF /* SDWebImageTransitionInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };  
196 71F103B56B2BE2EED9760CB429416EC9 /* NSArray+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = EF5D08601B4B637FF284E68A8EEC858C /* NSArray+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 188 71F103B56B2BE2EED9760CB429416EC9 /* NSArray+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = EF5D08601B4B637FF284E68A8EEC858C /* NSArray+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
  189 + 720BDB7561A9BF9FAA229655BF6BAACB /* SDImageCachesManagerOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A2EE608D10670E27D666BCB148BE76A8 /* SDImageCachesManagerOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
197 7239A93C05A719FEA5955CA08CACD819 /* NSBundle+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D073BDA908719B072B9A52BECCED3D /* NSBundle+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 190 7239A93C05A719FEA5955CA08CACD819 /* NSBundle+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D073BDA908719B072B9A52BECCED3D /* NSBundle+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
198 - 725C541DA4309D9A2CE04EA1BAC9DB05 /* SDGraphicsImageRenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DB88B001512FB115B60C0A194FAB687 /* SDGraphicsImageRenderer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
199 - 7320BE37CC5564C9200656A346D16D7C /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = ECCFB33F5B2FAFCB9059F1EA4872AD5E /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 191 + 7296ED68E239CF8323284C327EFD34DB /* SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FB1475C6AAE3E931553C57D2012437B /* SDWebImage-dummy.m */; };
200 74A52BA6F30673465B7D46D9C0D589DF /* NSObject+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1FC22A806424A9D295AA3C1785B496 /* NSObject+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 192 74A52BA6F30673465B7D46D9C0D589DF /* NSObject+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1FC22A806424A9D295AA3C1785B496 /* NSObject+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
201 - 758D45C8E630A9B2A29746AFAB257929 /* UIImage+ExtendedCacheData.h in Headers */ = {isa = PBXBuildFile; fileRef = 885401F9AE5B59CB193871CFBB1551CC /* UIImage+ExtendedCacheData.h */; settings = {ATTRIBUTES = (Public, ); }; };  
202 75EFCC25F3AB66922773B08B40ACB930 /* YBIBImageCache+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 327DD14828A174C897406BB7ACBB30E7 /* YBIBImageCache+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 193 75EFCC25F3AB66922773B08B40ACB930 /* YBIBImageCache+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 327DD14828A174C897406BB7ACBB30E7 /* YBIBImageCache+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
  194 + 765CF9D27014B63D63045C295D14D47F /* SDImageCodersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 106CDD63C990007C4EBED229576FD0E6 /* SDImageCodersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
  195 + 768B0529984555456940B969FB3B0C5B /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9F2CAB3EBC390CC9C5DF6FEB4AE54E /* UIView+WebCacheOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
203 771B60C15778D6A1F7F9EBA03217C0FE /* YBIBSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1FEAA05AC81F62B91CF98EA70351DD /* YBIBSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; }; 196 771B60C15778D6A1F7F9EBA03217C0FE /* YBIBSentinel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C1FEAA05AC81F62B91CF98EA70351DD /* YBIBSentinel.h */; settings = {ATTRIBUTES = (Public, ); }; };
204 - 7829F86094FA530717C4AF09DFA1FCB7 /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = A86C89F5D3FD68F631C6AAB3E9FFDB67 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; 197 + 773F599C7937832DC3E3C3F5FC41A2BF /* SDWebImageCacheSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = E6AC77D76359DA3AB60BBECA32896CFA /* SDWebImageCacheSerializer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
205 783E03543353E623E739BE78A5929AF8 /* YBIBLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 45819A3D4F8AF3FCF1D0D1AF84EADC51 /* YBIBLoadingView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 198 783E03543353E623E739BE78A5929AF8 /* YBIBLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 45819A3D4F8AF3FCF1D0D1AF84EADC51 /* YBIBLoadingView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
206 78425788741B147A8800D730F768DDC9 /* UITableView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = DD5396322ED69A5415D1CCD0B6393CA3 /* UITableView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 199 78425788741B147A8800D730F768DDC9 /* UITableView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = DD5396322ED69A5415D1CCD0B6393CA3 /* UITableView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
207 7854082241AE68119F337D38216F3C71 /* YBIBCopywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = B693FD0CA179F7A03CC3787C32366CA7 /* YBIBCopywriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 200 7854082241AE68119F337D38216F3C71 /* YBIBCopywriter.h in Headers */ = {isa = PBXBuildFile; fileRef = B693FD0CA179F7A03CC3787C32366CA7 /* YBIBCopywriter.h */; settings = {ATTRIBUTES = (Public, ); }; };
208 - 78A8F86E5996E580294B65E304C65F6A /* SDImageCachesManagerOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F3FA042CB9FEAE916F9354DD0FFDC410 /* SDImageCachesManagerOperation.h */; settings = {ATTRIBUTES = (Private, ); }; }; 201 + 78C4797B83602657490272FB5AC87882 /* SDWebImage-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 159B608142C5AD0E99E00479F64CDAFE /* SDWebImage-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
209 7906BC8879E295E9832A8668BEDAD6E9 /* YBIBDefaultWebImageMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = 60FC5BFD7F334913232A59633DEE5138 /* YBIBDefaultWebImageMediator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 202 7906BC8879E295E9832A8668BEDAD6E9 /* YBIBDefaultWebImageMediator.m in Sources */ = {isa = PBXBuildFile; fileRef = 60FC5BFD7F334913232A59633DEE5138 /* YBIBDefaultWebImageMediator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
210 - 79140F3DB1DFA9969EF7EA809862461B /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CA02462DD9F35B55FD8C20DC0A0CDBC /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };  
211 - 7A39F3B62173880BC1A1E872B2B0DE19 /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 7136C53C3E86DF97021DEAC46C3AF414 /* SDWebImageTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
212 - 7BDCFF16AD5094651DDF91E007A194A1 /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = 1780A6FB6896D6EE58CA176A32A91167 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; }; 203 + 7AA1932AD1AADADB7084C1120E353441 /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = C343BEA71DA4406F27A27215550DB0CA /* SDWebImageIndicator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  204 + 7BE352AC96A490424A89542C59B92D27 /* SDAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2594CEE3269A686FE6A32ADF1ACDA903 /* SDAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
213 7BFB921FDAB6E3FE9ECDECF872C8E101 /* NSObject+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A650BD7991FDA4D59B763DC0B897B5 /* NSObject+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 205 7BFB921FDAB6E3FE9ECDECF872C8E101 /* NSObject+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A650BD7991FDA4D59B763DC0B897B5 /* NSObject+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
214 - 7C9BCCE2BE2AB0F74617E9638E8383E2 /* SDAsyncBlockOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 14EF33DBBD181973544221E30D2DC4B9 /* SDAsyncBlockOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };  
215 - 7CB9508A6133F4674F3358339F62CF03 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 03A09A7D80E19CC940BE2323D0536D61 /* UIImage+MultiFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };  
216 7D3C72B253473131AA5D6B75A4044A4D /* YYTextLine.m in Sources */ = {isa = PBXBuildFile; fileRef = CAF78B066BA4AA1500A5DFC15357B69A /* YYTextLine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 206 7D3C72B253473131AA5D6B75A4044A4D /* YYTextLine.m in Sources */ = {isa = PBXBuildFile; fileRef = CAF78B066BA4AA1500A5DFC15357B69A /* YYTextLine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
217 7E798DEF60E5AB2D32D36B2604826737 /* YBIBImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 849AFCF98DA4C75651F5D475A19348D0 /* YBIBImageCell.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 207 7E798DEF60E5AB2D32D36B2604826737 /* YBIBImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 849AFCF98DA4C75651F5D475A19348D0 /* YBIBImageCell.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
218 - 7F47C6E48CDC5A9B788F8EB05D826BE6 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */; };  
219 7F779583472271986B6B9AFE3C708D20 /* CALayer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAA1659DC5FA259CDDED68F436C2BF1 /* CALayer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 208 7F779583472271986B6B9AFE3C708D20 /* CALayer+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAA1659DC5FA259CDDED68F436C2BF1 /* CALayer+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  209 + 8095235275C7774DBD0439AEBF02EBF9 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = C2DE3B8DDA43BF244A83FA3A8E49B9C4 /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
220 8162CC737D0F996DB7986B1B89C50B29 /* NSParagraphStyle+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 0501ADF2BFD7B3CD05199AEA120542A3 /* NSParagraphStyle+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 210 8162CC737D0F996DB7986B1B89C50B29 /* NSParagraphStyle+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = 0501ADF2BFD7B3CD05199AEA120542A3 /* NSParagraphStyle+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
221 - 826CC80A43888E4B01B8C0F546CCEB4C /* SDAnimatedImagePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = E6B26DB6EEA41E128F36B8CCD8BA6C90 /* SDAnimatedImagePlayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
222 82B7DA9954D4613DC589CF3A6D681E3A /* YBIBInteractionProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = AA0DFD4E17C227B014108A94D20370E6 /* YBIBInteractionProfile.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 211 82B7DA9954D4613DC589CF3A6D681E3A /* YBIBInteractionProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = AA0DFD4E17C227B014108A94D20370E6 /* YBIBInteractionProfile.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
223 82F9FC32B8CEFF860D7AF3ED3D109D79 /* YBIBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 33F8253486294181F468179983E49503 /* YBIBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; 212 82F9FC32B8CEFF860D7AF3ED3D109D79 /* YBIBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 33F8253486294181F468179983E49503 /* YBIBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
224 831E7B86A0A02A8B9099B742E8B9F365 /* NSObject+YYAddForARC.h in Headers */ = {isa = PBXBuildFile; fileRef = E6549BAAE978C54E9943845A282B7887 /* NSObject+YYAddForARC.h */; settings = {ATTRIBUTES = (Public, ); }; }; 213 831E7B86A0A02A8B9099B742E8B9F365 /* NSObject+YYAddForARC.h in Headers */ = {isa = PBXBuildFile; fileRef = E6549BAAE978C54E9943845A282B7887 /* NSObject+YYAddForARC.h */; settings = {ATTRIBUTES = (Public, ); }; };
225 - 84996105619FE8603B904EBD8CAF4650 /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CB6206FBA44F9BD5BB69EB2338D24399 /* SDAnimatedImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 214 + 83A3C38994C1BE0F1B3FDC74FF3EB86E /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 631A43488B8C087EA660030CD2484EA9 /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; };
226 85433B42BB6C81E20A75F25805D4BCDB /* YYTextSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C9EBF2F4721D7796CABB86E57141312 /* YYTextSelectionView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 215 85433B42BB6C81E20A75F25805D4BCDB /* YYTextSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C9EBF2F4721D7796CABB86E57141312 /* YYTextSelectionView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
227 856B3588D32C1F7B1F12D7EFEB3E6F0B /* YYCGUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C67FA1CF5455B750586F3E50B4AEE6B5 /* YYCGUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 216 856B3588D32C1F7B1F12D7EFEB3E6F0B /* YYCGUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = C67FA1CF5455B750586F3E50B4AEE6B5 /* YYCGUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
228 858027A29B152077943E0A28CE622EB5 /* YYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = B24C89AA8E69F17D8867CB8BAF8453DA /* YYLabel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 217 858027A29B152077943E0A28CE622EB5 /* YYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = B24C89AA8E69F17D8867CB8BAF8453DA /* YYLabel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
229 - 858BA6CE212BDE681F7B8EC99CDEA5A2 /* SDImageLoadersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CE599BD66BC1D5DBF2513D84C9CF10D2 /* SDImageLoadersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };  
230 85B06803E42F5D23940D925E5B50BC20 /* CALayer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 638CD74411415C9BD0B7940010462593 /* CALayer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 218 85B06803E42F5D23940D925E5B50BC20 /* CALayer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 638CD74411415C9BD0B7940010462593 /* CALayer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
231 - 85B91AFDF4CF2F4FB54D35AE96CB02DE /* SDAssociatedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 12B66AB16766AB4060516E7814443E08 /* SDAssociatedObject.h */; settings = {ATTRIBUTES = (Private, ); }; };  
232 - 86A92CFC75F685F5805824C81ED34DD9 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 71AEC717DE657C306DC4220359875899 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; };  
233 86AA30BB751B23F8B7D87847A0D22CDC /* UIColor+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B392E50F95AAAED6E6AF60D7A6FBA53 /* UIColor+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 219 86AA30BB751B23F8B7D87847A0D22CDC /* UIColor+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B392E50F95AAAED6E6AF60D7A6FBA53 /* UIColor+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  220 + 873613A08846E4C11A3D0504EF738DD3 /* UIView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C25A06B05CE4932A05E03D9A5B91E1A /* UIView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
234 8789F7B4DB1B1FB100F83B649A587A7E /* UIBarButtonItem+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 50E241CBBD2EF97B17ECA31FEAF181E7 /* UIBarButtonItem+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 221 8789F7B4DB1B1FB100F83B649A587A7E /* UIBarButtonItem+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 50E241CBBD2EF97B17ECA31FEAF181E7 /* UIBarButtonItem+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
235 87BA235C9033EB1E9BD42009504AF9EC /* YBIBIconManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AD92986443124E1DCE997385B496FB7 /* YBIBIconManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 222 87BA235C9033EB1E9BD42009504AF9EC /* YBIBIconManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AD92986443124E1DCE997385B496FB7 /* YBIBIconManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
236 882B95F4DB08FE20F2326F2C36D7844A /* YBIBPhotoAlbumManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14462A5B7907FCC9A6CC6EAD33842356 /* YBIBPhotoAlbumManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 223 882B95F4DB08FE20F2326F2C36D7844A /* YBIBPhotoAlbumManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14462A5B7907FCC9A6CC6EAD33842356 /* YBIBPhotoAlbumManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
237 - 8860B7C942F4FDAC599E545DEC6E0446 /* SDImageAssetManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 657DCFEE5B399779371CC2AC2AAAA206 /* SDImageAssetManager.h */; settings = {ATTRIBUTES = (Private, ); }; };  
238 886F2D2210CE2308AA97C645044F692D /* UIBezierPath+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A08FF9357329D825160ABB1311027C9 /* UIBezierPath+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 224 886F2D2210CE2308AA97C645044F692D /* UIBezierPath+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A08FF9357329D825160ABB1311027C9 /* UIBezierPath+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
239 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 78C427ED00AF6FA74B7F70468B7F9537 /* YBImageBrowserVideo.bundle */; }; 225 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 78C427ED00AF6FA74B7F70468B7F9537 /* YBImageBrowserVideo.bundle */; };
240 890F7FAF9C784AFD91B418628C895EA5 /* UIFont+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A37969EF9EE0C673EADF254ACD0FE1C /* UIFont+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 226 890F7FAF9C784AFD91B418628C895EA5 /* UIFont+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A37969EF9EE0C673EADF254ACD0FE1C /* UIFont+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
241 - 89A6805309AE158EA70271058AD04DAC /* SDImageIOAnimatedCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC1A8B570BBF9B90CBC65027B601DEE /* SDImageIOAnimatedCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
242 - 8A1D68B08A42906461750649F460B63E /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A788FE41CE72DC285C7E12274B2EEA45 /* SDImageCacheConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 227 + 89AA4B620BAF006802F7FE16331FBB03 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 85323CE74E87D9048ABFE6CB1D80BCB5 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  228 + 8AAEE8B8F842102CB770F4A2C286AEE0 /* NSBezierPath+RoundedCorners.m in Sources */ = {isa = PBXBuildFile; fileRef = DFFBF564BC41F65FF3EF9F404A3FF8A5 /* NSBezierPath+RoundedCorners.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
243 8AE9809EDD831DD756AA7CE5682506C1 /* _YYWebImageSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A76D4662C854612618E547F25B4B90A5 /* _YYWebImageSetter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 229 8AE9809EDD831DD756AA7CE5682506C1 /* _YYWebImageSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = A76D4662C854612618E547F25B4B90A5 /* _YYWebImageSetter.h */; settings = {ATTRIBUTES = (Public, ); }; };
244 - 8B74D26ECDC0A95EADFD2FE3D6044F45 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F30AC9537E6584F35D8DD4C10EDB7B1 /* UIImage+MemoryCacheCost.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
245 - 8BE030582BFA5590BC7A1EB1A7E8DDC4 /* SDImageCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F4C26425407B34D7EF26491A3F6C3412 /* SDImageCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 230 + 8B3648DF3CD6DCE1F23B154EEC9F47BC /* SDAnimatedImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 523A9DF244F75BFD8EF7183295D79237 /* SDAnimatedImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  231 + 8B36C6BD6BC521D6EBFAA6C06204C8AE /* UIColor+HexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D082DCD13F9572880B69B6E5DBA621E /* UIColor+HexString.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
246 8C0825934BBB790BB7D7F435B99A835F /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = C9B5994C44BF5B2184C156762E7CE811 /* UIView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 232 8C0825934BBB790BB7D7F435B99A835F /* UIView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = C9B5994C44BF5B2184C156762E7CE811 /* UIView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
247 8C2F2218E1D1A409DB32DEB82289DA8D /* YYDispatchQueuePool.m in Sources */ = {isa = PBXBuildFile; fileRef = F3DE1A955E99033B5412502804883E07 /* YYDispatchQueuePool.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 233 8C2F2218E1D1A409DB32DEB82289DA8D /* YYDispatchQueuePool.m in Sources */ = {isa = PBXBuildFile; fileRef = F3DE1A955E99033B5412502804883E07 /* YYDispatchQueuePool.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
248 - 8D6092C5708543E1975D21EF342829A9 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = DA18D81BDAB5332971532C646A936989 /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
249 - 8D7206334016EF356DD5C06DB743927A /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CF9EB80B340726BF23F53617B34B3575 /* SDMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
250 8E31AD7B15C74C86FAAC41197FFD834C /* UIView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC1CFF6509F136C99FC9C20BC2F40A9 /* UIView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 234 8E31AD7B15C74C86FAAC41197FFD834C /* UIView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC1CFF6509F136C99FC9C20BC2F40A9 /* UIView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
251 8EF950F7068D194AE492ECE97195952B /* YBIBCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = D90E67DC9CA5A5BBD19018BD64C3ED87 /* YBIBCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 235 8EF950F7068D194AE492ECE97195952B /* YBIBCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = D90E67DC9CA5A5BBD19018BD64C3ED87 /* YBIBCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
252 - 8F0623242A13E39BB0068F748D5A7819 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };  
253 - 9058F00D7FB0F44089EA7418C9BE80CD /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9998D272F6C21B92ECDBCC87B232F260 /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 236 + 902A0F8F36BB0CD612BD333AB538FFC0 /* UIView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 0847D06FD8D970FB3747D3FFE1EF1A98 /* UIView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
254 909A12FCA29D66EFCCDEE05DEAA25AD2 /* UIScreen+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F5253D89927E6E90C258D665347D1F07 /* UIScreen+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 237 909A12FCA29D66EFCCDEE05DEAA25AD2 /* UIScreen+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F5253D89927E6E90C258D665347D1F07 /* UIScreen+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
255 - 90B45AE4B48040DD4DF7B2521A41FA93 /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = EFFC73CFCA9A8BA73DF3B34FE5E9C8B0 /* UIImage+Metadata.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
256 - 9140B89832569466DC295558951FF9A4 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 14FC848A818168BBB863CFE049B98704 /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
257 - 9212629910630E2F8888272B38EA81E4 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B083F58677FB62CBAA120E34B5932133 /* UIImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
258 - 92253035C5C62FC047813B453A47011B /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4294BEEA87AE1F76B25087B05E8A9958 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 238 + 91EC5D1276C67BD151CE0945E99D346B /* SDImageHEICCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = DF6A0A2DCDCF701127D57F57D20CEE46 /* SDImageHEICCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
259 92670B7BB6CEA73A198E8A746E1C1CD2 /* YBIBScreenRotationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 305596E45FD137D2410A689DD199F532 /* YBIBScreenRotationHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 239 92670B7BB6CEA73A198E8A746E1C1CD2 /* YBIBScreenRotationHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 305596E45FD137D2410A689DD199F532 /* YBIBScreenRotationHandler.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
260 92913C44AD4321D8421DE300F0A9286E /* YYKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F34CC7CBACC2F933C4B4839C7EC1F010 /* YYKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; 240 92913C44AD4321D8421DE300F0A9286E /* YYKit.h in Headers */ = {isa = PBXBuildFile; fileRef = F34CC7CBACC2F933C4B4839C7EC1F010 /* YYKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
261 936E1D7A3C66AE0EF67123511CD08229 /* CALayer+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A4D5229E0CA5F30FA43F226DA32F462 /* CALayer+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 241 936E1D7A3C66AE0EF67123511CD08229 /* CALayer+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A4D5229E0CA5F30FA43F226DA32F462 /* CALayer+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
262 - 949BA4CC204D826571EA4E85BA769DB7 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD0F8422DC31BC404DEB779AA5DB139 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; };  
263 - 95D70798AF08A9AF6AC0455ABAC50B31 /* SDWebImageError.h in Headers */ = {isa = PBXBuildFile; fileRef = 03964B173BAD2879E938A697CDE23E58 /* SDWebImageError.h */; settings = {ATTRIBUTES = (Public, ); }; }; 242 + 93EEC3D112C8D5BAF8202BBB7C0F8D40 /* SDImageTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 662B362504EE532B6C5EAA6DEDDC5D23 /* SDImageTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; };
  243 + 95AC0F0E049EC392931B147F1BA4C11E /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */; };
264 96AB2F6D7AE46198D83ED24B28E00003 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E06030C0DF9E059A44DC7D324FA93760 /* NSObject+YYModel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 244 96AB2F6D7AE46198D83ED24B28E00003 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E06030C0DF9E059A44DC7D324FA93760 /* NSObject+YYModel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
265 96FDF5B7C780A120B66EC7342764D4C0 /* NSParagraphStyle+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5FD9E63BBBE388DFDB5D32A946420D /* NSParagraphStyle+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; 245 96FDF5B7C780A120B66EC7342764D4C0 /* NSParagraphStyle+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5FD9E63BBBE388DFDB5D32A946420D /* NSParagraphStyle+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; };
  246 + 972F3D3004A38B2E91B514317462F912 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = E028311EA2C17015A8136F9F9A3DEEEC /* UIButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
266 9732D149C66794908C965F8C1945C883 /* MKAnnotationView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 23CB6B846F24E05FCCCC37E91C2CF35A /* MKAnnotationView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 247 9732D149C66794908C965F8C1945C883 /* MKAnnotationView+YYWebImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 23CB6B846F24E05FCCCC37E91C2CF35A /* MKAnnotationView+YYWebImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
267 989D406D24C2A82F500CDA7740E72F7F /* YYTextKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CC0CE9E8F82738D36611F6084F5F9C8 /* YYTextKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 248 989D406D24C2A82F500CDA7740E72F7F /* YYTextKeyboardManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CC0CE9E8F82738D36611F6084F5F9C8 /* YYTextKeyboardManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
268 98D3B3E9EA04801317B3AA768D4653AF /* UIPasteboard+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E6FAD07C5929BC33D1A767B8226595D /* UIPasteboard+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; 249 98D3B3E9EA04801317B3AA768D4653AF /* UIPasteboard+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E6FAD07C5929BC33D1A767B8226595D /* UIPasteboard+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; };
269 991B17A23FB6ED5F941D3DCEEC928568 /* NSBundle+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9387B514E9488C1E4C98357D42D4112E /* NSBundle+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 250 991B17A23FB6ED5F941D3DCEEC928568 /* NSBundle+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9387B514E9488C1E4C98357D42D4112E /* NSBundle+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
270 99A675497C0B12DF9BE36547C3D0BEBF /* YYTextEffectWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D190164465C91A9309173CCE20C5764 /* YYTextEffectWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; 251 99A675497C0B12DF9BE36547C3D0BEBF /* YYTextEffectWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D190164465C91A9309173CCE20C5764 /* YYTextEffectWindow.h */; settings = {ATTRIBUTES = (Public, ); }; };
  252 + 9A0E1A1BFFD28A2746792BE8D568E3AC /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D6E01939BAAB30A2190ACA1D161CDB /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
271 9A4B6430A6C62258BEE1D59C9F32A3CB /* NSDate+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A27A22E1F51A515951549616C10A4D43 /* NSDate+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 253 9A4B6430A6C62258BEE1D59C9F32A3CB /* NSDate+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A27A22E1F51A515951549616C10A4D43 /* NSDate+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
272 - 9A63822674C925980BCE24CF9162F224 /* SDAssociatedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 507EA85A920020FD53FDF4A254A318F9 /* SDAssociatedObject.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 254 + 9AA98747F0FFCB4629345C58F9DFF9A2 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB6A999880D99C4B8EAE70EC4D73221 /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
273 9AB3FC2B00EE9E46D879EA2A9DFA6F08 /* NSDictionary+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E435B666CD79060C4FCDA32BA104A7 /* NSDictionary+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 255 9AB3FC2B00EE9E46D879EA2A9DFA6F08 /* NSDictionary+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E435B666CD79060C4FCDA32BA104A7 /* NSDictionary+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
274 - 9B0ADFBD0EE010BC1AE32B290FAF2D70 /* SDAnimatedImagePlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DC9B7833ED252B3A3CDA8CD870E5136B /* SDAnimatedImagePlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };  
275 - 9B9C593A401B16CA1F27613B33259116 /* SDWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0786ADD48518359C5D9C950902C74B70 /* SDWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
276 - 9C39FA3EB2A9462B249432F655FC9AA8 /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 165A9BD2C6ABE7C53969D2E146053DCC /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };  
277 - 9C6F61B6DD8964A03128BB996BCCCDF5 /* NSImage+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D134637245A1D1291AEBC7FA27654E /* NSImage+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; };  
278 - 9CBF5A5EFC5491417ACEF9D2D6F604DD /* UIImage+Transform.m in Sources */ = {isa = PBXBuildFile; fileRef = 77BDAC0316DE945EDC00877B001E3F13 /* UIImage+Transform.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 256 + 9BE4B66909D27FA2DEE5D7B4DAF83DD5 /* SDImageCacheConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAB61DD2D434A28A27FC5DFC9B7D499 /* SDImageCacheConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
279 9CC0EAE583AE53B63027C788AE199A3A /* UIImage+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E515123172BB360DF3179CFE108F842C /* UIImage+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 257 9CC0EAE583AE53B63027C788AE199A3A /* UIImage+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E515123172BB360DF3179CFE108F842C /* UIImage+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
280 9E9EF2A2744A9618CBCF3130012C9C83 /* YBIBAnimatedTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 780BD6CD409902FCCA79E07B8449B0DB /* YBIBAnimatedTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; 258 9E9EF2A2744A9618CBCF3130012C9C83 /* YBIBAnimatedTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 780BD6CD409902FCCA79E07B8449B0DB /* YBIBAnimatedTransition.h */; settings = {ATTRIBUTES = (Public, ); }; };
  259 + 9F45ED51FB250F999DF9EEE26706306F /* SDImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 78D88E09C574752B379AC19B8561A84F /* SDImageTransformer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  260 + 9F69D6D21857F40138D7EF02C9934F61 /* UIImage+MemoryCacheCost.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C27D070CBE7191DD5328960C7C772E /* UIImage+MemoryCacheCost.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
281 9F72C9269F972EEC75FFB02E1B006D75 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A607C9A3CDD44ED7C4A717482C4D60A3 /* UIKit.framework */; }; 261 9F72C9269F972EEC75FFB02E1B006D75 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A607C9A3CDD44ED7C4A717482C4D60A3 /* UIKit.framework */; };
  262 + 9F8771C9472203AC8A6B882D32E081FD /* SDImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F882F7E87C969BC4F446959C4C96507 /* SDImageLoader.h */; settings = {ATTRIBUTES = (Public, ); }; };
282 9FB67DB92440E1D202FA1D557981970C /* YYTextDebugOption.m in Sources */ = {isa = PBXBuildFile; fileRef = E904FC5D8903C2F05EA80AE4EB158849 /* YYTextDebugOption.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 263 9FB67DB92440E1D202FA1D557981970C /* YYTextDebugOption.m in Sources */ = {isa = PBXBuildFile; fileRef = E904FC5D8903C2F05EA80AE4EB158849 /* YYTextDebugOption.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
283 9FFD301A8B71CD3BBAF1B47ABE706FB3 /* YYFileHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 8475110C42C3E42DC61F264C6BE773D6 /* YYFileHash.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 264 9FFD301A8B71CD3BBAF1B47ABE706FB3 /* YYFileHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 8475110C42C3E42DC61F264C6BE773D6 /* YYFileHash.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
284 A0C1E82073BA9A8D5944BEFE15AEC8AD /* YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F871C4EC920DBA02D64392716E35FB37 /* YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; 265 A0C1E82073BA9A8D5944BEFE15AEC8AD /* YBImageBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = F871C4EC920DBA02D64392716E35FB37 /* YBImageBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; };
285 A0E47F627106545F7381B76B458ED35D /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = F223C16A87C557408148C7C83CCB705A /* YYImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 266 A0E47F627106545F7381B76B458ED35D /* YYImage.m in Sources */ = {isa = PBXBuildFile; fileRef = F223C16A87C557408148C7C83CCB705A /* YYImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
286 A111957E65E970F7FB802F36D821EA1F /* YBIBImageLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7310856B16CA1367B57B8768F5EBC3E9 /* YBIBImageLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; 267 A111957E65E970F7FB802F36D821EA1F /* YBIBImageLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 7310856B16CA1367B57B8768F5EBC3E9 /* YBIBImageLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
287 - A1B62D4B373543D743AC938090EF65F2 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A20F815CD4F1A80CA68C34C3039D331 /* UIImage+GIF.h */; settings = {ATTRIBUTES = (Public, ); }; };  
288 A1F850A263BA608683661E1BA3064F24 /* UIFont+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D7D005AD047909BDCC633A8A2F44C3E0 /* UIFont+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 268 A1F850A263BA608683661E1BA3064F24 /* UIFont+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = D7D005AD047909BDCC633A8A2F44C3E0 /* UIFont+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
289 - A26011648EA7CD910788DBBF08C36F32 /* SDImageCacheDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CF482AD1045FF137E38C654A5C5F0A /* SDImageCacheDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };  
290 - A3A38FFF99F8F65D21F6526D4D257230 /* SDWebImageDownloaderConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = BE3ECDB29BE68019FD7DE942E2F58BD0 /* SDWebImageDownloaderConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; 269 + A24ECE056F5DC1A130E45CD9DFDDAE9D /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = EB79E7A300B9098CE8EED7EB98A1E5AA /* SDWebImageDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  270 + A522F73D14A2CB4DE43E00754C6D504B /* SDImageGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = AAF8FE9BD2DF30E81C73D0170BA7C814 /* SDImageGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; };
291 A5751911414FBB4525BA661301645A33 /* NSArray+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A081063D9132D39C1E65F619E8E08758 /* NSArray+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 271 A5751911414FBB4525BA661301645A33 /* NSArray+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = A081063D9132D39C1E65F619E8E08758 /* NSArray+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
292 A5D50A13E2D93699A6EA10827F821ACE /* YBIBImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = 98AD2B257D836F916F990B6EA6B2E153 /* YBIBImageData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 272 A5D50A13E2D93699A6EA10827F821ACE /* YBIBImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = 98AD2B257D836F916F990B6EA6B2E153 /* YBIBImageData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
293 A6985B155E19B64987FD68C5F251A1BC /* YBIBToastView.m in Sources */ = {isa = PBXBuildFile; fileRef = A57EE7627E17C473032D3846ABCB164A /* YBIBToastView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 273 A6985B155E19B64987FD68C5F251A1BC /* YBIBToastView.m in Sources */ = {isa = PBXBuildFile; fileRef = A57EE7627E17C473032D3846ABCB164A /* YBIBToastView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
@@ -295,99 +275,94 @@ @@ -295,99 +275,94 @@
295 A6EE9E0154F607481961BCD392381B7F /* YYTextArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 7975F0485F6C6908DD6A4D47F50E9D35 /* YYTextArchiver.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 275 A6EE9E0154F607481961BCD392381B7F /* YYTextArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 7975F0485F6C6908DD6A4D47F50E9D35 /* YYTextArchiver.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
296 A7163439672A8E432F330594FBD927D2 /* YYTextDebugOption.h in Headers */ = {isa = PBXBuildFile; fileRef = 854385CF82D745F34597998325666C1D /* YYTextDebugOption.h */; settings = {ATTRIBUTES = (Public, ); }; }; 276 A7163439672A8E432F330594FBD927D2 /* YYTextDebugOption.h in Headers */ = {isa = PBXBuildFile; fileRef = 854385CF82D745F34597998325666C1D /* YYTextDebugOption.h */; settings = {ATTRIBUTES = (Public, ); }; };
297 A7F1C07DCA2C79499E38A78F4C823B88 /* UIControl+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 670ED4D099B5B4C894DE0935874915F0 /* UIControl+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 277 A7F1C07DCA2C79499E38A78F4C823B88 /* UIControl+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 670ED4D099B5B4C894DE0935874915F0 /* UIControl+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
298 - A8F9213841A1696CA4E3BAF5B0836F43 /* SDWebImageDownloaderRequestModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = B75EE1C0C625093DB3961800DCB992E6 /* SDWebImageDownloaderRequestModifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
299 A912BA340CE09249C7782B1FFD1365AB /* YYTextMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 88CA615592156E78420567B5D69F5B66 /* YYTextMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; 278 A912BA340CE09249C7782B1FFD1365AB /* YYTextMagnifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 88CA615592156E78420567B5D69F5B66 /* YYTextMagnifier.h */; settings = {ATTRIBUTES = (Public, ); }; };
  279 + A93168D1B8FE647836641A8FD0960D3F /* SDImageLoadersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D5EFE1BA58FE69FA738DCB9784D3B2E0 /* SDImageLoadersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
300 A96436D0FB439F1F9716DAD1A565FC3F /* YYKVStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = B5756A1321B21D96C7A1AE0F5C4285AB /* YYKVStorage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 280 A96436D0FB439F1F9716DAD1A565FC3F /* YYKVStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = B5756A1321B21D96C7A1AE0F5C4285AB /* YYKVStorage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
301 A9BFCA6D140CE8D9F0F30D2D5AF1D3E4 /* YYKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 2472289EA21A4524121647E98565507F /* YYKeychain.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 281 A9BFCA6D140CE8D9F0F30D2D5AF1D3E4 /* YYKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 2472289EA21A4524121647E98565507F /* YYKeychain.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  282 + A9FB0B1C38B3DF1982D4D8F8B3B99A4E /* SDImageGIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FB9F487DEA2EE1223E588AF5B7968BBC /* SDImageGIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
302 AA02D1FC38F23E8ABB8437B0B319FE8F /* NSNumber+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F0147BF35758A94C20B1F24F24622BB /* NSNumber+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 283 AA02D1FC38F23E8ABB8437B0B319FE8F /* NSNumber+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F0147BF35758A94C20B1F24F24622BB /* NSNumber+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
303 AA30113B879D83233709E1B94AA29896 /* UIApplication+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B452E9B587B86C63EE21311C07C2F204 /* UIApplication+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 284 AA30113B879D83233709E1B94AA29896 /* UIApplication+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B452E9B587B86C63EE21311C07C2F204 /* UIApplication+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  285 + AA4B92512944686F23ABE5632656872E /* UIColor+HexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E4DCEAC007F7F72A2323A6304B0F4A4 /* UIColor+HexString.h */; settings = {ATTRIBUTES = (Private, ); }; };
  286 + AAB78C68578015956BFE8A56A7E02BA7 /* SDAnimatedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 45487E9C2D9132F54E6DD142FDADCBAF /* SDAnimatedImageRep.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
304 AB59B214692AA81FF6315061758603C5 /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E3CBF57D127E6A6C4FD252662C1ADC0 /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 287 AB59B214692AA81FF6315061758603C5 /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E3CBF57D127E6A6C4FD252662C1ADC0 /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
305 - AB811350CFBFEC402845394DFB11C5B9 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B31C91F7BAC29DAB475F9F033793951 /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
306 AF9F20516033D3A05DCC8E8315E30732 /* YYWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C71F70A09014858351E0D2BA6885014 /* YYWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 288 AF9F20516033D3A05DCC8E8315E30732 /* YYWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C71F70A09014858351E0D2BA6885014 /* YYWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
307 B06B32BF6913B604CD51DAC2D7588891 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78B7E54CA0E5B57763E180DBA69E47AF /* CoreFoundation.framework */; }; 289 B06B32BF6913B604CD51DAC2D7588891 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 78B7E54CA0E5B57763E180DBA69E47AF /* CoreFoundation.framework */; };
  290 + B0D15842F6D9B27F7E656D6A3D715329 /* SDImageCacheDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = D3B294F209BE90C307D3B79D646A580E /* SDImageCacheDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  291 + B1635A0F2A9E883F5F9478F04F5F9B00 /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C68FD0A33D48BF8511F5E1F0AF5F38C /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; };
308 B1AB6D5391A7C80D83FB9A89E8AF6623 /* YBImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 25741E0D4DAB65C050394B8B05242DD3 /* YBImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 292 B1AB6D5391A7C80D83FB9A89E8AF6623 /* YBImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 25741E0D4DAB65C050394B8B05242DD3 /* YBImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
309 B2105ECF2F00C51A3EA501A3D674DC5E /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 49508D684CC827AE070DD761E831114F /* YYFrameImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 293 B2105ECF2F00C51A3EA501A3D674DC5E /* YYFrameImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 49508D684CC827AE070DD761E831114F /* YYFrameImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
310 B2187DD11B7BE581B5D3C98681AD1FC6 /* YYWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6107B507ED75C5E7304F9AE9131E04CB /* YYWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 294 B2187DD11B7BE581B5D3C98681AD1FC6 /* YYWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6107B507ED75C5E7304F9AE9131E04CB /* YYWeakProxy.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  295 + B241B25BC7903216B219BCFDD5533ED2 /* SDInternalMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFF09BFCD201810684D60E49FC29B3 /* SDInternalMacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
311 B24E0712943BC8C9C7DA39E71877DE59 /* YYTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF275D767348041345B5F9C14D9D9CA0 /* YYTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 296 B24E0712943BC8C9C7DA39E71877DE59 /* YYTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF275D767348041345B5F9C14D9D9CA0 /* YYTextView.h */; settings = {ATTRIBUTES = (Public, ); }; };
312 - B34DA9789249B559F7D135CDC3D4FD77 /* SDImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = C9B03AE8F74ED6BF9967696B1F29AC24 /* SDImageLoader.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 297 + B27865F2F8513D2BAF80C119865014B2 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BAFBDA5FBFB046872240DAA694DBA9D /* SDWebImageCompat.h */; settings = {ATTRIBUTES = (Public, ); }; };
  298 + B2D122DFC079570A5A257B8FEFE1CF4C /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 604FBD4A36B51CB23593D6E7144E0A66 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
313 B3D231FFA03E5AD08EA9DB95CC280BF9 /* UIPasteboard+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = C5ECB9A46117BBECE7ED798130B798AA /* UIPasteboard+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 299 B3D231FFA03E5AD08EA9DB95CC280BF9 /* UIPasteboard+YYText.m in Sources */ = {isa = PBXBuildFile; fileRef = C5ECB9A46117BBECE7ED798130B798AA /* UIPasteboard+YYText.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
314 B43AF7085746A2EDF63AC0561FDC5760 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDA601294E211EE3B9CBED6DC267A5E /* QuartzCore.framework */; }; 300 B43AF7085746A2EDF63AC0561FDC5760 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BDA601294E211EE3B9CBED6DC267A5E /* QuartzCore.framework */; };
315 B4A6A89B7C7A07DEF548DF0821A5D2A6 /* UITextField+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F72C19B1352F5752908C2B4982AD0FE4 /* UITextField+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 301 B4A6A89B7C7A07DEF548DF0821A5D2A6 /* UITextField+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F72C19B1352F5752908C2B4982AD0FE4 /* UITextField+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
316 - B52576B08EFC9D67F218CC2DAC542AF4 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = A2B670A4915027A69D8298ABAE7832C5 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };  
317 B580D3F3050F9BB858FC126353306F2E /* YBIBImageScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D018046653E9BB9680EF2CF10C5FF7 /* YBIBImageScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 302 B580D3F3050F9BB858FC126353306F2E /* YBIBImageScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D018046653E9BB9680EF2CF10C5FF7 /* YBIBImageScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; };
318 B5EBC0334766A76DCFF0C05798C37150 /* YYReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D233F6DF8E8D5110BD7F6E76747F33D8 /* YYReachability.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 303 B5EBC0334766A76DCFF0C05798C37150 /* YYReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D233F6DF8E8D5110BD7F6E76747F33D8 /* YYReachability.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
319 - B6A52B7697F15B487F846F3DA1CB3896 /* SDWebImageIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 176BE9B96FD0004A2FDAD77CA2B59BEF /* SDWebImageIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; };  
320 B6B29A71C36975429AB1368727403423 /* NSNumber+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 7355C552B642A7D227CB76CDCD03E2F8 /* NSNumber+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 304 B6B29A71C36975429AB1368727403423 /* NSNumber+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 7355C552B642A7D227CB76CDCD03E2F8 /* NSNumber+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
321 - B6B6619A760B666DE47643F684DCF92A /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 82CFF2AD22CF5568454DF140CCC1FBC4 /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
322 B6C28098B1907228C45A14E207D55AFE /* UIImage+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3D662CF91D27FFEF32389911E85D0 /* UIImage+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 305 B6C28098B1907228C45A14E207D55AFE /* UIImage+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3D662CF91D27FFEF32389911E85D0 /* UIImage+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
323 B7AC252781ACA15FC73AF12490F21160 /* NSTimer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CE22FC473D05C3D81125FB08264318F /* NSTimer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 306 B7AC252781ACA15FC73AF12490F21160 /* NSTimer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CE22FC473D05C3D81125FB08264318F /* NSTimer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
324 B7D446CF8E8826A56E6D15929115BE04 /* YBIBGetBaseInfoProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C9B42ACA0B5782A356C5AE7A908B3F /* YBIBGetBaseInfoProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 307 B7D446CF8E8826A56E6D15929115BE04 /* YBIBGetBaseInfoProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C9B42ACA0B5782A356C5AE7A908B3F /* YBIBGetBaseInfoProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
  308 + B81B452FC4B5B6F7812022013E0050F9 /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D7D182C7944184D8687D02BC5895C8A /* SDImageFrame.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  309 + B9EAA2FEBC24879CE426A200D1943850 /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E7D951E27DDF1D0327C691AC350863B /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; };
325 BA6F7BA03B9D0D30084C3ADE291F6473 /* YBIBVideoTopBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 26B0E0EAD79931B3B4465C9353F4AEE3 /* YBIBVideoTopBar.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 310 BA6F7BA03B9D0D30084C3ADE291F6473 /* YBIBVideoTopBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 26B0E0EAD79931B3B4465C9353F4AEE3 /* YBIBVideoTopBar.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
326 BC58E6F1DB34E6D18AC043F147EB68A5 /* UIScrollView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0849338E27EFD23893C5843535A67BD6 /* UIScrollView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 311 BC58E6F1DB34E6D18AC043F147EB68A5 /* UIScrollView+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 0849338E27EFD23893C5843535A67BD6 /* UIScrollView+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
327 - BD1CC866FEB3E8226394BA640E7FA900 /* SDImageAssetManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C715A63047EF7CF84A44FC37DB4E919 /* SDImageAssetManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
328 - BDACD97A89128CDAECEE9F2C66A68041 /* SDImageCodersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E26822C5FA7DDEE80076B4E7C2728A9 /* SDImageCodersManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 312 + C15872A8795C18D17D7CB78D0D2AF5A9 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF16A9C9A9AF5DDC141A40D41D0467E /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
329 C15CF0D0B7F57A8BB9EDA5F3A0EB4415 /* YYMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D8F6D1F22DBBBCE9CEB97BF76ED5F6 /* YYMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 313 C15CF0D0B7F57A8BB9EDA5F3A0EB4415 /* YYMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D8F6D1F22DBBBCE9CEB97BF76ED5F6 /* YYMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
330 - C32C3C747D6831244FA97E55D7EBC211 /* SDWebImageError.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A70D2708290382BD7D9078C968FDBFD /* SDWebImageError.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
331 C336129A2AC12AEED1703E6863707C69 /* NSObject+YYAddForKVO.h in Headers */ = {isa = PBXBuildFile; fileRef = 52BE96D687228A93E19263F07010C4F8 /* NSObject+YYAddForKVO.h */; settings = {ATTRIBUTES = (Public, ); }; }; 314 C336129A2AC12AEED1703E6863707C69 /* NSObject+YYAddForKVO.h in Headers */ = {isa = PBXBuildFile; fileRef = 52BE96D687228A93E19263F07010C4F8 /* NSObject+YYAddForKVO.h */; settings = {ATTRIBUTES = (Public, ); }; };
332 - C71E6525587D5FFE318A222C092FA6AE /* SDWebImageIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = F71C63A56CAAF9072729B55B779D9414 /* SDWebImageIndicator.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 315 + C50CAA073FFEC5DFDB16A59830E97C95 /* SDInternalMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 565EA3FF9DE0069950D12760CD92E6DF /* SDInternalMacros.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  316 + C60409B7C6D34D479F3DC7157194706B /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6821ACBD9902AD3AEC5766052616BEFC /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
333 C78E2BB89633512E1E77690E47840731 /* NSString+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 200049C9763118B9DADAC88FB3401C9D /* NSString+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 317 C78E2BB89633512E1E77690E47840731 /* NSString+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 200049C9763118B9DADAC88FB3401C9D /* NSString+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
334 - C854CD2F89E00E88FB1D6669A770DEE0 /* SDWebImageDownloaderDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0B0EB007B67E5D110E4AA7E75CC5E8 /* SDWebImageDownloaderDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; };  
335 - C88E97ED465D3973A3D9FD7AE94BDB9A /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = E1FACAD68445DC5C8232A29CDDE00106 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };  
336 - C8D1A63DACC1ED208C203641C69EEEF1 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 03C7B13F9A65433A2099280BB0853B83 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 318 + C8719B604AC23450E05D0E2F5716C8EE /* NSButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F59687F8773BB30C3383C0C4473BA5A9 /* NSButton+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
337 C907A97665955ECF4DDD418449F11390 /* YBIBScreenRotationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 34FA97BD63CC23B9293C28CC94F1935E /* YBIBScreenRotationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 319 C907A97665955ECF4DDD418449F11390 /* YBIBScreenRotationHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 34FA97BD63CC23B9293C28CC94F1935E /* YBIBScreenRotationHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
338 - C94DE8F907543852C6C5311CE0A2752A /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 255A9E38BCE069FD5BD5AA7B2554059D /* SDWebImageDownloaderConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 320 + C926C81B2AE4D970FF43FA6854DF11B3 /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 29332085AB2D0312202A5E4DA9903355 /* SDImageGIFCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
339 C9D04AD8C1E863F36DA77847B7DC00FF /* YYTextContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F3722F221BDAC94870B0E9231FE44B7 /* YYTextContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 321 C9D04AD8C1E863F36DA77847B7DC00FF /* YYTextContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F3722F221BDAC94870B0E9231FE44B7 /* YYTextContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  322 + CA2A04B40C4584BB62EDF451D4691393 /* SDWebImageDownloaderRequestModifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 82DA1AE31B883B0A558F1A7C451C5411 /* SDWebImageDownloaderRequestModifier.h */; settings = {ATTRIBUTES = (Public, ); }; };
340 CA376D8F23487BDFB24C801D2317FD4D /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A8AA845C7A4050F81BBFEC526B2B62 /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m */; }; 323 CA376D8F23487BDFB24C801D2317FD4D /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44A8AA845C7A4050F81BBFEC526B2B62 /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m */; };
341 - CAD57C741FFBC3EBCA19E4F1891E4FDA /* SDWebImageOptionsProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A1019E03A5B1C662AEA03A27BAD9451 /* SDWebImageOptionsProcessor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
342 - CBA469E2DD8702DECB634A81F850C516 /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3103E35D6924D70FC117A1BFA21077C8 /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };  
343 - CC1B7B642CBAEA58A27D410B329E5FFD /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E94B7142D84F4E7AD5A126B60C5056AA /* SDImageCoderHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 324 + CB6B765C0485EA0801AC5AD27B988336 /* SDmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDF74FCCC69765D4B60B3DBEC369C3D /* SDmetamacros.h */; settings = {ATTRIBUTES = (Private, ); }; };
  325 + CBEDB718B4AB4391588A9347C9F03C4A /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C86D29287795201B7A91BA858DBC2FB /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
344 CC66D7F8BA25145CFA356804A0482B18 /* NSKeyedUnarchiver+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = BE4A801C5A9481E70AE53035D5B98760 /* NSKeyedUnarchiver+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 326 CC66D7F8BA25145CFA356804A0482B18 /* NSKeyedUnarchiver+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = BE4A801C5A9481E70AE53035D5B98760 /* NSKeyedUnarchiver+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
345 - CCEF1E548BE78064BE12CC29D9977A28 /* UIImage+Metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = C54648ED166C9850805DF18B9BF1A305 /* UIImage+Metadata.h */; settings = {ATTRIBUTES = (Public, ); }; };  
346 CD03525AD1F8D60C1C0AC8297DE34E11 /* YYTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C8FC24C723EADE5F3C5975BE2907EB1E /* YYTransaction.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 327 CD03525AD1F8D60C1C0AC8297DE34E11 /* YYTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C8FC24C723EADE5F3C5975BE2907EB1E /* YYTransaction.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
347 - CD06DC5FCA424D8A0928068BEB8AF2E5 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 491254BCC101B0465D55540272375AB3 /* SDWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };  
348 CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; }; 328 CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
349 CDCE6593D130D8CDEDF0B621B0205E1A /* YBIBIconManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 243FDB361CEF50A59E549280ECDFF076 /* YBIBIconManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 329 CDCE6593D130D8CDEDF0B621B0205E1A /* YBIBIconManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 243FDB361CEF50A59E549280ECDFF076 /* YBIBIconManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
350 - CF1AA8850ED16C5F49B61BC3A9B13DD7 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = E5A710E84F3BA6FCB0CFF41E78AD5CBD /* SDWebImageDownloaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };  
351 - D0725567B7BD18C79A04E5EC9C72249D /* NSBezierPath+SDRoundedCorners.h in Headers */ = {isa = PBXBuildFile; fileRef = 8811346772E1C5599090A46F4A2D8681 /* NSBezierPath+SDRoundedCorners.h */; settings = {ATTRIBUTES = (Private, ); }; }; 330 + CED0ADFAFACBD8EAC91D8FDFAD72CC3D /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 92986682144C6A680D1688CC72DB03EB /* SDImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
  331 + CF5BBB5AA6B556A33F0FD0CBF107B538 /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C89C4C20801869E17ED28D5BC0002C7 /* SDWebImageCacheKeyFilter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
352 D0C427F2B55EA4B9699DC5021958111C /* YYWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBF70C32E733B22D48AF84D60FF7B02 /* YYWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 332 D0C427F2B55EA4B9699DC5021958111C /* YYWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBF70C32E733B22D48AF84D60FF7B02 /* YYWebImageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
353 D0D66AD4AB7E3486337F71C17BF3AD57 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1A59D21F9903431B185E3E4DF0AFFEF /* CoreText.framework */; }; 333 D0D66AD4AB7E3486337F71C17BF3AD57 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1A59D21F9903431B185E3E4DF0AFFEF /* CoreText.framework */; };
354 D0EE21B9D50E334EAF1A380286222F0C /* NSObject+YYAddForARC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D38FB225790DDA600C42DF52D9CC17F /* NSObject+YYAddForARC.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; 334 D0EE21B9D50E334EAF1A380286222F0C /* NSObject+YYAddForARC.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D38FB225790DDA600C42DF52D9CC17F /* NSObject+YYAddForARC.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; };
355 D117372BE748F203CB46905AD37E4068 /* UITextField+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FC28E23CABD3BDE6EAB1ACECBE0303A /* UITextField+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 335 D117372BE748F203CB46905AD37E4068 /* UITextField+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FC28E23CABD3BDE6EAB1ACECBE0303A /* UITextField+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
356 - D2EDDDAA1E3498604C570DA06526C7BA /* SDImageFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = D2BF5A3EEE1A287B05D28198D9F16C76 /* SDImageFrame.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
357 - D347FCF56E468483A546E1F611DE081C /* SDImageHEICCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C263B2AFBE7F6297AC0A2DD306AE5B6A /* SDImageHEICCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };  
358 - D43B9E05CBF3046EB696F0357E263B54 /* SDAsyncBlockOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D32E803217C60CD15496E8FBD13FDF /* SDAsyncBlockOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
359 - D4F67B56B3A2910031B248E07BC0FF9F /* SDImageGIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = C758F6AA3BEFD52D81A2E68FD89C92BC /* SDImageGIFCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 336 + D4C9FCF4108BF46522DA445E47524A6A /* UIImage+MemoryCacheCost.h in Headers */ = {isa = PBXBuildFile; fileRef = 45EBF80603A6BB114FFDF460A6A20CC7 /* UIImage+MemoryCacheCost.h */; settings = {ATTRIBUTES = (Public, ); }; };
360 D69F7D5FC2B9F449EFD85CD54B17E575 /* YYKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E8FC3A2C5BD919F913AD5ED4E1EAC /* YYKit-dummy.m */; }; 337 D69F7D5FC2B9F449EFD85CD54B17E575 /* YYKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E8FC3A2C5BD919F913AD5ED4E1EAC /* YYKit-dummy.m */; };
361 - D6FDFE95CEDBD0A41D4E16FDB1599FA9 /* SDImageIOCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DC1F761B34C39B4907D5DB70157ABFC /* SDImageIOCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };  
362 D7C4871BB56F79A08300DD66AFDCF5DE /* YBIBVideoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 52B62F0134660F292CE152D8E39947BD /* YBIBVideoCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; 338 D7C4871BB56F79A08300DD66AFDCF5DE /* YBIBVideoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 52B62F0134660F292CE152D8E39947BD /* YBIBVideoCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
363 D827404302AC7E95F7667CC14AE08594 /* YYTextAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 57078E9B88965F537213B04FEDA909B2 /* YYTextAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; 339 D827404302AC7E95F7667CC14AE08594 /* YYTextAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 57078E9B88965F537213B04FEDA909B2 /* YYTextAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; };
  340 + D84BE358D7B1195BCA3556D7A0003968 /* UIImage+Metadata.m in Sources */ = {isa = PBXBuildFile; fileRef = C090D5ECCFD39D2D4DF00BFB1D9DAB81 /* UIImage+Metadata.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
364 D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C33607D6BC000651FEC30D2EED376D88 /* SDWebImage.framework */; }; 341 D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C33607D6BC000651FEC30D2EED376D88 /* SDWebImage.framework */; };
365 D96C39BA6D0884492E921E34AE5A1C66 /* YBIBVideoData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C3487B98119240E45C8448E84C5F249 /* YBIBVideoData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 342 D96C39BA6D0884492E921E34AE5A1C66 /* YBIBVideoData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C3487B98119240E45C8448E84C5F249 /* YBIBVideoData.h */; settings = {ATTRIBUTES = (Public, ); }; };
  343 + D9B0AE61DB0C28C1A453C57DBAA9894C /* SDWebImageDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = BBC835DD376D230B30079993F2F5CDAA /* SDWebImageDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
366 D9F2C1489EE9A0E4071E01C3ACC142F2 /* YYTextKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = A177B060DEA91DB2671E9EACA4576579 /* YYTextKeyboardManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 344 D9F2C1489EE9A0E4071E01C3ACC142F2 /* YYTextKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = A177B060DEA91DB2671E9EACA4576579 /* YYTextKeyboardManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
367 - DA1F5EB06521252BF63369AFEF914368 /* SDWebImageOptionsProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = D60E08CE2DF723239081CE2F04FA6324 /* SDWebImageOptionsProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; };  
368 - DB42064F83C6224213B940B249FC26FF /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = C36986E68072E6D37FC44159464E6E63 /* SDDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
369 - DCDC5264F294AB9A622D368F2F7FA336 /* UIImage+Transform.h in Headers */ = {isa = PBXBuildFile; fileRef = 615E0DE04702B1FE637909AB79E77479 /* UIImage+Transform.h */; settings = {ATTRIBUTES = (Public, ); }; }; 345 + DB7CB011D38A0CF4CBA6380FF04F0B61 /* SDImageIOAnimatedCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = C54E545CC107D12C2F5AA2887BAF107E /* SDImageIOAnimatedCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
  346 + DBB84BD7F62230F01B7533CF5DB8E2B8 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 645FAD055E96DC89E3CF7A287A4B4F87 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
370 DD25E262CDFAD075F62392B989CA6F4B /* YYSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 264A3613CC394403F6228A3FD0B83D06 /* YYSentinel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 347 DD25E262CDFAD075F62392B989CA6F4B /* YYSentinel.m in Sources */ = {isa = PBXBuildFile; fileRef = 264A3613CC394403F6228A3FD0B83D06 /* YYSentinel.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
371 - DD784DFACF8863C7D46B9054B0DD7C42 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = FCDCB1EFEE1048CBC6179F66B7E7E6E9 /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 348 + DDA63B6A16CAEC9EDAB8721409ED65EF /* NSImage+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = CB33D1B5F3A87441C78240849B1BD409 /* NSImage+Compatibility.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
372 DDD32790B4BCE5190906DEEED75A5860 /* YBIBVideoData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DF359196C08E19807F14F0B35AC0E0C /* YBIBVideoData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 349 DDD32790B4BCE5190906DEEED75A5860 /* YBIBVideoData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DF359196C08E19807F14F0B35AC0E0C /* YBIBVideoData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
373 DDE5067059454F98CD6B2426D61716F7 /* YYAsyncLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B19431AF11994E0CA59423A7DAE3628 /* YYAsyncLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 350 DDE5067059454F98CD6B2426D61716F7 /* YYAsyncLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B19431AF11994E0CA59423A7DAE3628 /* YYAsyncLayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
374 - DE311CA167D40330E2B71F4726A6B789 /* SDDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D17D294A9F7DCF9895D5A3337D8B886 /* SDDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
375 DF369A9EB40F06EEB590C41610BA2A10 /* YYTextRubyAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 517A0A3DCA0C56126084B689FBE105E9 /* YYTextRubyAnnotation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 351 DF369A9EB40F06EEB590C41610BA2A10 /* YYTextRubyAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 517A0A3DCA0C56126084B689FBE105E9 /* YYTextRubyAnnotation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
376 - DFE7857272AA4CDEC686248E790174F9 /* SDWebImageCacheSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CA0E2F59E86C22963A7F42A601D4D9D /* SDWebImageCacheSerializer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 352 + E05830BFF728135BC1A3FCD86B02AFED /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A3F033ABEC9F3EFAA01FDA65E76374B4 /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  353 + E159EA4B9CE7CA4EA7CC422F1BB359D0 /* SDMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA9751DEFA2CAEA416E397CD0197E4C /* SDMemoryCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  354 + E1A13F65E327E70ED0A0322ED9D4E004 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = EBC3A38B3CF4356703DC4ABF85E1FB8C /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; };
377 E2AC119414A24C6B254F4EFD910B6364 /* YBIBImageData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5356E679669AF6B1D86C87ED02DE9228 /* YBIBImageData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 355 E2AC119414A24C6B254F4EFD910B6364 /* YBIBImageData+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5356E679669AF6B1D86C87ED02DE9228 /* YBIBImageData+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
378 E321AD2370258DCF759B1C35DD419F41 /* YBIBOrientationReceiveProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 162ED1D7AFB75ACCB3368BC29019D8E8 /* YBIBOrientationReceiveProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 356 E321AD2370258DCF759B1C35DD419F41 /* YBIBOrientationReceiveProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 162ED1D7AFB75ACCB3368BC29019D8E8 /* YBIBOrientationReceiveProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
379 - E48B7D3309D22470B53A3EB47B6577E7 /* SDWebImageDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 7025B67B4A01BBCCCFB1958DC25846D2 /* SDWebImageDefine.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 357 + E4C4C17E15D7F01D31091341E3B22767 /* SDImageCoderHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DE00CB7B46BD9384E27CFF44A22F3D6 /* SDImageCoderHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
380 E655FF4E00EF146816A4A40588F91180 /* YYKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 75DDFEB8B1AD695874CDD5C0116D3C02 /* YYKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 358 E655FF4E00EF146816A4A40588F91180 /* YYKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 75DDFEB8B1AD695874CDD5C0116D3C02 /* YYKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
  359 + E807BB2D53EF822DDA0109BEB8F33F4B /* SDAnimatedImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 458C3BA863BEC4A0D1766E7096A16EF8 /* SDAnimatedImageView+WebCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
381 E932BE7F6FC5497A6F685D0EF875A817 /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 220E77F927A6690D18D2E5FD80F7BE63 /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 360 E932BE7F6FC5497A6F685D0EF875A817 /* YYSpriteSheetImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 220E77F927A6690D18D2E5FD80F7BE63 /* YYSpriteSheetImage.h */; settings = {ATTRIBUTES = (Public, ); }; };
382 - E9B97B2FD84DF4015AABD7E5978A710F /* SDImageCachesManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E05A254217112511844A5ABAEA26D88 /* SDImageCachesManager.h */; settings = {ATTRIBUTES = (Public, ); }; };  
383 E9E7E25145EFE32065FFB8232DC42D8E /* YYTextAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = A0964A9B921F37553978DBD848A921DC /* YYTextAttribute.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 361 E9E7E25145EFE32065FFB8232DC42D8E /* YYTextAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = A0964A9B921F37553978DBD848A921DC /* YYTextAttribute.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
384 - EA50654643EF702D7F2DD17534459EAB /* SDImageIOAnimatedCoderInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8582059F08F05B024B1E63DB97E6FC3D /* SDImageIOAnimatedCoderInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };  
385 - EA5AE4148E9B9228E70EDB7F575D111E /* SDWebImageDownloaderResponseModifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 0804ADB1BA257EF0FBCE5877305E5CBA /* SDWebImageDownloaderResponseModifier.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
386 - EB634403E13B36687931F62769C04F66 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = DB7A93383CAC54408CD5E5B395011B2E /* NSData+ImageContentType.h */; settings = {ATTRIBUTES = (Public, ); }; };  
387 - EC14B2E8E460DFC2E4EB78A9FC10117C /* NSButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8603634C14CA0EB02BA831268B0C10 /* NSButton+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 362 + EBD6DC15D9DA29829CD9A5BA5F2B2A76 /* SDImageGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F6363B89177C5ED56B90058D1B1B9A /* SDImageGraphics.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  363 + EC2A8CA5F7249A4197E707E8008C2CAF /* SDWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = EDCF5C73C34D7FE7CBD5AEC45E26DD16 /* SDWeakProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
388 EC8034BDEF204F42C1F8FD47F69C72C2 /* YBIBCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CE5CC75231FB5BA4F8EB1071D6A3B3 /* YBIBCollectionViewLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 364 EC8034BDEF204F42C1F8FD47F69C72C2 /* YBIBCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CE5CC75231FB5BA4F8EB1071D6A3B3 /* YBIBCollectionViewLayout.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
389 ECAB0BF105639461A59A044E08301859 /* YYTextParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4509C09CF0DD15FBEB1EAF90400333B3 /* YYTextParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; 365 ECAB0BF105639461A59A044E08301859 /* YYTextParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4509C09CF0DD15FBEB1EAF90400333B3 /* YYTextParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
390 - ED388349310FF50899F3AEB5E2DF0500 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 6721C57EE2049316FC7DFA0EC2F61B33 /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
391 ED419C4C5639D374160458959782CECC /* YBIBImageScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DEB9108C68D52B1B6E58D88118E1BCA /* YBIBImageScrollView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 366 ED419C4C5639D374160458959782CECC /* YBIBImageScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DEB9108C68D52B1B6E58D88118E1BCA /* YBIBImageScrollView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
392 ED434BACBB1031EB88803A3F3D53D0F2 /* NSDate+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DE54B8C45B333743F49C490C8A51D59 /* NSDate+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 367 ED434BACBB1031EB88803A3F3D53D0F2 /* NSDate+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DE54B8C45B333743F49C490C8A51D59 /* NSDate+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
393 EE483E73A32B03DDEAFC3D0C7D23A998 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 826A0D9FB100D729C86AB5FF081F6521 /* Accelerate.framework */; }; 368 EE483E73A32B03DDEAFC3D0C7D23A998 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 826A0D9FB100D729C86AB5FF081F6521 /* Accelerate.framework */; };
@@ -396,7 +371,7 @@ @@ -396,7 +371,7 @@
396 EF0747F501C75F83DED72B2790BE5B5F /* YYTextRubyAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F845FF4245B2F5F6327C08F01B5738F /* YYTextRubyAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 371 EF0747F501C75F83DED72B2790BE5B5F /* YYTextRubyAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F845FF4245B2F5F6327C08F01B5738F /* YYTextRubyAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; };
397 F007745FE5F7A414A2DBD361AA8CC41B /* YYKVStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = F8D3E6C92E8F4DF67950E0380B5C4AD1 /* YYKVStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 372 F007745FE5F7A414A2DBD361AA8CC41B /* YYKVStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = F8D3E6C92E8F4DF67950E0380B5C4AD1 /* YYKVStorage.h */; settings = {ATTRIBUTES = (Public, ); }; };
398 F01C35CC142BDBE879078A8E52D9DED3 /* YBImageBrowserDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DE1BA937D17936A4E8CC48CCF258E498 /* YBImageBrowserDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; 373 F01C35CC142BDBE879078A8E52D9DED3 /* YBImageBrowserDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DE1BA937D17936A4E8CC48CCF258E498 /* YBImageBrowserDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
399 - F045BDBF956B9EE5340F3225336EDAC6 /* SDWebImageCacheKeyFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 92D743407EFB5C298F8E9856F618DE87 /* SDWebImageCacheKeyFilter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 374 + F0AB74AED6D7C008445C01678F59B54D /* SDImageAPNGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F4BDDDF94411952465D7BEFFCA8B5C29 /* SDImageAPNGCoder.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
400 F160637862E5B0125D069F7929777F1F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; }; 375 F160637862E5B0125D069F7929777F1F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */; };
401 F21C9E78F6663605A36593123F851ECF /* YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E1BB297824FFFF51C70FA022B56A9D4F /* YBImageBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 376 F21C9E78F6663605A36593123F851ECF /* YBImageBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E1BB297824FFFF51C70FA022B56A9D4F /* YBImageBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
402 F2A1EDFD9B0498CA877D75380EB946AB /* YYCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 074CC9782671ADCAC40FE44E9B57EB2D /* YYCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; 377 F2A1EDFD9B0498CA877D75380EB946AB /* YYCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 074CC9782671ADCAC40FE44E9B57EB2D /* YYCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -404,7 +379,7 @@ @@ -404,7 +379,7 @@
404 F3A055F58CF9B5A694EB4AABA1E51B11 /* UIScrollView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F891D9C6F80528B90027D56EA36CD7DA /* UIScrollView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 379 F3A055F58CF9B5A694EB4AABA1E51B11 /* UIScrollView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = F891D9C6F80528B90027D56EA36CD7DA /* UIScrollView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
405 F3F08BAB397CD4760A921D6FFAB91D09 /* UITableView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E0EC1E067A40BD358E24914526274E18 /* UITableView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 380 F3F08BAB397CD4760A921D6FFAB91D09 /* UITableView+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = E0EC1E067A40BD358E24914526274E18 /* UITableView+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; };
406 F41DB7D94F86FC028BB3765429E83496 /* UIImageView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = A84A5680B20A545C99B07392B9AA4B21 /* UIImageView+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 381 F41DB7D94F86FC028BB3765429E83496 /* UIImageView+YYWebImage.m in Sources */ = {isa = PBXBuildFile; fileRef = A84A5680B20A545C99B07392B9AA4B21 /* UIImageView+YYWebImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
407 - F4BE0CAF1D4BF04D766DB4A25AE4A4C2 /* UIColor+SDHexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 1062A5D5F16F52CCF19B547AC48CFF6B /* UIColor+SDHexString.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 382 + F4A2A3265060EE0EC36AE153BA2F11F1 /* SDImageAPNGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = CB003CB825038F390A91BFD066D5DC11 /* SDImageAPNGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
408 F51107CAE592A67C12F6A654AA9DE72B /* YBImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3236EA97B14313391E71CA2593DBB697 /* YBImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 383 F51107CAE592A67C12F6A654AA9DE72B /* YBImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3236EA97B14313391E71CA2593DBB697 /* YBImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
409 F57BB6C1959FC38F369D20C3D6280478 /* YBImageBrowserDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 332163CABE8CA20F1CDE74064906F999 /* YBImageBrowserDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 384 F57BB6C1959FC38F369D20C3D6280478 /* YBImageBrowserDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 332163CABE8CA20F1CDE74064906F999 /* YBImageBrowserDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
410 F6B4A873DB7EFD81739BB935180213F3 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = B9C280A5938040751695347877F4D8C2 /* YYSpriteSheetImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 385 F6B4A873DB7EFD81739BB935180213F3 /* YYSpriteSheetImage.m in Sources */ = {isa = PBXBuildFile; fileRef = B9C280A5938040751695347877F4D8C2 /* YYSpriteSheetImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
@@ -412,16 +387,21 @@ @@ -412,16 +387,21 @@
412 F70B261CE6AF733A33E7AF41C5D96628 /* YBIBDataProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 73F109F39280C7548AA77C244ED5675B /* YBIBDataProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 387 F70B261CE6AF733A33E7AF41C5D96628 /* YBIBDataProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 73F109F39280C7548AA77C244ED5675B /* YBIBDataProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
413 F7532455FBADCB4B6D671A76A015BCDF /* YYGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 12443FCD2F18C4DFCA505874F97F9BB6 /* YYGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 388 F7532455FBADCB4B6D671A76A015BCDF /* YYGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 12443FCD2F18C4DFCA505874F97F9BB6 /* YYGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; };
414 F7952C8743A3C3698661727A575F134A /* YYCGUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 90A4B22BA3CB13452A0C80DA86A84A42 /* YYCGUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; 389 F7952C8743A3C3698661727A575F134A /* YYCGUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 90A4B22BA3CB13452A0C80DA86A84A42 /* YYCGUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
  390 + F7C220B780BE3FFD43D49EB09A4AA120 /* SDAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D25E5ABBC1DC5FB5597B7FD6AF7395A6 /* SDAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; };
  391 + F855CDFE0F0B48A22F8F0B4CD25E3F2A /* SDDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 17822DDCEE5C075412F1B1A731F006F2 /* SDDiskCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
415 F881E7F260550EEED2EC9C45749BFC7B /* YBIBContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = F73A399C03844F00743876DD304D6F5F /* YBIBContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 392 F881E7F260550EEED2EC9C45749BFC7B /* YBIBContainerView.h in Headers */ = {isa = PBXBuildFile; fileRef = F73A399C03844F00743876DD304D6F5F /* YBIBContainerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
416 F8F4D168EA046BD783E82D35CD3B114C /* _YYWebImageSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A857F7C6A4B03E17C6CC6873436387 /* _YYWebImageSetter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 393 F8F4D168EA046BD783E82D35CD3B114C /* _YYWebImageSetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 52A857F7C6A4B03E17C6CC6873436387 /* _YYWebImageSetter.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  394 + F981FD60C717579B06FC77EBE5E3ECEE /* SDWebImageTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F4A5B2FFD435932DC069C91BA243B8A /* SDWebImageTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  395 + F9CD37EE6DD796D86FAFCE65C106D553 /* SDAnimatedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F7A1C78766D1A651D4233A02DFD21C1 /* SDAnimatedImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; };
  396 + FA1132270226AEC00FD163A760F5BFDD /* SDWebImageTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = E8864E2BCB6F0A60BF7660FD5CA61884 /* SDWebImageTransition.h */; settings = {ATTRIBUTES = (Public, ); }; };
  397 + FA626556DE0DB5DBE98269492EB9D858 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E0438EB685599B92473E4BBB56C9271 /* SDWebImagePrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
417 FA6BA0853D951EDC88B27A2C94306C49 /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 65851769AB362F92EB866E5610C88E6C /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m */; }; 398 FA6BA0853D951EDC88B27A2C94306C49 /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 65851769AB362F92EB866E5610C88E6C /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m */; };
418 - FC4DE0456F37E3F47195E5F969314E0F /* SDMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CDA24BB0F92E4A49AC0BE6BF22D67546 /* SDMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; };  
419 - FC5E54109CC0090D7CA4492C6225E5BB /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FBBBA584888406A53BBAB4C8E646119 /* SDWebImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 399 + FB731F3EEA54F44A238FBBFED93D9974 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 42406C450631485B971273EE79B37A12 /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  400 + FC5F561CA670D699F300DDA4FE2D8314 /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = FD9DAE7E5EAD3CA463241E107ADB319B /* SDWebImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
420 FCDAE4EE1EF7F75A6D9E465032A3EE25 /* UIBarButtonItem+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A20C0814370A0A1C72AE2E522CAEB /* UIBarButtonItem+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 401 FCDAE4EE1EF7F75A6D9E465032A3EE25 /* UIBarButtonItem+YYAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = B70A20C0814370A0A1C72AE2E522CAEB /* UIBarButtonItem+YYAdd.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
  402 + FD42C3773D4CE1E4ED8BC78369EE4898 /* SDWebImageDownloaderConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B69A0F6649EAEED316A983843ED5614 /* SDWebImageDownloaderConfig.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
421 FEB886C7ED26265911E85FEFEBA8891A /* YBIBVideoActionBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DBD9F3341AE38C875BBD42C62516B07 /* YBIBVideoActionBar.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 403 FEB886C7ED26265911E85FEFEBA8891A /* YBIBVideoActionBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DBD9F3341AE38C875BBD42C62516B07 /* YBIBVideoActionBar.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
422 FED2D036DCD6FF18C7AF6E251407E6B2 /* YBIBAnimatedTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D57BDAA3D3C2148F62CAB6FCFF0336 /* YBIBAnimatedTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; 404 FED2D036DCD6FF18C7AF6E251407E6B2 /* YBIBAnimatedTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 01D57BDAA3D3C2148F62CAB6FCFF0336 /* YBIBAnimatedTransition.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
423 - FEF33326D4B5B59DFD0CA1DFAD4001FC /* SDWebImageCacheKeyFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C016044B645AE229C947C4E2E37F78B /* SDWebImageCacheKeyFilter.h */; settings = {ATTRIBUTES = (Public, ); }; };  
424 - FFA5793DBEE9AB3CC5C01F5B6F0B1151 /* SDFileAttributeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 615E844CC98D96DCD6F0EFE36CFF13BF /* SDFileAttributeHelper.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };  
425 /* End PBXBuildFile section */ 405 /* End PBXBuildFile section */
426 406
427 /* Begin PBXContainerItemProxy section */ 407 /* Begin PBXContainerItemProxy section */
@@ -484,92 +464,86 @@ @@ -484,92 +464,86 @@
484 /* End PBXContainerItemProxy section */ 464 /* End PBXContainerItemProxy section */
485 465
486 /* Begin PBXFileReference section */ 466 /* Begin PBXFileReference section */
  467 + 0027B01676377B9218BE8AA537BDAA8A /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = "<group>"; };
487 01925082D3D68AFAC34FD497668DDF52 /* YBIBTopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBTopView.h; sourceTree = "<group>"; }; 468 01925082D3D68AFAC34FD497668DDF52 /* YBIBTopView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBTopView.h; sourceTree = "<group>"; };
488 01D57BDAA3D3C2148F62CAB6FCFF0336 /* YBIBAnimatedTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBAnimatedTransition.m; sourceTree = "<group>"; }; 469 01D57BDAA3D3C2148F62CAB6FCFF0336 /* YBIBAnimatedTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBAnimatedTransition.m; sourceTree = "<group>"; };
489 027369B6DC1B43C3102AE522A00B351F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; 470 027369B6DC1B43C3102AE522A00B351F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
490 03021F927B254ED434510FB85A91E7DE /* UIApplication+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+YYAdd.h"; path = "YYKit/Base/UIKit/UIApplication+YYAdd.h"; sourceTree = "<group>"; }; 471 03021F927B254ED434510FB85A91E7DE /* UIApplication+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+YYAdd.h"; path = "YYKit/Base/UIKit/UIApplication+YYAdd.h"; sourceTree = "<group>"; };
491 - 03964B173BAD2879E938A697CDE23E58 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = "<group>"; };  
492 - 03A09A7D80E19CC940BE2323D0536D61 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = "<group>"; };  
493 - 03C7B13F9A65433A2099280BB0853B83 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = "<group>"; }; 472 + 03917DDCF8C121DD56B0AD9B603C2B9D /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = "<group>"; };
494 0501ADF2BFD7B3CD05199AEA120542A3 /* NSParagraphStyle+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSParagraphStyle+YYText.m"; path = "YYKit/Text/String/NSParagraphStyle+YYText.m"; sourceTree = "<group>"; }; 473 0501ADF2BFD7B3CD05199AEA120542A3 /* NSParagraphStyle+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSParagraphStyle+YYText.m"; path = "YYKit/Text/String/NSParagraphStyle+YYText.m"; sourceTree = "<group>"; };
495 05B6665B0FCAC9FA4988670409B6B9EF /* YBImageBrowser+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser+Internal.h"; sourceTree = "<group>"; }; 474 05B6665B0FCAC9FA4988670409B6B9EF /* YBImageBrowser+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser+Internal.h"; sourceTree = "<group>"; };
496 - 060133C4A0CD84D7E43EA5A6AE35A7BA /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = "<group>"; };  
497 074CC9782671ADCAC40FE44E9B57EB2D /* YYCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCache.h; path = YYKit/Cache/YYCache.h; sourceTree = "<group>"; }; 475 074CC9782671ADCAC40FE44E9B57EB2D /* YYCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCache.h; path = YYKit/Cache/YYCache.h; sourceTree = "<group>"; };
498 - 0786ADD48518359C5D9C950902C74B70 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = "<group>"; };  
499 - 0804ADB1BA257EF0FBCE5877305E5CBA /* SDWebImageDownloaderResponseModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderResponseModifier.m; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.m; sourceTree = "<group>"; }; 476 + 0847D06FD8D970FB3747D3FFE1EF1A98 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = "<group>"; };
500 0849338E27EFD23893C5843535A67BD6 /* UIScrollView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+YYAdd.m"; path = "YYKit/Base/UIKit/UIScrollView+YYAdd.m"; sourceTree = "<group>"; }; 477 0849338E27EFD23893C5843535A67BD6 /* UIScrollView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+YYAdd.m"; path = "YYKit/Base/UIKit/UIScrollView+YYAdd.m"; sourceTree = "<group>"; };
501 09221948BA0D8609E66D29534B1637F9 /* Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.plist"; sourceTree = "<group>"; }; 478 09221948BA0D8609E66D29534B1637F9 /* Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.plist"; sourceTree = "<group>"; };
502 09D461072FB1F94116B94C3D35ADC919 /* NSKeyedUnarchiver+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSKeyedUnarchiver+YYAdd.m"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.m"; sourceTree = "<group>"; }; 479 09D461072FB1F94116B94C3D35ADC919 /* NSKeyedUnarchiver+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSKeyedUnarchiver+YYAdd.m"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.m"; sourceTree = "<group>"; };
503 09FA23E05944FF1B0AD4A1CAE80AE86E /* YBIBCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCollectionView.m; sourceTree = "<group>"; }; 480 09FA23E05944FF1B0AD4A1CAE80AE86E /* YBIBCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCollectionView.m; sourceTree = "<group>"; };
504 - 0A70D2708290382BD7D9078C968FDBFD /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = "<group>"; }; 481 + 0AA629F1636B9E5C1E7779416F41894F /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = "<group>"; };
505 0B392E50F95AAAED6E6AF60D7A6FBA53 /* UIColor+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+YYAdd.m"; path = "YYKit/Base/UIKit/UIColor+YYAdd.m"; sourceTree = "<group>"; }; 482 0B392E50F95AAAED6E6AF60D7A6FBA53 /* UIColor+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+YYAdd.m"; path = "YYKit/Base/UIKit/UIColor+YYAdd.m"; sourceTree = "<group>"; };
506 0BA7CBEA43C737A330D9608FE7806297 /* YYCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCache.m; path = YYKit/Cache/YYCache.m; sourceTree = "<group>"; }; 483 0BA7CBEA43C737A330D9608FE7806297 /* YYCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCache.m; path = YYKit/Cache/YYCache.m; sourceTree = "<group>"; };
507 0C9EBF2F4721D7796CABB86E57141312 /* YYTextSelectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextSelectionView.m; path = YYKit/Text/Component/YYTextSelectionView.m; sourceTree = "<group>"; }; 484 0C9EBF2F4721D7796CABB86E57141312 /* YYTextSelectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextSelectionView.m; path = YYKit/Text/Component/YYTextSelectionView.m; sourceTree = "<group>"; };
508 0D2681FA26C64223B316B544D77AA55D /* Pods_YBImageBrowser_DSCnliveShop_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_YBImageBrowser_DSCnliveShop_Tests.framework; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 485 0D2681FA26C64223B316B544D77AA55D /* Pods_YBImageBrowser_DSCnliveShop_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_YBImageBrowser_DSCnliveShop_Tests.framework; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
  486 + 0D7D182C7944184D8687D02BC5895C8A /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = "<group>"; };
  487 + 0E9E88F1E31A013B69A717855A9A782E /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = "<group>"; };
509 0EC1CFF6509F136C99FC9C20BC2F40A9 /* UIView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYAdd.h"; path = "YYKit/Base/UIKit/UIView+YYAdd.h"; sourceTree = "<group>"; }; 488 0EC1CFF6509F136C99FC9C20BC2F40A9 /* UIView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYAdd.h"; path = "YYKit/Base/UIKit/UIView+YYAdd.h"; sourceTree = "<group>"; };
510 0F845FF4245B2F5F6327C08F01B5738F /* YYTextRubyAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRubyAnnotation.h; path = YYKit/Text/String/YYTextRubyAnnotation.h; sourceTree = "<group>"; }; 489 0F845FF4245B2F5F6327C08F01B5738F /* YYTextRubyAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRubyAnnotation.h; path = YYKit/Text/String/YYTextRubyAnnotation.h; sourceTree = "<group>"; };
  490 + 0F882F7E87C969BC4F446959C4C96507 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = "<group>"; };
511 101F73BF4899F419E3CC133F2A9180D4 /* YBIBContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBContainerView.m; sourceTree = "<group>"; }; 491 101F73BF4899F419E3CC133F2A9180D4 /* YBIBContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBContainerView.m; sourceTree = "<group>"; };
512 - 102A8609FE38B44A4F04554766133491 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = "<group>"; };  
513 - 1062A5D5F16F52CCF19B547AC48CFF6B /* UIColor+SDHexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+SDHexString.m"; path = "SDWebImage/Private/UIColor+SDHexString.m"; sourceTree = "<group>"; };  
514 - 1072A8A4B2B89ECA95DD401CFB50F108 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = "<group>"; };  
515 - 115DF10AB89F4BD3959B0760E6FF7F5A /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = "<group>"; }; 492 + 106CDD63C990007C4EBED229576FD0E6 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = "<group>"; };
516 1238AEB9DF5C8189A50C5E4E0B74DC2E /* NSObject+YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSObject+YBImageBrowser.m"; sourceTree = "<group>"; }; 493 1238AEB9DF5C8189A50C5E4E0B74DC2E /* NSObject+YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSObject+YBImageBrowser.m"; sourceTree = "<group>"; };
517 12443FCD2F18C4DFCA505874F97F9BB6 /* YYGestureRecognizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYGestureRecognizer.h; path = YYKit/Utility/YYGestureRecognizer.h; sourceTree = "<group>"; }; 494 12443FCD2F18C4DFCA505874F97F9BB6 /* YYGestureRecognizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYGestureRecognizer.h; path = YYKit/Utility/YYGestureRecognizer.h; sourceTree = "<group>"; };
518 - 1249E97F29FD39E6B5CA9DD3D122921C /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = "<group>"; };  
519 1252A4B51C377A0204EA817105C31367 /* YBImageBrowser_DSCnliveShop.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser_DSCnliveShop.debug.xcconfig; sourceTree = "<group>"; }; 495 1252A4B51C377A0204EA817105C31367 /* YBImageBrowser_DSCnliveShop.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser_DSCnliveShop.debug.xcconfig; sourceTree = "<group>"; };
520 - 12B66AB16766AB4060516E7814443E08 /* SDAssociatedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAssociatedObject.h; path = SDWebImage/Private/SDAssociatedObject.h; sourceTree = "<group>"; };  
521 - 13211B603D4A4D4D2724F2C5BB4407D3 /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = "<group>"; };  
522 13CCFEB0FA63FC0D2DCDF8E5B3E3CC33 /* YBIBSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBSentinel.m; sourceTree = "<group>"; }; 496 13CCFEB0FA63FC0D2DCDF8E5B3E3CC33 /* YBIBSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBSentinel.m; sourceTree = "<group>"; };
523 13EFE3DD1D702D85B36FB7D106BC163F /* YBIBSheetView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBSheetView.h; sourceTree = "<group>"; }; 497 13EFE3DD1D702D85B36FB7D106BC163F /* YBIBSheetView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBSheetView.h; sourceTree = "<group>"; };
524 13FA3D010FCAB935A4C1E9CC535A7D28 /* YYImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCache.h; path = YYKit/Image/YYImageCache.h; sourceTree = "<group>"; }; 498 13FA3D010FCAB935A4C1E9CC535A7D28 /* YYImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCache.h; path = YYKit/Image/YYImageCache.h; sourceTree = "<group>"; };
525 14462A5B7907FCC9A6CC6EAD33842356 /* YBIBPhotoAlbumManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBPhotoAlbumManager.m; sourceTree = "<group>"; }; 499 14462A5B7907FCC9A6CC6EAD33842356 /* YBIBPhotoAlbumManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBPhotoAlbumManager.m; sourceTree = "<group>"; };
526 - 14EF33DBBD181973544221E30D2DC4B9 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = "<group>"; };  
527 - 14FC848A818168BBB863CFE049B98704 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = "<group>"; };  
528 - 15DA0DE7F827744C2CD1C503B90ED22A /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = "<group>"; }; 500 + 14AEC03CE74FA3C1ED22FD08ACDC489F /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = "<group>"; };
  501 + 159B608142C5AD0E99E00479F64CDAFE /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = "<group>"; };
529 162ED1D7AFB75ACCB3368BC29019D8E8 /* YBIBOrientationReceiveProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBOrientationReceiveProtocol.h; sourceTree = "<group>"; }; 502 162ED1D7AFB75ACCB3368BC29019D8E8 /* YBIBOrientationReceiveProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBOrientationReceiveProtocol.h; sourceTree = "<group>"; };
530 - 165A9BD2C6ABE7C53969D2E146053DCC /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = "<group>"; };  
531 - 176BE9B96FD0004A2FDAD77CA2B59BEF /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = "<group>"; };  
532 - 1780A6FB6896D6EE58CA176A32A91167 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = "<group>"; };  
533 - 17C2170C0DA7F6751732A3F6F2D3304C /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = "<group>"; }; 503 + 17822DDCEE5C075412F1B1A731F006F2 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = "<group>"; };
534 18D018046653E9BB9680EF2CF10C5FF7 /* YBIBImageScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageScrollView.h; sourceTree = "<group>"; }; 504 18D018046653E9BB9680EF2CF10C5FF7 /* YBIBImageScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageScrollView.h; sourceTree = "<group>"; };
535 1A3ACB33EE20D3ACBAED2B2528ACF51B /* YYKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYKit.modulemap; sourceTree = "<group>"; }; 505 1A3ACB33EE20D3ACBAED2B2528ACF51B /* YYKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYKit.modulemap; sourceTree = "<group>"; };
  506 + 1A7213E5D815346B024AC2C78B59AE7E /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = "<group>"; };
536 1ABDD0D167F87048EDFBCF3A1E54B781 /* YYTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextView.m; path = YYKit/Text/YYTextView.m; sourceTree = "<group>"; }; 507 1ABDD0D167F87048EDFBCF3A1E54B781 /* YYTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextView.m; path = YYKit/Text/YYTextView.m; sourceTree = "<group>"; };
537 1BDC88838DB7DE47299D42DFB1449C97 /* UIImageView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+YYWebImage.h"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.h"; sourceTree = "<group>"; }; 508 1BDC88838DB7DE47299D42DFB1449C97 /* UIImageView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+YYWebImage.h"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.h"; sourceTree = "<group>"; };
538 1C3487B98119240E45C8448E84C5F249 /* YBIBVideoData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoData.h; sourceTree = "<group>"; }; 509 1C3487B98119240E45C8448E84C5F249 /* YBIBVideoData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoData.h; sourceTree = "<group>"; };
539 - 1C715A63047EF7CF84A44FC37DB4E919 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = "<group>"; };  
540 - 1ECDD31DCADBB91FE191C953267FFF2D /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = "<group>"; }; 510 + 1EE818633CBD870C5763EC5A7DEEFEBB /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = "<group>"; };
  511 + 1FB1475C6AAE3E931553C57D2012437B /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = "<group>"; };
541 200049C9763118B9DADAC88FB3401C9D /* NSString+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+YYAdd.m"; path = "YYKit/Base/Foundation/NSString+YYAdd.m"; sourceTree = "<group>"; }; 512 200049C9763118B9DADAC88FB3401C9D /* NSString+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+YYAdd.m"; path = "YYKit/Base/Foundation/NSString+YYAdd.m"; sourceTree = "<group>"; };
542 - 20421D13A41D462848F051647414A829 /* UIImage+ExtendedCacheData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ExtendedCacheData.m"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.m"; sourceTree = "<group>"; };  
543 2058F8BF3995BDEFE75215FA94771AA0 /* UIColor+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+YYAdd.h"; path = "YYKit/Base/UIKit/UIColor+YYAdd.h"; sourceTree = "<group>"; }; 513 2058F8BF3995BDEFE75215FA94771AA0 /* UIColor+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+YYAdd.h"; path = "YYKit/Base/UIKit/UIColor+YYAdd.h"; sourceTree = "<group>"; };
544 2083BC9AABD59C97DC155E29DC3E9A9F /* NSThread+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSThread+YYAdd.h"; path = "YYKit/Base/Foundation/NSThread+YYAdd.h"; sourceTree = "<group>"; }; 514 2083BC9AABD59C97DC155E29DC3E9A9F /* NSThread+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSThread+YYAdd.h"; path = "YYKit/Base/Foundation/NSThread+YYAdd.h"; sourceTree = "<group>"; };
545 220E77F927A6690D18D2E5FD80F7BE63 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSpriteSheetImage.h; path = YYKit/Image/YYSpriteSheetImage.h; sourceTree = "<group>"; }; 515 220E77F927A6690D18D2E5FD80F7BE63 /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSpriteSheetImage.h; path = YYKit/Image/YYSpriteSheetImage.h; sourceTree = "<group>"; };
546 22CF3B73FF5F5A8C94227088CE5E0FC8 /* YBImageBrowser_DSCnliveShop-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser_DSCnliveShop-prefix.pch"; sourceTree = "<group>"; }; 516 22CF3B73FF5F5A8C94227088CE5E0FC8 /* YBImageBrowser_DSCnliveShop-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser_DSCnliveShop-prefix.pch"; sourceTree = "<group>"; };
547 - 232C7410166470C58B9D7DD4BEE465D6 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = "<group>"; }; 517 + 22D6E01939BAAB30A2190ACA1D161CDB /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = "<group>"; };
548 235A9602CEADB22A070933C84D790CE0 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; }; 518 235A9602CEADB22A070933C84D790CE0 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; };
  519 + 23C27D070CBE7191DD5328960C7C772E /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = "<group>"; };
549 23CB6B846F24E05FCCCC37E91C2CF35A /* MKAnnotationView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+YYWebImage.h"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.h"; sourceTree = "<group>"; }; 520 23CB6B846F24E05FCCCC37E91C2CF35A /* MKAnnotationView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MKAnnotationView+YYWebImage.h"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.h"; sourceTree = "<group>"; };
550 243FDB361CEF50A59E549280ECDFF076 /* YBIBIconManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBIconManager.h; sourceTree = "<group>"; }; 521 243FDB361CEF50A59E549280ECDFF076 /* YBIBIconManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBIconManager.h; sourceTree = "<group>"; };
551 2472289EA21A4524121647E98565507F /* YYKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKeychain.m; path = YYKit/Utility/YYKeychain.m; sourceTree = "<group>"; }; 522 2472289EA21A4524121647E98565507F /* YYKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKeychain.m; path = YYKit/Utility/YYKeychain.m; sourceTree = "<group>"; };
552 - 255A9E38BCE069FD5BD5AA7B2554059D /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = "<group>"; };  
553 25741E0D4DAB65C050394B8B05242DD3 /* YBImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImage.h; sourceTree = "<group>"; }; 523 25741E0D4DAB65C050394B8B05242DD3 /* YBImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImage.h; sourceTree = "<group>"; };
  524 + 2594CEE3269A686FE6A32ADF1ACDA903 /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = "<group>"; };
554 264A3613CC394403F6228A3FD0B83D06 /* YYSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSentinel.m; path = YYKit/Utility/YYSentinel.m; sourceTree = "<group>"; }; 525 264A3613CC394403F6228A3FD0B83D06 /* YYSentinel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSentinel.m; path = YYKit/Utility/YYSentinel.m; sourceTree = "<group>"; };
555 268BFC97CAD611337B98EA380097C255 /* YBIBImageCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageCell+Internal.h"; sourceTree = "<group>"; }; 526 268BFC97CAD611337B98EA380097C255 /* YBIBImageCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageCell+Internal.h"; sourceTree = "<group>"; };
556 26B0E0EAD79931B3B4465C9353F4AEE3 /* YBIBVideoTopBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoTopBar.m; sourceTree = "<group>"; }; 527 26B0E0EAD79931B3B4465C9353F4AEE3 /* YBIBVideoTopBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoTopBar.m; sourceTree = "<group>"; };
  528 + 26EEACAD4CFF038839E5CAE01FC51426 /* SDImageAssetManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAssetManager.m; path = SDWebImage/Private/SDImageAssetManager.m; sourceTree = "<group>"; };
557 28231517D2EC4777AA0E1F8613912A64 /* YYDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDiskCache.h; path = YYKit/Cache/YYDiskCache.h; sourceTree = "<group>"; }; 529 28231517D2EC4777AA0E1F8613912A64 /* YYDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDiskCache.h; path = YYKit/Cache/YYDiskCache.h; sourceTree = "<group>"; };
558 282546E77187445CF7EBBDFA4E5CA774 /* YYImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCache.m; path = YYKit/Image/YYImageCache.m; sourceTree = "<group>"; }; 530 282546E77187445CF7EBBDFA4E5CA774 /* YYImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCache.m; path = YYKit/Image/YYImageCache.m; sourceTree = "<group>"; };
  531 + 29332085AB2D0312202A5E4DA9903355 /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = "<group>"; };
559 29A3DA3355DD6482745F7763E549FDEC /* YYTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTimer.m; path = YYKit/Utility/YYTimer.m; sourceTree = "<group>"; }; 532 29A3DA3355DD6482745F7763E549FDEC /* YYTimer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTimer.m; path = YYKit/Utility/YYTimer.m; sourceTree = "<group>"; };
  533 + 2B9F2CAB3EBC390CC9C5DF6FEB4AE54E /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = "<group>"; };
  534 + 2C6338E013B6CE8A040D3B94EC208F53 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = "<group>"; };
  535 + 2C68FD0A33D48BF8511F5E1F0AF5F38C /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = "<group>"; };
560 2C71F70A09014858351E0D2BA6885014 /* YYWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageManager.h; path = YYKit/Image/YYWebImageManager.h; sourceTree = "<group>"; }; 536 2C71F70A09014858351E0D2BA6885014 /* YYWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageManager.h; path = YYKit/Image/YYWebImageManager.h; sourceTree = "<group>"; };
561 2CC0CE9E8F82738D36611F6084F5F9C8 /* YYTextKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextKeyboardManager.h; path = YYKit/Text/Component/YYTextKeyboardManager.h; sourceTree = "<group>"; }; 537 2CC0CE9E8F82738D36611F6084F5F9C8 /* YYTextKeyboardManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextKeyboardManager.h; path = YYKit/Text/Component/YYTextKeyboardManager.h; sourceTree = "<group>"; };
562 2D2677C218E3A46355C345D95E7DE293 /* YBImageBrowser_DSCnliveShop-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YBImageBrowser_DSCnliveShop-Info.plist"; sourceTree = "<group>"; }; 538 2D2677C218E3A46355C345D95E7DE293 /* YBImageBrowser_DSCnliveShop-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YBImageBrowser_DSCnliveShop-Info.plist"; sourceTree = "<group>"; };
563 - 2DC1F761B34C39B4907D5DB70157ABFC /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = "<group>"; };  
564 2DEA694BF89E27C54D37D6453687E87A /* NSObject+YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSObject+YBImageBrowser.h"; sourceTree = "<group>"; }; 539 2DEA694BF89E27C54D37D6453687E87A /* NSObject+YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSObject+YBImageBrowser.h"; sourceTree = "<group>"; };
565 2DEB9108C68D52B1B6E58D88118E1BCA /* YBIBImageScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageScrollView.m; sourceTree = "<group>"; }; 540 2DEB9108C68D52B1B6E58D88118E1BCA /* YBIBImageScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageScrollView.m; sourceTree = "<group>"; };
566 - 2DED8461605A23446E943D5B44AC07FB /* SDWebImage-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-umbrella.h"; sourceTree = "<group>"; };  
567 - 2E02A020962AA8A983BE9DEF489D5CC5 /* SDImageHEICCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoder.h; path = SDWebImage/Core/SDImageHEICCoder.h; sourceTree = "<group>"; }; 541 + 2E14AFE886371F80BB03C9261CAE653A /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = "<group>"; };
568 2FA8DD8E17F9BA15127FBA5142430978 /* YBImageBrowser_DSCnliveShop.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser_DSCnliveShop.release.xcconfig; sourceTree = "<group>"; }; 542 2FA8DD8E17F9BA15127FBA5142430978 /* YBImageBrowser_DSCnliveShop.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YBImageBrowser_DSCnliveShop.release.xcconfig; sourceTree = "<group>"; };
569 - 2FBBBA584888406A53BBAB4C8E646119 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = "<group>"; }; 543 + 2FB82601936A52D10C46ABDED4C4D68E /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = "<group>"; };
  544 + 2FD9BD14816B4B34D6B032B14FCBCD17 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = "<group>"; };
570 305596E45FD137D2410A689DD199F532 /* YBIBScreenRotationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBScreenRotationHandler.m; sourceTree = "<group>"; }; 545 305596E45FD137D2410A689DD199F532 /* YBIBScreenRotationHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBScreenRotationHandler.m; sourceTree = "<group>"; };
571 30A5E7177537475E2A71D3D8A0E4C58F /* YBImageBrowser_DSCnliveShop-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser_DSCnliveShop-umbrella.h"; sourceTree = "<group>"; }; 546 30A5E7177537475E2A71D3D8A0E4C58F /* YBImageBrowser_DSCnliveShop-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBImageBrowser_DSCnliveShop-umbrella.h"; sourceTree = "<group>"; };
572 - 3103E35D6924D70FC117A1BFA21077C8 /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = "<group>"; };  
573 3236EA97B14313391E71CA2593DBB697 /* YBImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBImage.m; sourceTree = "<group>"; }; 547 3236EA97B14313391E71CA2593DBB697 /* YBImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBImage.m; sourceTree = "<group>"; };
574 327DD14828A174C897406BB7ACBB30E7 /* YBIBImageCache+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageCache+Internal.h"; sourceTree = "<group>"; }; 548 327DD14828A174C897406BB7ACBB30E7 /* YBIBImageCache+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageCache+Internal.h"; sourceTree = "<group>"; };
575 32AA9B50FD45F8829F9B21411363EC98 /* Pods-YBImageBrowser_DSCnliveShop_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Example.debug.xcconfig"; sourceTree = "<group>"; }; 549 32AA9B50FD45F8829F9B21411363EC98 /* Pods-YBImageBrowser_DSCnliveShop_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Example.debug.xcconfig"; sourceTree = "<group>"; };
@@ -578,169 +552,162 @@ @@ -578,169 +552,162 @@
578 33DBCD81CD9E79FBDBDD1041BC653A17 /* YBIBCopywriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCopywriter.m; sourceTree = "<group>"; }; 552 33DBCD81CD9E79FBDBDD1041BC653A17 /* YBIBCopywriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCopywriter.m; sourceTree = "<group>"; };
579 33F8253486294181F468179983E49503 /* YBIBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBUtilities.h; sourceTree = "<group>"; }; 553 33F8253486294181F468179983E49503 /* YBIBUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBUtilities.h; sourceTree = "<group>"; };
580 34FA97BD63CC23B9293C28CC94F1935E /* YBIBScreenRotationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBScreenRotationHandler.h; sourceTree = "<group>"; }; 554 34FA97BD63CC23B9293C28CC94F1935E /* YBIBScreenRotationHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBScreenRotationHandler.h; sourceTree = "<group>"; };
  555 + 35974735D558DD140EC7A519306676BF /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = "<group>"; };
581 364A01FADBC877C6C8BC0B9E72655651 /* Pods-YBImageBrowser_DSCnliveShop_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.modulemap"; sourceTree = "<group>"; }; 556 364A01FADBC877C6C8BC0B9E72655651 /* Pods-YBImageBrowser_DSCnliveShop_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.modulemap"; sourceTree = "<group>"; };
582 - 36C8C2D7C7ACA9C26136F7A7D1154082 /* SDImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoder.m; path = SDWebImage/Core/SDImageCoder.m; sourceTree = "<group>"; };  
583 36E435B666CD79060C4FCDA32BA104A7 /* NSDictionary+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YYAdd.m"; path = "YYKit/Base/Foundation/NSDictionary+YYAdd.m"; sourceTree = "<group>"; }; 557 36E435B666CD79060C4FCDA32BA104A7 /* NSDictionary+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YYAdd.m"; path = "YYKit/Base/Foundation/NSDictionary+YYAdd.m"; sourceTree = "<group>"; };
584 375D9DE1B1D8EB4B9968FB74F25DE792 /* YBIBImageLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageLayout.m; sourceTree = "<group>"; }; 558 375D9DE1B1D8EB4B9968FB74F25DE792 /* YBIBImageLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageLayout.m; sourceTree = "<group>"; };
585 - 3937A5FCAE6FD5C9CBFD132D61702EB0 /* SDWebImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.debug.xcconfig; sourceTree = "<group>"; };  
586 39721DF1E2941C5B4B819BD85F2AA60E /* NSNotificationCenter+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+YYAdd.m"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.m"; sourceTree = "<group>"; }; 559 39721DF1E2941C5B4B819BD85F2AA60E /* NSNotificationCenter+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+YYAdd.m"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.m"; sourceTree = "<group>"; };
587 - 3A20F815CD4F1A80CA68C34C3039D331 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/Core/UIImage+GIF.h"; sourceTree = "<group>"; };  
588 - 3AEC8F623A6884FBFC7CF8D4309918D7 /* SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SDWebImage-prefix.pch"; sourceTree = "<group>"; }; 560 + 397498F9C1EC4E17B000928E2E9A2551 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = "<group>"; };
  561 + 3977DF74625040A3E0128C656F9FA8D0 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = "<group>"; };
  562 + 3BAFBDA5FBFB046872240DAA694DBA9D /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = "<group>"; };
589 3BDA601294E211EE3B9CBED6DC267A5E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; 563 3BDA601294E211EE3B9CBED6DC267A5E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
590 - 3C016044B645AE229C947C4E2E37F78B /* SDWebImageCacheKeyFilter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheKeyFilter.h; path = SDWebImage/Core/SDWebImageCacheKeyFilter.h; sourceTree = "<group>"; };  
591 - 3C7A36D864638BFBD8FEE3A451FAC9B3 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = "<group>"; };  
592 - 3CA0E2F59E86C22963A7F42A601D4D9D /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = "<group>"; }; 564 + 3C89C4C20801869E17ED28D5BC0002C7 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = "<group>"; };
593 3CE22FC473D05C3D81125FB08264318F /* NSTimer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTimer+YYAdd.h"; path = "YYKit/Base/Foundation/NSTimer+YYAdd.h"; sourceTree = "<group>"; }; 565 3CE22FC473D05C3D81125FB08264318F /* NSTimer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTimer+YYAdd.h"; path = "YYKit/Base/Foundation/NSTimer+YYAdd.h"; sourceTree = "<group>"; };
594 3D190164465C91A9309173CCE20C5764 /* YYTextEffectWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextEffectWindow.h; path = YYKit/Text/Component/YYTextEffectWindow.h; sourceTree = "<group>"; }; 566 3D190164465C91A9309173CCE20C5764 /* YYTextEffectWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextEffectWindow.h; path = YYKit/Text/Component/YYTextEffectWindow.h; sourceTree = "<group>"; };
595 3D83880B681055CB94822859FFC3C2B6 /* UIDevice+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+YYAdd.m"; path = "YYKit/Base/UIKit/UIDevice+YYAdd.m"; sourceTree = "<group>"; }; 567 3D83880B681055CB94822859FFC3C2B6 /* UIDevice+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+YYAdd.m"; path = "YYKit/Base/UIKit/UIDevice+YYAdd.m"; sourceTree = "<group>"; };
596 3E04E2554A40CC109E87A30B4F4F3587 /* Pods-YBImageBrowser_DSCnliveShop_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-YBImageBrowser_DSCnliveShop_Example.modulemap"; sourceTree = "<group>"; }; 568 3E04E2554A40CC109E87A30B4F4F3587 /* Pods-YBImageBrowser_DSCnliveShop_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-YBImageBrowser_DSCnliveShop_Example.modulemap"; sourceTree = "<group>"; };
597 - 3E74798ACDDA5B166130859C04575723 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = "<group>"; };  
598 3F544E13A1E9FD128E0AF79DBF99E602 /* Pods-YBImageBrowser_DSCnliveShop_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Example.release.xcconfig"; sourceTree = "<group>"; }; 569 3F544E13A1E9FD128E0AF79DBF99E602 /* Pods-YBImageBrowser_DSCnliveShop_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Example.release.xcconfig"; sourceTree = "<group>"; };
599 - 3F7D6860C305EDC74687492EDEFC2325 /* SDImageCachesManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManager.m; path = SDWebImage/Core/SDImageCachesManager.m; sourceTree = "<group>"; }; 570 + 3F679F8EE0717580BF2DF10529B314ED /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = "<group>"; };
600 410FD0E1E2173C4AFCCB371FC6932374 /* YYFrameImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFrameImage.h; path = YYKit/Image/YYFrameImage.h; sourceTree = "<group>"; }; 571 410FD0E1E2173C4AFCCB371FC6932374 /* YYFrameImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFrameImage.h; path = YYKit/Image/YYFrameImage.h; sourceTree = "<group>"; };
601 - 4294BEEA87AE1F76B25087B05E8A9958 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = "<group>"; }; 572 + 42406C450631485B971273EE79B37A12 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = "<group>"; };
602 431B4699FDBDE9286754313242740273 /* Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.markdown"; sourceTree = "<group>"; }; 573 431B4699FDBDE9286754313242740273 /* Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
603 43D073BDA908719B072B9A52BECCED3D /* NSBundle+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+YYAdd.h"; path = "YYKit/Base/Foundation/NSBundle+YYAdd.h"; sourceTree = "<group>"; }; 574 43D073BDA908719B072B9A52BECCED3D /* NSBundle+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+YYAdd.h"; path = "YYKit/Base/Foundation/NSBundle+YYAdd.h"; sourceTree = "<group>"; };
604 - 4423F2AF5E01BBBB5F27784F5DA57247 /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = "<group>"; };  
605 44A8AA845C7A4050F81BBFEC526B2B62 /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m"; sourceTree = "<group>"; }; 575 44A8AA845C7A4050F81BBFEC526B2B62 /* Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-YBImageBrowser_DSCnliveShop_Example-dummy.m"; sourceTree = "<group>"; };
606 4509C09CF0DD15FBEB1EAF90400333B3 /* YYTextParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextParser.h; path = YYKit/Text/String/YYTextParser.h; sourceTree = "<group>"; }; 576 4509C09CF0DD15FBEB1EAF90400333B3 /* YYTextParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextParser.h; path = YYKit/Text/String/YYTextParser.h; sourceTree = "<group>"; };
  577 + 4532E0D4D1C1FCB630416F347E791110 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = "<group>"; };
  578 + 45487E9C2D9132F54E6DD142FDADCBAF /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = "<group>"; };
607 45819A3D4F8AF3FCF1D0D1AF84EADC51 /* YBIBLoadingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBLoadingView.m; sourceTree = "<group>"; }; 579 45819A3D4F8AF3FCF1D0D1AF84EADC51 /* YBIBLoadingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBLoadingView.m; sourceTree = "<group>"; };
  580 + 458C3BA863BEC4A0D1766E7096A16EF8 /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = "<group>"; };
  581 + 45EBF80603A6BB114FFDF460A6A20CC7 /* UIImage+MemoryCacheCost.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MemoryCacheCost.h"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.h"; sourceTree = "<group>"; };
608 4600030B461C937CF76ADA334E8D6F1B /* YBIBCollectionViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCollectionViewLayout.h; sourceTree = "<group>"; }; 582 4600030B461C937CF76ADA334E8D6F1B /* YBIBCollectionViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCollectionViewLayout.h; sourceTree = "<group>"; };
609 4625B897D5EC65459B29737D53744D1B /* Pods-YBImageBrowser_DSCnliveShop_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Example-Info.plist"; sourceTree = "<group>"; }; 583 4625B897D5EC65459B29737D53744D1B /* Pods-YBImageBrowser_DSCnliveShop_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Example-Info.plist"; sourceTree = "<group>"; };
610 - 467332BA4DF047A604E2AD170D2A9A6C /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = "<group>"; };  
611 47EBB445DD9ED1E0006BD00439ED755A /* YYSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSentinel.h; path = YYKit/Utility/YYSentinel.h; sourceTree = "<group>"; }; 584 47EBB445DD9ED1E0006BD00439ED755A /* YYSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSentinel.h; path = YYKit/Utility/YYSentinel.h; sourceTree = "<group>"; };
612 - 491254BCC101B0465D55540272375AB3 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/Core/SDWebImageOperation.h; sourceTree = "<group>"; }; 585 + 480531E7E6576BA8EBC67D80A2410524 /* NSBezierPath+RoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+RoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.h"; sourceTree = "<group>"; };
613 49508D684CC827AE070DD761E831114F /* YYFrameImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFrameImage.m; path = YYKit/Image/YYFrameImage.m; sourceTree = "<group>"; }; 586 49508D684CC827AE070DD761E831114F /* YYFrameImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFrameImage.m; path = YYKit/Image/YYFrameImage.m; sourceTree = "<group>"; };
614 - 4A1019E03A5B1C662AEA03A27BAD9451 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = "<group>"; };  
615 - 4B31C91F7BAC29DAB475F9F033793951 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = "<group>"; };  
616 4B993C46E9B43AF9AE34EE10D6399802 /* DSYBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSYBImageBrowser.h; path = YBImageBrowser_DSCnliveShop/Classes/DSYBImageBrowser.h; sourceTree = "<group>"; }; 587 4B993C46E9B43AF9AE34EE10D6399802 /* DSYBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSYBImageBrowser.h; path = YBImageBrowser_DSCnliveShop/Classes/DSYBImageBrowser.h; sourceTree = "<group>"; };
617 - 4C8603634C14CA0EB02BA831268B0C10 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = "<group>"; }; 588 + 4C86D29287795201B7A91BA858DBC2FB /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/Core/SDImageCache.m; sourceTree = "<group>"; };
618 4D09FF329509C51C099F07C2BA4EF7A6 /* NSData+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+YYAdd.h"; path = "YYKit/Base/Foundation/NSData+YYAdd.h"; sourceTree = "<group>"; }; 589 4D09FF329509C51C099F07C2BA4EF7A6 /* NSData+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+YYAdd.h"; path = "YYKit/Base/Foundation/NSData+YYAdd.h"; sourceTree = "<group>"; };
619 - 4D6746DFA44B1641AE23A50377370530 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = "<group>"; };  
620 - 4EB5FC7AFB1E5240D21A6FE7DF89E87C /* SDDisplayLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDisplayLink.h; path = SDWebImage/Private/SDDisplayLink.h; sourceTree = "<group>"; };  
621 - 4F30AC9537E6584F35D8DD4C10EDB7B1 /* UIImage+MemoryCacheCost.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MemoryCacheCost.m"; path = "SDWebImage/Core/UIImage+MemoryCacheCost.m"; sourceTree = "<group>"; }; 590 + 4D82E5E2C22405F57D03467E23EA118F /* SDWebImageError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageError.m; path = SDWebImage/Core/SDWebImageError.m; sourceTree = "<group>"; };
  591 + 4E907072812DC6E02160321606CBFFD2 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = "<group>"; };
  592 + 4EB6A999880D99C4B8EAE70EC4D73221 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = "<group>"; };
622 4F8E8FC3A2C5BD919F913AD5ED4E1EAC /* YYKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYKit-dummy.m"; sourceTree = "<group>"; }; 593 4F8E8FC3A2C5BD919F913AD5ED4E1EAC /* YYKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYKit-dummy.m"; sourceTree = "<group>"; };
623 - 507EA85A920020FD53FDF4A254A318F9 /* SDAssociatedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAssociatedObject.m; path = SDWebImage/Private/SDAssociatedObject.m; sourceTree = "<group>"; };  
624 50E241CBBD2EF97B17ECA31FEAF181E7 /* UIBarButtonItem+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+YYAdd.h"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.h"; sourceTree = "<group>"; }; 594 50E241CBBD2EF97B17ECA31FEAF181E7 /* UIBarButtonItem+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+YYAdd.h"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.h"; sourceTree = "<group>"; };
625 517A0A3DCA0C56126084B689FBE105E9 /* YYTextRubyAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRubyAnnotation.m; path = YYKit/Text/String/YYTextRubyAnnotation.m; sourceTree = "<group>"; }; 595 517A0A3DCA0C56126084B689FBE105E9 /* YYTextRubyAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRubyAnnotation.m; path = YYKit/Text/String/YYTextRubyAnnotation.m; sourceTree = "<group>"; };
  596 + 523A9DF244F75BFD8EF7183295D79237 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = "<group>"; };
626 52A857F7C6A4B03E17C6CC6873436387 /* _YYWebImageSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _YYWebImageSetter.m; path = YYKit/Image/Categories/_YYWebImageSetter.m; sourceTree = "<group>"; }; 597 52A857F7C6A4B03E17C6CC6873436387 /* _YYWebImageSetter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _YYWebImageSetter.m; path = YYKit/Image/Categories/_YYWebImageSetter.m; sourceTree = "<group>"; };
627 52B62F0134660F292CE152D8E39947BD /* YBIBVideoCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoCell.h; sourceTree = "<group>"; }; 598 52B62F0134660F292CE152D8E39947BD /* YBIBVideoCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoCell.h; sourceTree = "<group>"; };
628 52BE96D687228A93E19263F07010C4F8 /* NSObject+YYAddForKVO.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForKVO.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.h"; sourceTree = "<group>"; }; 599 52BE96D687228A93E19263F07010C4F8 /* NSObject+YYAddForKVO.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForKVO.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.h"; sourceTree = "<group>"; };
629 5356E679669AF6B1D86C87ED02DE9228 /* YBIBImageData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageData+Internal.h"; sourceTree = "<group>"; }; 600 5356E679669AF6B1D86C87ED02DE9228 /* YBIBImageData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBImageData+Internal.h"; sourceTree = "<group>"; };
630 - 54932F1D65D4CE3969AD7014585252E6 /* SDDeviceHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDeviceHelper.m; path = SDWebImage/Private/SDDeviceHelper.m; sourceTree = "<group>"; };  
631 - 5566B7FA1592DB68F47F538060773A34 /* SDWebImageDownloaderDecryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderDecryptor.m; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.m; sourceTree = "<group>"; };  
632 - 5573ECAD013B67C3DCA80D7EFBDE031B /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = "<group>"; };  
633 55FA14C2DEAB1ED0438F36B2AF930CC1 /* YYClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYClassInfo.h; path = YYKit/Model/YYClassInfo.h; sourceTree = "<group>"; }; 601 55FA14C2DEAB1ED0438F36B2AF930CC1 /* YYClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYClassInfo.h; path = YYKit/Model/YYClassInfo.h; sourceTree = "<group>"; };
634 563F4DAD613D6C00571FC9D44766124D /* YYImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCoder.m; path = YYKit/Image/YYImageCoder.m; sourceTree = "<group>"; }; 602 563F4DAD613D6C00571FC9D44766124D /* YYImageCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImageCoder.m; path = YYKit/Image/YYImageCoder.m; sourceTree = "<group>"; };
635 - 57001503938AEFE09B39A90CD56CF65A /* SDDisplayLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDisplayLink.m; path = SDWebImage/Private/SDDisplayLink.m; sourceTree = "<group>"; }; 603 + 565EA3FF9DE0069950D12760CD92E6DF /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = "<group>"; };
636 57078E9B88965F537213B04FEDA909B2 /* YYTextAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAttribute.h; path = YYKit/Text/String/YYTextAttribute.h; sourceTree = "<group>"; }; 604 57078E9B88965F537213B04FEDA909B2 /* YYTextAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextAttribute.h; path = YYKit/Text/String/YYTextAttribute.h; sourceTree = "<group>"; };
637 57EF9F7EACD9A4EA29C6C7519AC29E42 /* YYThreadSafeDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYThreadSafeDictionary.m; path = YYKit/Utility/YYThreadSafeDictionary.m; sourceTree = "<group>"; }; 605 57EF9F7EACD9A4EA29C6C7519AC29E42 /* YYThreadSafeDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYThreadSafeDictionary.m; path = YYKit/Utility/YYThreadSafeDictionary.m; sourceTree = "<group>"; };
  606 + 5820AFD9CB1F531DEEEA85AE53BA9FB1 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = "<group>"; };
638 586579D8B562F5F100F35D60CADAF40B /* CALayer+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYWebImage.h"; path = "YYKit/Image/Categories/CALayer+YYWebImage.h"; sourceTree = "<group>"; }; 607 586579D8B562F5F100F35D60CADAF40B /* CALayer+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYWebImage.h"; path = "YYKit/Image/Categories/CALayer+YYWebImage.h"; sourceTree = "<group>"; };
639 5A4D5229E0CA5F30FA43F226DA32F462 /* CALayer+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYWebImage.m"; path = "YYKit/Image/Categories/CALayer+YYWebImage.m"; sourceTree = "<group>"; }; 608 5A4D5229E0CA5F30FA43F226DA32F462 /* CALayer+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYWebImage.m"; path = "YYKit/Image/Categories/CALayer+YYWebImage.m"; sourceTree = "<group>"; };
640 5B19431AF11994E0CA59423A7DAE3628 /* YYAsyncLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAsyncLayer.h; path = YYKit/Utility/YYAsyncLayer.h; sourceTree = "<group>"; }; 609 5B19431AF11994E0CA59423A7DAE3628 /* YYAsyncLayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAsyncLayer.h; path = YYKit/Utility/YYAsyncLayer.h; sourceTree = "<group>"; };
641 5C1FEAA05AC81F62B91CF98EA70351DD /* YBIBSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBSentinel.h; sourceTree = "<group>"; }; 610 5C1FEAA05AC81F62B91CF98EA70351DD /* YBIBSentinel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBSentinel.h; sourceTree = "<group>"; };
642 - 5D239E8639A886939B6B5EB58FC27342 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = "<group>"; };  
643 - 5DD0F8422DC31BC404DEB779AA5DB139 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = "<group>"; };  
644 - 5E05A254217112511844A5ABAEA26D88 /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = "<group>"; }; 611 + 5E4DCEAC007F7F72A2323A6304B0F4A4 /* UIColor+HexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+HexString.h"; path = "SDWebImage/Private/UIColor+HexString.h"; sourceTree = "<group>"; };
  612 + 5E7D951E27DDF1D0327C691AC350863B /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = "<group>"; };
645 5E84B87FDA9D2897071CB2718674F9C6 /* YBImageBrowser_DSCnliveShop.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YBImageBrowser_DSCnliveShop.framework; path = YBImageBrowser_DSCnliveShop.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 613 5E84B87FDA9D2897071CB2718674F9C6 /* YBImageBrowser_DSCnliveShop.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YBImageBrowser_DSCnliveShop.framework; path = YBImageBrowser_DSCnliveShop.framework; sourceTree = BUILT_PRODUCTS_DIR; };
646 - 6016CD6764077B1F107BD22483AA7D14 /* SDGraphicsImageRenderer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDGraphicsImageRenderer.h; path = SDWebImage/Core/SDGraphicsImageRenderer.h; sourceTree = "<group>"; };  
647 - 608E04456BC00743986E00E4A8181EA3 /* NSBezierPath+SDRoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+SDRoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.m"; sourceTree = "<group>"; }; 614 + 604FBD4A36B51CB23593D6E7144E0A66 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/Core/UIButton+WebCache.m"; sourceTree = "<group>"; };
  615 + 6076834A27CA897C42FFDA170BDE4715 /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = "<group>"; };
648 60FC5BFD7F334913232A59633DEE5138 /* YBIBDefaultWebImageMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBDefaultWebImageMediator.m; sourceTree = "<group>"; }; 616 60FC5BFD7F334913232A59633DEE5138 /* YBIBDefaultWebImageMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBDefaultWebImageMediator.m; sourceTree = "<group>"; };
649 6107B507ED75C5E7304F9AE9131E04CB /* YYWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWeakProxy.m; path = YYKit/Utility/YYWeakProxy.m; sourceTree = "<group>"; }; 617 6107B507ED75C5E7304F9AE9131E04CB /* YYWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWeakProxy.m; path = YYKit/Utility/YYWeakProxy.m; sourceTree = "<group>"; };
650 - 615E0DE04702B1FE637909AB79E77479 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = "<group>"; };  
651 - 615E844CC98D96DCD6F0EFE36CFF13BF /* SDFileAttributeHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDFileAttributeHelper.m; path = SDWebImage/Private/SDFileAttributeHelper.m; sourceTree = "<group>"; };  
652 - 61733D38B2BF61692321B0EAD6CE7AAC /* SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SDWebImage-dummy.m"; sourceTree = "<group>"; };  
653 618A21680667BDF2F6B320EC659C0C8A /* YBIBAuxiliaryViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBAuxiliaryViewHandler.m; sourceTree = "<group>"; }; 618 618A21680667BDF2F6B320EC659C0C8A /* YBIBAuxiliaryViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBAuxiliaryViewHandler.m; sourceTree = "<group>"; };
654 - 618EA55D0CE2B6CFE74715E49A256295 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/Core/SDWebImageCompat.h; sourceTree = "<group>"; }; 619 + 631A43488B8C087EA660030CD2484EA9 /* SDWebImageCacheSerializer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCacheSerializer.h; path = SDWebImage/Core/SDWebImageCacheSerializer.h; sourceTree = "<group>"; };
655 638CD74411415C9BD0B7940010462593 /* CALayer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYAdd.h"; path = "YYKit/Base/Quartz/CALayer+YYAdd.h"; sourceTree = "<group>"; }; 620 638CD74411415C9BD0B7940010462593 /* CALayer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+YYAdd.h"; path = "YYKit/Base/Quartz/CALayer+YYAdd.h"; sourceTree = "<group>"; };
656 64533B43DC32C38326C2FB11D3FB17D6 /* YYKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYKit-Info.plist"; sourceTree = "<group>"; }; 621 64533B43DC32C38326C2FB11D3FB17D6 /* YYKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYKit-Info.plist"; sourceTree = "<group>"; };
657 - 64D193C84163B92004E21BE9A8A13B71 /* UIView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCache.h"; path = "SDWebImage/Core/UIView+WebCache.h"; sourceTree = "<group>"; };  
658 - 657DCFEE5B399779371CC2AC2AAAA206 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = "<group>"; }; 622 + 645FAD055E96DC89E3CF7A287A4B4F87 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/Core/SDWebImageManager.h; sourceTree = "<group>"; };
659 65851769AB362F92EB866E5610C88E6C /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m"; sourceTree = "<group>"; }; 623 65851769AB362F92EB866E5610C88E6C /* Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-dummy.m"; sourceTree = "<group>"; };
  624 + 662B362504EE532B6C5EAA6DEDDC5D23 /* SDImageTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageTransformer.h; path = SDWebImage/Core/SDImageTransformer.h; sourceTree = "<group>"; };
660 666CEBB485FC6B4BC1861FC6F4EE5093 /* YYTextContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextContainerView.m; path = YYKit/Text/Component/YYTextContainerView.m; sourceTree = "<group>"; }; 625 666CEBB485FC6B4BC1861FC6F4EE5093 /* YYTextContainerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextContainerView.m; path = YYKit/Text/Component/YYTextContainerView.m; sourceTree = "<group>"; };
661 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 626 666F2A06D9CC71D500B577D3F48163AF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
662 670ED4D099B5B4C894DE0935874915F0 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+YYAdd.h"; path = "YYKit/Base/UIKit/UIControl+YYAdd.h"; sourceTree = "<group>"; }; 627 670ED4D099B5B4C894DE0935874915F0 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+YYAdd.h"; path = "YYKit/Base/UIKit/UIControl+YYAdd.h"; sourceTree = "<group>"; };
663 - 6721C57EE2049316FC7DFA0EC2F61B33 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = "<group>"; }; 628 + 6821ACBD9902AD3AEC5766052616BEFC /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = "<group>"; };
664 68D2A3CB6FA504A7585BD0C033C2860D /* YBIBDefaultWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDefaultWebImageMediator.h; sourceTree = "<group>"; }; 629 68D2A3CB6FA504A7585BD0C033C2860D /* YBIBDefaultWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDefaultWebImageMediator.h; sourceTree = "<group>"; };
665 - 69B6E48A6A7BF7FDA397F18D808442A2 /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = "<group>"; };  
666 6A08FF9357329D825160ABB1311027C9 /* UIBezierPath+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBezierPath+YYAdd.m"; path = "YYKit/Base/UIKit/UIBezierPath+YYAdd.m"; sourceTree = "<group>"; }; 630 6A08FF9357329D825160ABB1311027C9 /* UIBezierPath+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBezierPath+YYAdd.m"; path = "YYKit/Base/UIKit/UIBezierPath+YYAdd.m"; sourceTree = "<group>"; };
667 6A25BC91CE33678DD088B666A283A44A /* UIDevice+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+YYAdd.h"; path = "YYKit/Base/UIKit/UIDevice+YYAdd.h"; sourceTree = "<group>"; }; 631 6A25BC91CE33678DD088B666A283A44A /* UIDevice+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice+YYAdd.h"; path = "YYKit/Base/UIKit/UIDevice+YYAdd.h"; sourceTree = "<group>"; };
668 6A37969EF9EE0C673EADF254ACD0FE1C /* UIFont+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+YYAdd.h"; path = "YYKit/Base/UIKit/UIFont+YYAdd.h"; sourceTree = "<group>"; }; 632 6A37969EF9EE0C673EADF254ACD0FE1C /* UIFont+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+YYAdd.h"; path = "YYKit/Base/UIKit/UIFont+YYAdd.h"; sourceTree = "<group>"; };
669 - 6DB88B001512FB115B60C0A194FAB687 /* SDGraphicsImageRenderer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDGraphicsImageRenderer.m; path = SDWebImage/Core/SDGraphicsImageRenderer.m; sourceTree = "<group>"; }; 633 + 6BF16A9C9A9AF5DDC141A40D41D0467E /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = "<group>"; };
  634 + 6C25A06B05CE4932A05E03D9A5B91E1A /* UIView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCache.m"; path = "SDWebImage/Core/UIView+WebCache.m"; sourceTree = "<group>"; };
  635 + 6E0438EB685599B92473E4BBB56C9271 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = "<group>"; };
670 6F091181C07B3942FF0C12310A2FD678 /* YYThreadSafeDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYThreadSafeDictionary.h; path = YYKit/Utility/YYThreadSafeDictionary.h; sourceTree = "<group>"; }; 636 6F091181C07B3942FF0C12310A2FD678 /* YYThreadSafeDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYThreadSafeDictionary.h; path = YYKit/Utility/YYThreadSafeDictionary.h; sourceTree = "<group>"; };
671 6F3722F221BDAC94870B0E9231FE44B7 /* YYTextContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextContainerView.h; path = YYKit/Text/Component/YYTextContainerView.h; sourceTree = "<group>"; }; 637 6F3722F221BDAC94870B0E9231FE44B7 /* YYTextContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextContainerView.h; path = YYKit/Text/Component/YYTextContainerView.h; sourceTree = "<group>"; };
672 - 7025B67B4A01BBCCCFB1958DC25846D2 /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = "<group>"; };  
673 - 7136C53C3E86DF97021DEAC46C3AF414 /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = "<group>"; };  
674 - 71AEC717DE657C306DC4220359875899 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = "<group>"; }; 638 + 6F4A5B2FFD435932DC069C91BA243B8A /* SDWebImageTransition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageTransition.m; path = SDWebImage/Core/SDWebImageTransition.m; sourceTree = "<group>"; };
  639 + 6F7A1C78766D1A651D4233A02DFD21C1 /* SDAnimatedImageRep.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageRep.h; path = SDWebImage/Core/SDAnimatedImageRep.h; sourceTree = "<group>"; };
675 7310856B16CA1367B57B8768F5EBC3E9 /* YBIBImageLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageLayout.h; sourceTree = "<group>"; }; 640 7310856B16CA1367B57B8768F5EBC3E9 /* YBIBImageLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageLayout.h; sourceTree = "<group>"; };
676 7355C552B642A7D227CB76CDCD03E2F8 /* NSNumber+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+YYAdd.m"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.m"; sourceTree = "<group>"; }; 641 7355C552B642A7D227CB76CDCD03E2F8 /* NSNumber+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+YYAdd.m"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.m"; sourceTree = "<group>"; };
677 73F109F39280C7548AA77C244ED5675B /* YBIBDataProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDataProtocol.h; sourceTree = "<group>"; }; 642 73F109F39280C7548AA77C244ED5675B /* YBIBDataProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDataProtocol.h; sourceTree = "<group>"; };
  643 + 7492D3D26ACA17BE066949BC5402EFA6 /* SDImageIOCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOCoder.m; path = SDWebImage/Core/SDImageIOCoder.m; sourceTree = "<group>"; };
  644 + 74C01AF8051358A2AD340A5AB3505F28 /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = "<group>"; };
678 74C9F42DE0F28AF77F3789C8BD0F8A78 /* YYTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTransaction.h; path = YYKit/Utility/YYTransaction.h; sourceTree = "<group>"; }; 645 74C9F42DE0F28AF77F3789C8BD0F8A78 /* YYTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTransaction.h; path = YYKit/Utility/YYTransaction.h; sourceTree = "<group>"; };
679 74CE5CC75231FB5BA4F8EB1071D6A3B3 /* YBIBCollectionViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCollectionViewLayout.m; sourceTree = "<group>"; }; 646 74CE5CC75231FB5BA4F8EB1071D6A3B3 /* YBIBCollectionViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBCollectionViewLayout.m; sourceTree = "<group>"; };
680 75DDFEB8B1AD695874CDD5C0116D3C02 /* YYKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYKit-umbrella.h"; sourceTree = "<group>"; }; 647 75DDFEB8B1AD695874CDD5C0116D3C02 /* YYKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYKit-umbrella.h"; sourceTree = "<group>"; };
681 - 77BDAC0316DE945EDC00877B001E3F13 /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = "<group>"; };  
682 78025E79C159D1B545ECE0DBDCA36B66 /* Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.markdown"; sourceTree = "<group>"; }; 648 78025E79C159D1B545ECE0DBDCA36B66 /* Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.markdown"; sourceTree = "<group>"; };
683 780BD6CD409902FCCA79E07B8449B0DB /* YBIBAnimatedTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBAnimatedTransition.h; sourceTree = "<group>"; }; 649 780BD6CD409902FCCA79E07B8449B0DB /* YBIBAnimatedTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBAnimatedTransition.h; sourceTree = "<group>"; };
684 784B89EF43D57599270D1491D222B2BF /* YYReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYReachability.h; path = YYKit/Utility/YYReachability.h; sourceTree = "<group>"; }; 650 784B89EF43D57599270D1491D222B2BF /* YYReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYReachability.h; path = YYKit/Utility/YYReachability.h; sourceTree = "<group>"; };
685 78B7E54CA0E5B57763E180DBA69E47AF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; 651 78B7E54CA0E5B57763E180DBA69E47AF /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
686 78C427ED00AF6FA74B7F70468B7F9537 /* YBImageBrowserVideo.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowserVideo.bundle; path = YBImageBrowser_DSCnliveShop/Assets/YBImageBrowserVideo.bundle; sourceTree = "<group>"; }; 652 78C427ED00AF6FA74B7F70468B7F9537 /* YBImageBrowserVideo.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowserVideo.bundle; path = YBImageBrowser_DSCnliveShop/Assets/YBImageBrowserVideo.bundle; sourceTree = "<group>"; };
  653 + 78D88E09C574752B379AC19B8561A84F /* SDImageTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageTransformer.m; path = SDWebImage/Core/SDImageTransformer.m; sourceTree = "<group>"; };
687 7975F0485F6C6908DD6A4D47F50E9D35 /* YYTextArchiver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextArchiver.m; path = YYKit/Text/String/YYTextArchiver.m; sourceTree = "<group>"; }; 654 7975F0485F6C6908DD6A4D47F50E9D35 /* YYTextArchiver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextArchiver.m; path = YYKit/Text/String/YYTextArchiver.m; sourceTree = "<group>"; };
688 7A2AD834B988AB862338A88298281712 /* YBImageBrowser.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowser.bundle; path = YBImageBrowser_DSCnliveShop/Assets/YBImageBrowser.bundle; sourceTree = "<group>"; }; 655 7A2AD834B988AB862338A88298281712 /* YBImageBrowser.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YBImageBrowser.bundle; path = YBImageBrowser_DSCnliveShop/Assets/YBImageBrowser.bundle; sourceTree = "<group>"; };
  656 + 7A3758E1F2262F48C18DEA44579E7F23 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = "<group>"; };
689 7B4A7C95058000CD832DBF4537DCFBA4 /* YYTextLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLayout.m; path = YYKit/Text/Component/YYTextLayout.m; sourceTree = "<group>"; }; 657 7B4A7C95058000CD832DBF4537DCFBA4 /* YYTextLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLayout.m; path = YYKit/Text/Component/YYTextLayout.m; sourceTree = "<group>"; };
690 7BE5EE0D085B4C8EE2CDD27B25526D0D /* YYTextLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLayout.h; path = YYKit/Text/Component/YYTextLayout.h; sourceTree = "<group>"; }; 658 7BE5EE0D085B4C8EE2CDD27B25526D0D /* YYTextLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLayout.h; path = YYKit/Text/Component/YYTextLayout.h; sourceTree = "<group>"; };
691 - 7CA02462DD9F35B55FD8C20DC0A0CDBC /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = "<group>"; };  
692 - 7E26822C5FA7DDEE80076B4E7C2728A9 /* SDImageCodersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCodersManager.m; path = SDWebImage/Core/SDImageCodersManager.m; sourceTree = "<group>"; }; 659 + 7DC9E6937FC0DCAFBFE9BC1CC778D6C9 /* SDImageIOCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOCoder.h; path = SDWebImage/Core/SDImageIOCoder.h; sourceTree = "<group>"; };
693 7E3CBF57D127E6A6C4FD252662C1ADC0 /* YYImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImage.h; path = YYKit/Image/YYImage.h; sourceTree = "<group>"; }; 660 7E3CBF57D127E6A6C4FD252662C1ADC0 /* YYImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImage.h; path = YYKit/Image/YYImage.h; sourceTree = "<group>"; };
694 - 7EA2BCD717BF8B6108E49F1344996DCF /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = "<group>"; };  
695 7F0147BF35758A94C20B1F24F24622BB /* NSNumber+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+YYAdd.h"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.h"; sourceTree = "<group>"; }; 661 7F0147BF35758A94C20B1F24F24622BB /* NSNumber+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+YYAdd.h"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.h"; sourceTree = "<group>"; };
696 7F0A032626FFA7C226DF55204CF32C5A /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; }; 662 7F0A032626FFA7C226DF55204CF32C5A /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; };
697 - 7F204DC3ADE5CAA2617773E3A9EFDDBB /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/Core/UIImageView+WebCache.m"; sourceTree = "<group>"; };  
698 80A4A26F23AC2E0F4F5EBC0F4B53543D /* YBIBDataMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDataMediator.h; sourceTree = "<group>"; }; 663 80A4A26F23AC2E0F4F5EBC0F4B53543D /* YBIBDataMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBDataMediator.h; sourceTree = "<group>"; };
  664 + 81C7DA27208415129BC75A3AE0EC610D /* UIImage+Transform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Transform.m"; path = "SDWebImage/Core/UIImage+Transform.m"; sourceTree = "<group>"; };
699 826A0D9FB100D729C86AB5FF081F6521 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; 665 826A0D9FB100D729C86AB5FF081F6521 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; };
700 - 82CFF2AD22CF5568454DF140CCC1FBC4 /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/Core/UIImage+MultiFormat.m"; sourceTree = "<group>"; }; 666 + 82DA1AE31B883B0A558F1A7C451C5411 /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = "<group>"; };
  667 + 843DE7A9D5751B6D1E4B542142E88BE5 /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = "<group>"; };
701 8475110C42C3E42DC61F264C6BE773D6 /* YYFileHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFileHash.m; path = YYKit/Utility/YYFileHash.m; sourceTree = "<group>"; }; 668 8475110C42C3E42DC61F264C6BE773D6 /* YYFileHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYFileHash.m; path = YYKit/Utility/YYFileHash.m; sourceTree = "<group>"; };
702 849AFCF98DA4C75651F5D475A19348D0 /* YBIBImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageCell.m; sourceTree = "<group>"; }; 669 849AFCF98DA4C75651F5D475A19348D0 /* YBIBImageCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageCell.m; sourceTree = "<group>"; };
  670 + 85323CE74E87D9048ABFE6CB1D80BCB5 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = "<group>"; };
703 854385CF82D745F34597998325666C1D /* YYTextDebugOption.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextDebugOption.h; path = YYKit/Text/Component/YYTextDebugOption.h; sourceTree = "<group>"; }; 671 854385CF82D745F34597998325666C1D /* YYTextDebugOption.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextDebugOption.h; path = YYKit/Text/Component/YYTextDebugOption.h; sourceTree = "<group>"; };
704 - 8582059F08F05B024B1E63DB97E6FC3D /* SDImageIOAnimatedCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoderInternal.h; path = SDWebImage/Private/SDImageIOAnimatedCoderInternal.h; sourceTree = "<group>"; };  
705 - 8811346772E1C5599090A46F4A2D8681 /* NSBezierPath+SDRoundedCorners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+SDRoundedCorners.h"; path = "SDWebImage/Private/NSBezierPath+SDRoundedCorners.h"; sourceTree = "<group>"; };  
706 - 885401F9AE5B59CB193871CFBB1551CC /* UIImage+ExtendedCacheData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ExtendedCacheData.h"; path = "SDWebImage/Core/UIImage+ExtendedCacheData.h"; sourceTree = "<group>"; }; 672 + 880ED7B5A8CB58EE4EE46F97AAFC7934 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = "<group>"; };
707 88B3D662CF91D27FFEF32389911E85D0 /* UIImage+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYAdd.m"; path = "YYKit/Base/UIKit/UIImage+YYAdd.m"; sourceTree = "<group>"; }; 673 88B3D662CF91D27FFEF32389911E85D0 /* UIImage+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+YYAdd.m"; path = "YYKit/Base/UIKit/UIImage+YYAdd.m"; sourceTree = "<group>"; };
  674 + 88B758940E94222028625182D6DD5C48 /* NSButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSButton+WebCache.m"; path = "SDWebImage/Core/NSButton+WebCache.m"; sourceTree = "<group>"; };
708 88CA615592156E78420567B5D69F5B66 /* YYTextMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextMagnifier.h; path = YYKit/Text/Component/YYTextMagnifier.h; sourceTree = "<group>"; }; 675 88CA615592156E78420567B5D69F5B66 /* YYTextMagnifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextMagnifier.h; path = YYKit/Text/Component/YYTextMagnifier.h; sourceTree = "<group>"; };
709 89E1C94E51AFCA8ADEB14A14D7E5C910 /* YYTextRunDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRunDelegate.h; path = YYKit/Text/String/YYTextRunDelegate.h; sourceTree = "<group>"; }; 676 89E1C94E51AFCA8ADEB14A14D7E5C910 /* YYTextRunDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextRunDelegate.h; path = YYKit/Text/String/YYTextRunDelegate.h; sourceTree = "<group>"; };
710 8B249154A723FBC9D15D68C5DBE38A9D /* YBImageBrowser_DSCnliveShop.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = YBImageBrowser_DSCnliveShop.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 677 8B249154A723FBC9D15D68C5DBE38A9D /* YBImageBrowser_DSCnliveShop.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = YBImageBrowser_DSCnliveShop.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
711 8B4FF6780DBBE60AA8EAACC09BD33F72 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h"; sourceTree = "<group>"; }; 678 8B4FF6780DBBE60AA8EAACC09BD33F72 /* Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-umbrella.h"; sourceTree = "<group>"; };
712 - 8D17D294A9F7DCF9895D5A3337D8B886 /* SDDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDiskCache.h; path = SDWebImage/Core/SDDiskCache.h; sourceTree = "<group>"; }; 679 + 8B5C5257F6B18F69C086B439A25052BD /* SDWebImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SDWebImage.release.xcconfig; sourceTree = "<group>"; };
  680 + 8C0EBBBE53B935FF0453555166C8BD82 /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = "<group>"; };
  681 + 8D082DCD13F9572880B69B6E5DBA621E /* UIColor+HexString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIColor+HexString.m"; path = "SDWebImage/Private/UIColor+HexString.m"; sourceTree = "<group>"; };
  682 + 8D8872339E7C6C556DCFC2B144D97747 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = "<group>"; };
  683 + 8DE00CB7B46BD9384E27CFF44A22F3D6 /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = "<group>"; };
713 8DF359196C08E19807F14F0B35AC0E0C /* YBIBVideoData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoData.m; sourceTree = "<group>"; }; 684 8DF359196C08E19807F14F0B35AC0E0C /* YBIBVideoData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoData.m; sourceTree = "<group>"; };
714 8E1DF05D31C52BDD36D3C352B6D38143 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; 685 8E1DF05D31C52BDD36D3C352B6D38143 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; };
715 - 8EADB1874F009D5810228B521E808F8C /* SDAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageView.m; path = SDWebImage/Core/SDAnimatedImageView.m; sourceTree = "<group>"; };  
716 - 8F0B0EB007B67E5D110E4AA7E75CC5E8 /* SDWebImageDownloaderDecryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderDecryptor.h; path = SDWebImage/Core/SDWebImageDownloaderDecryptor.h; sourceTree = "<group>"; };  
717 - 8F25D99C7ED5F7ECE058950E756B815B /* SDFileAttributeHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDFileAttributeHelper.h; path = SDWebImage/Private/SDFileAttributeHelper.h; sourceTree = "<group>"; };  
718 90A4B22BA3CB13452A0C80DA86A84A42 /* YYCGUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCGUtilities.h; path = YYKit/Base/Quartz/YYCGUtilities.h; sourceTree = "<group>"; }; 686 90A4B22BA3CB13452A0C80DA86A84A42 /* YYCGUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYCGUtilities.h; path = YYKit/Base/Quartz/YYCGUtilities.h; sourceTree = "<group>"; };
719 9126743F263F9F3BED4DDDB5EFF3F2C8 /* YYTextArchiver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextArchiver.h; path = YYKit/Text/String/YYTextArchiver.h; sourceTree = "<group>"; }; 687 9126743F263F9F3BED4DDDB5EFF3F2C8 /* YYTextArchiver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextArchiver.h; path = YYKit/Text/String/YYTextArchiver.h; sourceTree = "<group>"; };
720 91553D071AF4EB06E69E3698FC4BBB17 /* YYKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYKit-prefix.pch"; sourceTree = "<group>"; }; 688 91553D071AF4EB06E69E3698FC4BBB17 /* YYKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYKit-prefix.pch"; sourceTree = "<group>"; };
721 - 91C17D860CA95052284F7C9198001DC9 /* SDImageLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoader.h; path = SDWebImage/Core/SDImageLoader.h; sourceTree = "<group>"; };  
722 - 92D743407EFB5C298F8E9856F618DE87 /* SDWebImageCacheKeyFilter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheKeyFilter.m; path = SDWebImage/Core/SDWebImageCacheKeyFilter.m; sourceTree = "<group>"; }; 689 + 9190FDE4BAFCFE9EEEC32C362D54FC14 /* SDWebImage.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SDWebImage.modulemap; sourceTree = "<group>"; };
  690 + 92986682144C6A680D1688CC72DB03EB /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/Core/SDImageCache.h; sourceTree = "<group>"; };
723 9387B514E9488C1E4C98357D42D4112E /* NSBundle+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+YYAdd.m"; path = "YYKit/Base/Foundation/NSBundle+YYAdd.m"; sourceTree = "<group>"; }; 691 9387B514E9488C1E4C98357D42D4112E /* NSBundle+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+YYAdd.m"; path = "YYKit/Base/Foundation/NSBundle+YYAdd.m"; sourceTree = "<group>"; };
724 9505B72CDB9E287780696B552708241D /* MKAnnotationView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+YYWebImage.m"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.m"; sourceTree = "<group>"; }; 692 9505B72CDB9E287780696B552708241D /* MKAnnotationView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+YYWebImage.m"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.m"; sourceTree = "<group>"; };
  693 + 95D767BEAA3A22D8C4B4F881F593EA55 /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = "<group>"; };
725 95F7B5AB059394D73D87262D3556EB78 /* YYDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDiskCache.m; path = YYKit/Cache/YYDiskCache.m; sourceTree = "<group>"; }; 694 95F7B5AB059394D73D87262D3556EB78 /* YYDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDiskCache.m; path = YYKit/Cache/YYDiskCache.m; sourceTree = "<group>"; };
726 96371E9C734320A546704E45E02ED3DE /* YBIBTopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBTopView.m; sourceTree = "<group>"; }; 695 96371E9C734320A546704E45E02ED3DE /* YBIBTopView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBTopView.m; sourceTree = "<group>"; };
727 - 968801418C5808212099C7AAECFD942F /* SDWebImageDownloaderResponseModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderResponseModifier.h; path = SDWebImage/Core/SDWebImageDownloaderResponseModifier.h; sourceTree = "<group>"; };  
728 96B1B4E18C7313B870A3AECA294EED03 /* NSTimer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTimer+YYAdd.m"; path = "YYKit/Base/Foundation/NSTimer+YYAdd.m"; sourceTree = "<group>"; }; 696 96B1B4E18C7313B870A3AECA294EED03 /* NSTimer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTimer+YYAdd.m"; path = "YYKit/Base/Foundation/NSTimer+YYAdd.m"; sourceTree = "<group>"; };
729 97A38E03511200872A6CE102D312DA97 /* YBIBImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageCache.m; sourceTree = "<group>"; }; 697 97A38E03511200872A6CE102D312DA97 /* YBIBImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageCache.m; sourceTree = "<group>"; };
730 98AD2B257D836F916F990B6EA6B2E153 /* YBIBImageData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageData.m; sourceTree = "<group>"; }; 698 98AD2B257D836F916F990B6EA6B2E153 /* YBIBImageData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBImageData.m; sourceTree = "<group>"; };
731 - 9915D39521761F821273ED4AD94F462B /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = "<group>"; };  
732 - 9998D272F6C21B92ECDBCC87B232F260 /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/Core/SDWebImageDownloaderOperation.m; sourceTree = "<group>"; }; 699 + 994DDB7514B65007DB23743EE9419955 /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = "<group>"; };
733 99C3520C09D1B40E7E268FF0D9C55D3A /* NSAttributedString+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+YYText.m"; path = "YYKit/Text/String/NSAttributedString+YYText.m"; sourceTree = "<group>"; }; 700 99C3520C09D1B40E7E268FF0D9C55D3A /* NSAttributedString+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+YYText.m"; path = "YYKit/Text/String/NSAttributedString+YYText.m"; sourceTree = "<group>"; };
  701 + 9A2C5A33CC842DF0109E16A40FED6D58 /* SDWebImageOptionsProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOptionsProcessor.m; path = SDWebImage/Core/SDWebImageOptionsProcessor.m; sourceTree = "<group>"; };
734 9AD92986443124E1DCE997385B496FB7 /* YBIBIconManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBIconManager.m; sourceTree = "<group>"; }; 702 9AD92986443124E1DCE997385B496FB7 /* YBIBIconManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBIconManager.m; sourceTree = "<group>"; };
735 9AF2E5796402740EB5340B609872DBEA /* YYMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYMemoryCache.h; path = YYKit/Cache/YYMemoryCache.h; sourceTree = "<group>"; }; 703 9AF2E5796402740EB5340B609872DBEA /* YYMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYMemoryCache.h; path = YYKit/Cache/YYMemoryCache.h; sourceTree = "<group>"; };
736 - 9B17144987DDC3673503BAA63081322E /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/Core/UIView+WebCacheOperation.h"; sourceTree = "<group>"; };  
737 - 9B374325A4827DE6AA8D86E8A4CA0C0E /* SDAnimatedImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SDAnimatedImageView+WebCache.h"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.h"; sourceTree = "<group>"; }; 704 + 9B69A0F6649EAEED316A983843ED5614 /* SDWebImageDownloaderConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderConfig.m; path = SDWebImage/Core/SDWebImageDownloaderConfig.m; sourceTree = "<group>"; };
738 9B794942CBB5B6C0D1CF9F241EB18B3C /* YBIBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBUtilities.m; sourceTree = "<group>"; }; 705 9B794942CBB5B6C0D1CF9F241EB18B3C /* YBIBUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBUtilities.m; sourceTree = "<group>"; };
739 9BB872492D04CC4C2B83ACB1537BCB51 /* YYTextSelectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextSelectionView.h; path = YYKit/Text/Component/YYTextSelectionView.h; sourceTree = "<group>"; }; 706 9BB872492D04CC4C2B83ACB1537BCB51 /* YYTextSelectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextSelectionView.h; path = YYKit/Text/Component/YYTextSelectionView.h; sourceTree = "<group>"; };
740 9D38FB225790DDA600C42DF52D9CC17F /* NSObject+YYAddForARC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForARC.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.m"; sourceTree = "<group>"; }; 707 9D38FB225790DDA600C42DF52D9CC17F /* NSObject+YYAddForARC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForARC.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.m"; sourceTree = "<group>"; };
  708 + 9D4F696743A974B8507BEF6FB323BB62 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/Core/UIImage+GIF.m"; sourceTree = "<group>"; };
741 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 709 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
742 9DBD9F3341AE38C875BBD42C62516B07 /* YBIBVideoActionBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoActionBar.m; sourceTree = "<group>"; }; 710 9DBD9F3341AE38C875BBD42C62516B07 /* YBIBVideoActionBar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBVideoActionBar.m; sourceTree = "<group>"; };
743 - 9DD82D69E6F6CA677C0FD0DB1910BEEB /* UIColor+SDHexString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIColor+SDHexString.h"; path = "SDWebImage/Private/UIColor+SDHexString.h"; sourceTree = "<group>"; };  
744 9DE54B8C45B333743F49C490C8A51D59 /* NSDate+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+YYAdd.h"; path = "YYKit/Base/Foundation/NSDate+YYAdd.h"; sourceTree = "<group>"; }; 711 9DE54B8C45B333743F49C490C8A51D59 /* NSDate+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+YYAdd.h"; path = "YYKit/Base/Foundation/NSDate+YYAdd.h"; sourceTree = "<group>"; };
745 9E6FAD07C5929BC33D1A767B8226595D /* UIPasteboard+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIPasteboard+YYText.h"; path = "YYKit/Text/String/UIPasteboard+YYText.h"; sourceTree = "<group>"; }; 712 9E6FAD07C5929BC33D1A767B8226595D /* UIPasteboard+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIPasteboard+YYText.h"; path = "YYKit/Text/String/UIPasteboard+YYText.h"; sourceTree = "<group>"; };
746 9E718C6C13FF741C9062C0F849A452F2 /* YYTextLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLine.h; path = YYKit/Text/Component/YYTextLine.h; sourceTree = "<group>"; }; 713 9E718C6C13FF741C9062C0F849A452F2 /* YYTextLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextLine.h; path = YYKit/Text/Component/YYTextLine.h; sourceTree = "<group>"; };
@@ -752,36 +719,35 @@ @@ -752,36 +719,35 @@
752 A1341A583321F6A80299E2B2D53093F0 /* YBIBToolViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBToolViewHandler.h; sourceTree = "<group>"; }; 719 A1341A583321F6A80299E2B2D53093F0 /* YBIBToolViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBToolViewHandler.h; sourceTree = "<group>"; };
753 A177B060DEA91DB2671E9EACA4576579 /* YYTextKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextKeyboardManager.m; path = YYKit/Text/Component/YYTextKeyboardManager.m; sourceTree = "<group>"; }; 720 A177B060DEA91DB2671E9EACA4576579 /* YYTextKeyboardManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextKeyboardManager.m; path = YYKit/Text/Component/YYTextKeyboardManager.m; sourceTree = "<group>"; };
754 A182794A8F3D76711F0E02DA7FF03E94 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+YYAdd.m"; path = "YYKit/Base/UIKit/UIGestureRecognizer+YYAdd.m"; sourceTree = "<group>"; }; 721 A182794A8F3D76711F0E02DA7FF03E94 /* UIGestureRecognizer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+YYAdd.m"; path = "YYKit/Base/UIKit/UIGestureRecognizer+YYAdd.m"; sourceTree = "<group>"; };
755 - A1CF482AD1045FF137E38C654A5C5F0A /* SDImageCacheDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheDefine.h; path = SDWebImage/Core/SDImageCacheDefine.h; sourceTree = "<group>"; };  
756 A27A22E1F51A515951549616C10A4D43 /* NSDate+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+YYAdd.m"; path = "YYKit/Base/Foundation/NSDate+YYAdd.m"; sourceTree = "<group>"; }; 722 A27A22E1F51A515951549616C10A4D43 /* NSDate+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+YYAdd.m"; path = "YYKit/Base/Foundation/NSDate+YYAdd.m"; sourceTree = "<group>"; };
757 A297B0A3BB16024B6497BE64883F91E7 /* YYAsyncLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAsyncLayer.m; path = YYKit/Utility/YYAsyncLayer.m; sourceTree = "<group>"; }; 723 A297B0A3BB16024B6497BE64883F91E7 /* YYAsyncLayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAsyncLayer.m; path = YYKit/Utility/YYAsyncLayer.m; sourceTree = "<group>"; };
758 - A2B670A4915027A69D8298ABAE7832C5 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/Core/SDWebImagePrefetcher.h; sourceTree = "<group>"; }; 724 + A2EE608D10670E27D666BCB148BE76A8 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = "<group>"; };
759 A328158B7BDCD9B9A54D7D40774FCC54 /* YBIBAuxiliaryViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBAuxiliaryViewHandler.h; sourceTree = "<group>"; }; 725 A328158B7BDCD9B9A54D7D40774FCC54 /* YBIBAuxiliaryViewHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBAuxiliaryViewHandler.h; sourceTree = "<group>"; };
  726 + A3F033ABEC9F3EFAA01FDA65E76374B4 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/Core/SDWebImagePrefetcher.m; sourceTree = "<group>"; };
  727 + A4015B1017950B192730F1ABF2793542 /* SDWebImage-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SDWebImage-Info.plist"; sourceTree = "<group>"; };
760 A483F09FE887E66A6F02B7FCBE79F846 /* YBIBCellProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCellProtocol.h; sourceTree = "<group>"; }; 728 A483F09FE887E66A6F02B7FCBE79F846 /* YBIBCellProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCellProtocol.h; sourceTree = "<group>"; };
761 A57EE7627E17C473032D3846ABCB164A /* YBIBToastView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBToastView.m; sourceTree = "<group>"; }; 729 A57EE7627E17C473032D3846ABCB164A /* YBIBToastView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBToastView.m; sourceTree = "<group>"; };
762 A607C9A3CDD44ED7C4A717482C4D60A3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 730 A607C9A3CDD44ED7C4A717482C4D60A3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
763 A76D4662C854612618E547F25B4B90A5 /* _YYWebImageSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _YYWebImageSetter.h; path = YYKit/Image/Categories/_YYWebImageSetter.h; sourceTree = "<group>"; }; 731 A76D4662C854612618E547F25B4B90A5 /* _YYWebImageSetter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _YYWebImageSetter.h; path = YYKit/Image/Categories/_YYWebImageSetter.h; sourceTree = "<group>"; };
764 - A788FE41CE72DC285C7E12274B2EEA45 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = "<group>"; };  
765 - A7D134637245A1D1291AEBC7FA27654E /* NSImage+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSImage+Compatibility.h"; path = "SDWebImage/Core/NSImage+Compatibility.h"; sourceTree = "<group>"; };  
766 - A7D32E803217C60CD15496E8FBD13FDF /* SDAsyncBlockOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAsyncBlockOperation.m; path = SDWebImage/Private/SDAsyncBlockOperation.m; sourceTree = "<group>"; };  
767 A84A5680B20A545C99B07392B9AA4B21 /* UIImageView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+YYWebImage.m"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.m"; sourceTree = "<group>"; }; 732 A84A5680B20A545C99B07392B9AA4B21 /* UIImageView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+YYWebImage.m"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.m"; sourceTree = "<group>"; };
768 - A86C89F5D3FD68F631C6AAB3E9FFDB67 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = "<group>"; };  
769 A8AF070443791A87599C26E1E46E74B1 /* YBIBSheetView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBSheetView.m; sourceTree = "<group>"; }; 733 A8AF070443791A87599C26E1E46E74B1 /* YBIBSheetView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBSheetView.m; sourceTree = "<group>"; };
770 AA0DFD4E17C227B014108A94D20370E6 /* YBIBInteractionProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBInteractionProfile.m; sourceTree = "<group>"; }; 734 AA0DFD4E17C227B014108A94D20370E6 /* YBIBInteractionProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBInteractionProfile.m; sourceTree = "<group>"; };
  735 + AAF8FE9BD2DF30E81C73D0170BA7C814 /* SDImageGraphics.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGraphics.h; path = SDWebImage/Core/SDImageGraphics.h; sourceTree = "<group>"; };
771 AB96F3B4BB148DAF41FDE86DF14036F4 /* Pods-YBImageBrowser_DSCnliveShop_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-YBImageBrowser_DSCnliveShop_Example-frameworks.sh"; sourceTree = "<group>"; }; 736 AB96F3B4BB148DAF41FDE86DF14036F4 /* Pods-YBImageBrowser_DSCnliveShop_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-YBImageBrowser_DSCnliveShop_Example-frameworks.sh"; sourceTree = "<group>"; };
772 AC5675312A245FA26DAC5D3DA60C6060 /* YYKitMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKitMacro.h; path = YYKit/Base/YYKitMacro.h; sourceTree = "<group>"; }; 737 AC5675312A245FA26DAC5D3DA60C6060 /* YYKitMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKitMacro.h; path = YYKit/Base/YYKitMacro.h; sourceTree = "<group>"; };
773 ACB2C18C7F7569D6D85619691655DB76 /* YBIBPhotoAlbumManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBPhotoAlbumManager.h; sourceTree = "<group>"; }; 738 ACB2C18C7F7569D6D85619691655DB76 /* YBIBPhotoAlbumManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBPhotoAlbumManager.h; sourceTree = "<group>"; };
774 ACD89195E78715E8E03598ED048B1DB6 /* YBIBVideoTopBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoTopBar.h; sourceTree = "<group>"; }; 739 ACD89195E78715E8E03598ED048B1DB6 /* YBIBVideoTopBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoTopBar.h; sourceTree = "<group>"; };
775 ACDDD031AB39EE10A73CBCA382968C97 /* NSDictionary+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YYAdd.h"; path = "YYKit/Base/Foundation/NSDictionary+YYAdd.h"; sourceTree = "<group>"; }; 740 ACDDD031AB39EE10A73CBCA382968C97 /* NSDictionary+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YYAdd.h"; path = "YYKit/Base/Foundation/NSDictionary+YYAdd.h"; sourceTree = "<group>"; };
  741 + ACDF74FCCC69765D4B60B3DBEC369C3D /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = "<group>"; };
  742 + AD998B4EBF0CD700BD542833326015DB /* SDWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImage.h; path = WebImage/SDWebImage.h; sourceTree = "<group>"; };
  743 + AD9AD3087AA0C54D99784B1E96B8F385 /* SDWebImageIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageIndicator.h; path = SDWebImage/Core/SDWebImageIndicator.h; sourceTree = "<group>"; };
776 ADE583D4B2310B6AB0833BF354A6DC60 /* YBIBVideoActionBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoActionBar.h; sourceTree = "<group>"; }; 744 ADE583D4B2310B6AB0833BF354A6DC60 /* YBIBVideoActionBar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoActionBar.h; sourceTree = "<group>"; };
777 AF18321586C240857382009824EBDB64 /* UIBezierPath+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBezierPath+YYAdd.h"; path = "YYKit/Base/UIKit/UIBezierPath+YYAdd.h"; sourceTree = "<group>"; }; 745 AF18321586C240857382009824EBDB64 /* UIBezierPath+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBezierPath+YYAdd.h"; path = "YYKit/Base/UIKit/UIBezierPath+YYAdd.h"; sourceTree = "<group>"; };
778 AF2571FC04AEBB0049E5DF97CA8CB9F1 /* NSAttributedString+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+YYText.h"; path = "YYKit/Text/String/NSAttributedString+YYText.h"; sourceTree = "<group>"; }; 746 AF2571FC04AEBB0049E5DF97CA8CB9F1 /* NSAttributedString+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+YYText.h"; path = "YYKit/Text/String/NSAttributedString+YYText.h"; sourceTree = "<group>"; };
779 AF275D767348041345B5F9C14D9D9CA0 /* YYTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextView.h; path = YYKit/Text/YYTextView.h; sourceTree = "<group>"; }; 747 AF275D767348041345B5F9C14D9D9CA0 /* YYTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextView.h; path = YYKit/Text/YYTextView.h; sourceTree = "<group>"; };
780 - AF3424AF58293B7AECCBA5ADAE1E90EB /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = "<group>"; };  
781 AFB40C28BD8BD37F15B50CB7E6A20928 /* YBIBOperateBrowserProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBOperateBrowserProtocol.h; sourceTree = "<group>"; }; 748 AFB40C28BD8BD37F15B50CB7E6A20928 /* YBIBOperateBrowserProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBOperateBrowserProtocol.h; sourceTree = "<group>"; };
782 AFF0F50B5FE26ED59651D7C8D462D48E /* YBIBDataMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBDataMediator.m; sourceTree = "<group>"; }; 749 AFF0F50B5FE26ED59651D7C8D462D48E /* YBIBDataMediator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBDataMediator.m; sourceTree = "<group>"; };
783 B0715021BC19551B9A5D5CB2408E7E2B /* YYWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageOperation.m; path = YYKit/Image/YYWebImageOperation.m; sourceTree = "<group>"; }; 750 B0715021BC19551B9A5D5CB2408E7E2B /* YYWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageOperation.m; path = YYKit/Image/YYWebImageOperation.m; sourceTree = "<group>"; };
784 - B083F58677FB62CBAA120E34B5932133 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/Core/UIImageView+WebCache.h"; sourceTree = "<group>"; };  
785 B0B214D775196BA7CA8E17E53048A493 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage.framework; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 751 B0B214D775196BA7CA8E17E53048A493 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SDWebImage.framework; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
786 B1A650BD7991FDA4D59B763DC0B897B5 /* NSObject+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAdd.h"; path = "YYKit/Base/Foundation/NSObject+YYAdd.h"; sourceTree = "<group>"; }; 752 B1A650BD7991FDA4D59B763DC0B897B5 /* NSObject+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAdd.h"; path = "YYKit/Base/Foundation/NSObject+YYAdd.h"; sourceTree = "<group>"; };
787 B1F78325C1CF3117C990E0DBB1443AC4 /* YYTextRunDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRunDelegate.m; path = YYKit/Text/String/YYTextRunDelegate.m; sourceTree = "<group>"; }; 753 B1F78325C1CF3117C990E0DBB1443AC4 /* YYTextRunDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextRunDelegate.m; path = YYKit/Text/String/YYTextRunDelegate.m; sourceTree = "<group>"; };
@@ -794,145 +760,139 @@ @@ -794,145 +760,139 @@
794 B4A1D7FB30E0B1322F08017865D3AED6 /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+YYAdd.h"; path = "YYKit/Base/UIKit/UIGestureRecognizer+YYAdd.h"; sourceTree = "<group>"; }; 760 B4A1D7FB30E0B1322F08017865D3AED6 /* UIGestureRecognizer+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+YYAdd.h"; path = "YYKit/Base/UIKit/UIGestureRecognizer+YYAdd.h"; sourceTree = "<group>"; };
795 B5756A1321B21D96C7A1AE0F5C4285AB /* YYKVStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKVStorage.m; path = YYKit/Cache/YYKVStorage.m; sourceTree = "<group>"; }; 761 B5756A1321B21D96C7A1AE0F5C4285AB /* YYKVStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKVStorage.m; path = YYKit/Cache/YYKVStorage.m; sourceTree = "<group>"; };
796 B5AA17CCA3C4553252CF80AEF70404A8 /* YYTextUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextUtilities.m; path = YYKit/Text/String/YYTextUtilities.m; sourceTree = "<group>"; }; 762 B5AA17CCA3C4553252CF80AEF70404A8 /* YYTextUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextUtilities.m; path = YYKit/Text/String/YYTextUtilities.m; sourceTree = "<group>"; };
  763 + B5F772E2006AB9FCF216A22126D6D46F /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = "<group>"; };
797 B63F966DDF9161A1C29525E49D01A94F /* NSData+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+YYAdd.m"; path = "YYKit/Base/Foundation/NSData+YYAdd.m"; sourceTree = "<group>"; }; 764 B63F966DDF9161A1C29525E49D01A94F /* NSData+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+YYAdd.m"; path = "YYKit/Base/Foundation/NSData+YYAdd.m"; sourceTree = "<group>"; };
798 B664849B9E38756422D4E0F139369652 /* UIScreen+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScreen+YYAdd.m"; path = "YYKit/Base/UIKit/UIScreen+YYAdd.m"; sourceTree = "<group>"; }; 765 B664849B9E38756422D4E0F139369652 /* UIScreen+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScreen+YYAdd.m"; path = "YYKit/Base/UIKit/UIScreen+YYAdd.m"; sourceTree = "<group>"; };
799 B693FD0CA179F7A03CC3787C32366CA7 /* YBIBCopywriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCopywriter.h; sourceTree = "<group>"; }; 766 B693FD0CA179F7A03CC3787C32366CA7 /* YBIBCopywriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCopywriter.h; sourceTree = "<group>"; };
800 B70A20C0814370A0A1C72AE2E522CAEB /* UIBarButtonItem+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+YYAdd.m"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.m"; sourceTree = "<group>"; }; 767 B70A20C0814370A0A1C72AE2E522CAEB /* UIBarButtonItem+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarButtonItem+YYAdd.m"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.m"; sourceTree = "<group>"; };
801 - B75EE1C0C625093DB3961800DCB992E6 /* SDWebImageDownloaderRequestModifier.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderRequestModifier.m; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.m; sourceTree = "<group>"; };  
802 B7C9B42ACA0B5782A356C5AE7A908B3F /* YBIBGetBaseInfoProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBGetBaseInfoProtocol.h; sourceTree = "<group>"; }; 768 B7C9B42ACA0B5782A356C5AE7A908B3F /* YBIBGetBaseInfoProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBGetBaseInfoProtocol.h; sourceTree = "<group>"; };
  769 + B836409E7407CD373408BBEE6FB78A56 /* SDImageAssetManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAssetManager.h; path = SDWebImage/Private/SDImageAssetManager.h; sourceTree = "<group>"; };
  770 + B93B5CB4F97B4C63233C9781D9074385 /* SDWebImageError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageError.h; path = SDWebImage/Core/SDWebImageError.h; sourceTree = "<group>"; };
803 B9AB8CA329AC9F81339A2A1B4F0266FE /* YYFileHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFileHash.h; path = YYKit/Utility/YYFileHash.h; sourceTree = "<group>"; }; 771 B9AB8CA329AC9F81339A2A1B4F0266FE /* YYFileHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYFileHash.h; path = YYKit/Utility/YYFileHash.h; sourceTree = "<group>"; };
804 B9C280A5938040751695347877F4D8C2 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSpriteSheetImage.m; path = YYKit/Image/YYSpriteSheetImage.m; sourceTree = "<group>"; }; 772 B9C280A5938040751695347877F4D8C2 /* YYSpriteSheetImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYSpriteSheetImage.m; path = YYKit/Image/YYSpriteSheetImage.m; sourceTree = "<group>"; };
805 B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; 773 B9EF0789AEFDBB03D69E8BF132003277 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; };
806 BAC4F1096AC0661BCC97A1690D41356F /* YYAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAnimatedImageView.m; path = YYKit/Image/YYAnimatedImageView.m; sourceTree = "<group>"; }; 774 BAC4F1096AC0661BCC97A1690D41356F /* YYAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYAnimatedImageView.m; path = YYKit/Image/YYAnimatedImageView.m; sourceTree = "<group>"; };
807 BB6D4086660DB0E2BA9271C5D4780106 /* YBIBToastView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBToastView.h; sourceTree = "<group>"; }; 775 BB6D4086660DB0E2BA9271C5D4780106 /* YBIBToastView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBToastView.h; sourceTree = "<group>"; };
  776 + BBC835DD376D230B30079993F2F5CDAA /* SDWebImageDefine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDefine.h; path = SDWebImage/Core/SDWebImageDefine.h; sourceTree = "<group>"; };
808 BC5FD9E63BBBE388DFDB5D32A946420D /* NSParagraphStyle+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSParagraphStyle+YYText.h"; path = "YYKit/Text/String/NSParagraphStyle+YYText.h"; sourceTree = "<group>"; }; 777 BC5FD9E63BBBE388DFDB5D32A946420D /* NSParagraphStyle+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSParagraphStyle+YYText.h"; path = "YYKit/Text/String/NSParagraphStyle+YYText.h"; sourceTree = "<group>"; };
809 BCBF70C32E733B22D48AF84D60FF7B02 /* YYWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageOperation.h; path = YYKit/Image/YYWebImageOperation.h; sourceTree = "<group>"; }; 778 BCBF70C32E733B22D48AF84D60FF7B02 /* YYWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWebImageOperation.h; path = YYKit/Image/YYWebImageOperation.h; sourceTree = "<group>"; };
810 - BE3ECDB29BE68019FD7DE942E2F58BD0 /* SDWebImageDownloaderConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderConfig.h; path = SDWebImage/Core/SDWebImageDownloaderConfig.h; sourceTree = "<group>"; };  
811 BE4A801C5A9481E70AE53035D5B98760 /* NSKeyedUnarchiver+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSKeyedUnarchiver+YYAdd.h"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.h"; sourceTree = "<group>"; }; 779 BE4A801C5A9481E70AE53035D5B98760 /* NSKeyedUnarchiver+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSKeyedUnarchiver+YYAdd.h"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.h"; sourceTree = "<group>"; };
  780 + BF2240205CFBA63D171F27ED059DA17F /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = "<group>"; };
  781 + C090D5ECCFD39D2D4DF00BFB1D9DAB81 /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = "<group>"; };
  782 + C0F853EDBA5EE0AFD5FF80DF4E069774 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/Core/SDWebImageManager.m; sourceTree = "<group>"; };
812 C183149AE26EC946A2F3DEA358713217 /* YYLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYLabel.h; path = YYKit/Text/YYLabel.h; sourceTree = "<group>"; }; 783 C183149AE26EC946A2F3DEA358713217 /* YYLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYLabel.h; path = YYKit/Text/YYLabel.h; sourceTree = "<group>"; };
813 - C1B3FCC15992E25641767F7CD50BAA99 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = "<group>"; };  
814 - C263B2AFBE7F6297AC0A2DD306AE5B6A /* SDImageHEICCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoderInternal.h; path = SDWebImage/Private/SDImageHEICCoderInternal.h; sourceTree = "<group>"; };  
815 C2C48205DC5A7E61206B83FBA6C16A03 /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 784 C2C48205DC5A7E61206B83FBA6C16A03 /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  785 + C2DE3B8DDA43BF244A83FA3A8E49B9C4 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/Core/SDWebImageDownloader.m; sourceTree = "<group>"; };
816 C33607D6BC000651FEC30D2EED376D88 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 786 C33607D6BC000651FEC30D2EED376D88 /* SDWebImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImage.framework; sourceTree = BUILT_PRODUCTS_DIR; };
817 - C36986E68072E6D37FC44159464E6E63 /* SDDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDDiskCache.m; path = SDWebImage/Core/SDDiskCache.m; sourceTree = "<group>"; }; 787 + C343BEA71DA4406F27A27215550DB0CA /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = "<group>"; };
818 C38664F785477D7E2523617102E1EDC4 /* YBImageBrowser_DSCnliveShop.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YBImageBrowser_DSCnliveShop.modulemap; sourceTree = "<group>"; }; 788 C38664F785477D7E2523617102E1EDC4 /* YBImageBrowser_DSCnliveShop.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YBImageBrowser_DSCnliveShop.modulemap; sourceTree = "<group>"; };
819 - C43DE0B9900A2DBDABA15312032D955B /* SDImageFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageFrame.h; path = SDWebImage/Core/SDImageFrame.h; sourceTree = "<group>"; };  
820 C44903C29949935DD57FD35B5C9BF35F /* YYKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYKit.release.xcconfig; sourceTree = "<group>"; }; 789 C44903C29949935DD57FD35B5C9BF35F /* YYKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYKit.release.xcconfig; sourceTree = "<group>"; };
821 C468387A3C29B551DAA6C6AF5145ACB1 /* Pods-YBImageBrowser_DSCnliveShop_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.debug.xcconfig"; sourceTree = "<group>"; }; 790 C468387A3C29B551DAA6C6AF5145ACB1 /* Pods-YBImageBrowser_DSCnliveShop_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.debug.xcconfig"; sourceTree = "<group>"; };
822 C53CAE703785CC63612BF51D647BF00A /* Pods_YBImageBrowser_DSCnliveShop_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_YBImageBrowser_DSCnliveShop_Example.framework; path = "Pods-YBImageBrowser_DSCnliveShop_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 791 C53CAE703785CC63612BF51D647BF00A /* Pods_YBImageBrowser_DSCnliveShop_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_YBImageBrowser_DSCnliveShop_Example.framework; path = "Pods-YBImageBrowser_DSCnliveShop_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
823 - C54648ED166C9850805DF18B9BF1A305 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = "<group>"; };  
824 - C550536A6B0FFCC49930C911A1A845CA /* SDWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageOperation.m; path = SDWebImage/Core/SDWebImageOperation.m; sourceTree = "<group>"; }; 792 + C54E545CC107D12C2F5AA2887BAF107E /* SDImageIOAnimatedCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageIOAnimatedCoder.h; path = SDWebImage/Core/SDImageIOAnimatedCoder.h; sourceTree = "<group>"; };
825 C5ECB9A46117BBECE7ED798130B798AA /* UIPasteboard+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIPasteboard+YYText.m"; path = "YYKit/Text/String/UIPasteboard+YYText.m"; sourceTree = "<group>"; }; 793 C5ECB9A46117BBECE7ED798130B798AA /* UIPasteboard+YYText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIPasteboard+YYText.m"; path = "YYKit/Text/String/UIPasteboard+YYText.m"; sourceTree = "<group>"; };
826 - C6064257443573B6B4428384FE55B429 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.h"; sourceTree = "<group>"; };  
827 C67FA1CF5455B750586F3E50B4AEE6B5 /* YYCGUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCGUtilities.m; path = YYKit/Base/Quartz/YYCGUtilities.m; sourceTree = "<group>"; }; 794 C67FA1CF5455B750586F3E50B4AEE6B5 /* YYCGUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYCGUtilities.m; path = YYKit/Base/Quartz/YYCGUtilities.m; sourceTree = "<group>"; };
828 C687ECF69184AC5484EFA0598E66B804 /* Pods-YBImageBrowser_DSCnliveShop_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-frameworks.sh"; sourceTree = "<group>"; }; 795 C687ECF69184AC5484EFA0598E66B804 /* Pods-YBImageBrowser_DSCnliveShop_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-frameworks.sh"; sourceTree = "<group>"; };
829 C6E9A2826ED6D4338904F22C672B4751 /* Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig"; sourceTree = "<group>"; }; 796 C6E9A2826ED6D4338904F22C672B4751 /* Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig"; sourceTree = "<group>"; };
830 C705108BAA5E0F79A36A255F671FD73C /* YBImageBrowser_DSCnliveShop-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YBImageBrowser_DSCnliveShop-dummy.m"; sourceTree = "<group>"; }; 797 C705108BAA5E0F79A36A255F671FD73C /* YBImageBrowser_DSCnliveShop-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YBImageBrowser_DSCnliveShop-dummy.m"; sourceTree = "<group>"; };
831 - C758F6AA3BEFD52D81A2E68FD89C92BC /* SDImageGIFCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGIFCoder.m; path = SDWebImage/Core/SDImageGIFCoder.m; sourceTree = "<group>"; };  
832 C78F1C99D55F3A5B2B595CEAAF59A086 /* Pods-YBImageBrowser_DSCnliveShop_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-Info.plist"; sourceTree = "<group>"; }; 798 C78F1C99D55F3A5B2B595CEAAF59A086 /* Pods-YBImageBrowser_DSCnliveShop_Tests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Tests-Info.plist"; sourceTree = "<group>"; };
833 C805133F6D3AF69C8994E6375F7B7155 /* YYImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCoder.h; path = YYKit/Image/YYImageCoder.h; sourceTree = "<group>"; }; 799 C805133F6D3AF69C8994E6375F7B7155 /* YYImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImageCoder.h; path = YYKit/Image/YYImageCoder.h; sourceTree = "<group>"; };
834 - C8D85332D2674E584830AC6CFE3141FE /* SDInternalMacros.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDInternalMacros.m; path = SDWebImage/Private/SDInternalMacros.m; sourceTree = "<group>"; }; 800 + C8CF816C63E5B6559556C778BE819AF4 /* UIImage+Metadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Metadata.h"; path = "SDWebImage/Core/UIImage+Metadata.h"; sourceTree = "<group>"; };
835 C8FC24C723EADE5F3C5975BE2907EB1E /* YYTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTransaction.m; path = YYKit/Utility/YYTransaction.m; sourceTree = "<group>"; }; 801 C8FC24C723EADE5F3C5975BE2907EB1E /* YYTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTransaction.m; path = YYKit/Utility/YYTransaction.m; sourceTree = "<group>"; };
836 C95F8792B9A29FF9F37927E606871D5B /* YYThreadSafeArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYThreadSafeArray.h; path = YYKit/Utility/YYThreadSafeArray.h; sourceTree = "<group>"; }; 802 C95F8792B9A29FF9F37927E606871D5B /* YYThreadSafeArray.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYThreadSafeArray.h; path = YYKit/Utility/YYThreadSafeArray.h; sourceTree = "<group>"; };
837 - C9B03AE8F74ED6BF9967696B1F29AC24 /* SDImageLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoader.m; path = SDWebImage/Core/SDImageLoader.m; sourceTree = "<group>"; };  
838 C9B5994C44BF5B2184C156762E7CE811 /* UIView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYAdd.m"; path = "YYKit/Base/UIKit/UIView+YYAdd.m"; sourceTree = "<group>"; }; 803 C9B5994C44BF5B2184C156762E7CE811 /* UIView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+YYAdd.m"; path = "YYKit/Base/UIKit/UIView+YYAdd.m"; sourceTree = "<group>"; };
  804 + CA2F973E303B162092C59FA182AC2842 /* SDAsyncBlockOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAsyncBlockOperation.h; path = SDWebImage/Private/SDAsyncBlockOperation.h; sourceTree = "<group>"; };
839 CA7D546D1F3F75461DF8423D2BF90D68 /* YBIBImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageCache.h; sourceTree = "<group>"; }; 805 CA7D546D1F3F75461DF8423D2BF90D68 /* YBIBImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageCache.h; sourceTree = "<group>"; };
840 CAF78B066BA4AA1500A5DFC15357B69A /* YYTextLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLine.m; path = YYKit/Text/Component/YYTextLine.m; sourceTree = "<group>"; }; 806 CAF78B066BA4AA1500A5DFC15357B69A /* YYTextLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLine.m; path = YYKit/Text/Component/YYTextLine.m; sourceTree = "<group>"; };
841 - CB6206FBA44F9BD5BB69EB2338D24399 /* SDAnimatedImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SDAnimatedImageView+WebCache.m"; path = "SDWebImage/Core/SDAnimatedImageView+WebCache.m"; sourceTree = "<group>"; }; 807 + CB003CB825038F390A91BFD066D5DC11 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = "<group>"; };
  808 + CB33D1B5F3A87441C78240849B1BD409 /* NSImage+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSImage+Compatibility.m"; path = "SDWebImage/Core/NSImage+Compatibility.m"; sourceTree = "<group>"; };
842 CC069742328B0F99B589CD1E88042C72 /* YBIBImageData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageData.h; sourceTree = "<group>"; }; 809 CC069742328B0F99B589CD1E88042C72 /* YBIBImageData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageData.h; sourceTree = "<group>"; };
843 - CD970A6F82F507060C225F86F7A3F410 /* SDDeviceHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDDeviceHelper.h; path = SDWebImage/Private/SDDeviceHelper.h; sourceTree = "<group>"; };  
844 - CDA24BB0F92E4A49AC0BE6BF22D67546 /* SDMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDMemoryCache.h; path = SDWebImage/Core/SDMemoryCache.h; sourceTree = "<group>"; };  
845 - CE599BD66BC1D5DBF2513D84C9CF10D2 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = "<group>"; };  
846 - CEA5120287BD232F4C4CECF7D74E0104 /* SDImageCachesManagerOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCachesManagerOperation.m; path = SDWebImage/Private/SDImageCachesManagerOperation.m; sourceTree = "<group>"; };  
847 - CF05C25EE17396B80BB50C70733D2421 /* SDImageCoderHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoderHelper.h; path = SDWebImage/Core/SDImageCoderHelper.h; sourceTree = "<group>"; };  
848 - CF9EB80B340726BF23F53617B34B3575 /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = "<group>"; };  
849 - D0DD7284FE8B0C78E070E9DA2D0C46E2 /* SDImageCodersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCodersManager.h; path = SDWebImage/Core/SDImageCodersManager.h; sourceTree = "<group>"; }; 810 + CCFF6195D3943C3B2EE93D641F705287 /* SDAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImage.h; path = SDWebImage/Core/SDAnimatedImage.h; sourceTree = "<group>"; };
  811 + CF824EAADAAA9D61882AC1E95A4FAAC5 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/Core/UIImage+MultiFormat.h"; sourceTree = "<group>"; };
  812 + D0BFF09BFCD201810684D60E49FC29B3 /* SDInternalMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDInternalMacros.h; path = SDWebImage/Private/SDInternalMacros.h; sourceTree = "<group>"; };
850 D12BADAA1C1EED1E8EFC4C3B586A68EF /* YYTextEffectWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextEffectWindow.m; path = YYKit/Text/Component/YYTextEffectWindow.m; sourceTree = "<group>"; }; 813 D12BADAA1C1EED1E8EFC4C3B586A68EF /* YYTextEffectWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextEffectWindow.m; path = YYKit/Text/Component/YYTextEffectWindow.m; sourceTree = "<group>"; };
851 - D137AC86EF60C0DD4725A67DBED5F6EC /* SDAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImage.m; path = SDWebImage/Core/SDAnimatedImage.m; sourceTree = "<group>"; };  
852 D1A59D21F9903431B185E3E4DF0AFFEF /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; 814 D1A59D21F9903431B185E3E4DF0AFFEF /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; };
853 - D1A63106E180D500BA4681CBFF159C50 /* UIImage+ForceDecode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+ForceDecode.h"; path = "SDWebImage/Core/UIImage+ForceDecode.h"; sourceTree = "<group>"; };  
854 D233F6DF8E8D5110BD7F6E76747F33D8 /* YYReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYReachability.m; path = YYKit/Utility/YYReachability.m; sourceTree = "<group>"; }; 815 D233F6DF8E8D5110BD7F6E76747F33D8 /* YYReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYReachability.m; path = YYKit/Utility/YYReachability.m; sourceTree = "<group>"; };
  816 + D25E5ABBC1DC5FB5597B7FD6AF7395A6 /* SDAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImageView.h; path = SDWebImage/Core/SDAnimatedImageView.h; sourceTree = "<group>"; };
855 D27CB4C11DD858E2346FCDB108967EE5 /* YYTextParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextParser.m; path = YYKit/Text/String/YYTextParser.m; sourceTree = "<group>"; }; 817 D27CB4C11DD858E2346FCDB108967EE5 /* YYTextParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextParser.m; path = YYKit/Text/String/YYTextParser.m; sourceTree = "<group>"; };
856 D2A8889944F3D4BE1188A99F60D3CA7A /* YYKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYKit.debug.xcconfig; sourceTree = "<group>"; }; 818 D2A8889944F3D4BE1188A99F60D3CA7A /* YYKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYKit.debug.xcconfig; sourceTree = "<group>"; };
857 - D2BF5A3EEE1A287B05D28198D9F16C76 /* SDImageFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageFrame.m; path = SDWebImage/Core/SDImageFrame.m; sourceTree = "<group>"; }; 819 + D3B294F209BE90C307D3B79D646A580E /* SDImageCacheDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheDefine.m; path = SDWebImage/Core/SDImageCacheDefine.m; sourceTree = "<group>"; };
858 D4E670F4B8312D4F2B06ADC2B636AFE4 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; }; 820 D4E670F4B8312D4F2B06ADC2B636AFE4 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; };
859 - D60E08CE2DF723239081CE2F04FA6324 /* SDWebImageOptionsProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOptionsProcessor.h; path = SDWebImage/Core/SDWebImageOptionsProcessor.h; sourceTree = "<group>"; }; 821 + D5EFE1BA58FE69FA738DCB9784D3B2E0 /* SDImageLoadersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageLoadersManager.m; path = SDWebImage/Core/SDImageLoadersManager.m; sourceTree = "<group>"; };
860 D696C9B3DB7929040B3B11E0888CE4D6 /* UIButton+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+YYWebImage.m"; path = "YYKit/Image/Categories/UIButton+YYWebImage.m"; sourceTree = "<group>"; }; 822 D696C9B3DB7929040B3B11E0888CE4D6 /* UIButton+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+YYWebImage.m"; path = "YYKit/Image/Categories/UIButton+YYWebImage.m"; sourceTree = "<group>"; };
861 D7D005AD047909BDCC633A8A2F44C3E0 /* UIFont+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+YYAdd.m"; path = "YYKit/Base/UIKit/UIFont+YYAdd.m"; sourceTree = "<group>"; }; 823 D7D005AD047909BDCC633A8A2F44C3E0 /* UIFont+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+YYAdd.m"; path = "YYKit/Base/UIKit/UIFont+YYAdd.m"; sourceTree = "<group>"; };
862 D90E67DC9CA5A5BBD19018BD64C3ED87 /* YBIBCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCollectionView.h; sourceTree = "<group>"; }; 824 D90E67DC9CA5A5BBD19018BD64C3ED87 /* YBIBCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBCollectionView.h; sourceTree = "<group>"; };
863 - D99CAD8BB03A1ED3ACC306DE0083743C /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/Core/UIImageView+HighlightedWebCache.m"; sourceTree = "<group>"; };  
864 - DA18D81BDAB5332971532C646A936989 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/Core/UIView+WebCacheOperation.m"; sourceTree = "<group>"; };  
865 DA809AC31169252E62703BD0FBD06EE5 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; 825 DA809AC31169252E62703BD0FBD06EE5 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; };
866 - DB7A93383CAC54408CD5E5B395011B2E /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = "<group>"; };  
867 - DC9B7833ED252B3A3CDA8CD870E5136B /* SDAnimatedImagePlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDAnimatedImagePlayer.h; path = SDWebImage/Core/SDAnimatedImagePlayer.h; sourceTree = "<group>"; }; 826 + DCA9751DEFA2CAEA416E397CD0197E4C /* SDMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDMemoryCache.m; path = SDWebImage/Core/SDMemoryCache.m; sourceTree = "<group>"; };
868 DD5396322ED69A5415D1CCD0B6393CA3 /* UITableView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+YYAdd.m"; path = "YYKit/Base/UIKit/UITableView+YYAdd.m"; sourceTree = "<group>"; }; 827 DD5396322ED69A5415D1CCD0B6393CA3 /* UITableView+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableView+YYAdd.m"; path = "YYKit/Base/UIKit/UITableView+YYAdd.m"; sourceTree = "<group>"; };
  828 + DD7EB188DA7D4BC587FE249FF628B51C /* UIImage+ForceDecode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+ForceDecode.m"; path = "SDWebImage/Core/UIImage+ForceDecode.m"; sourceTree = "<group>"; };
  829 + DDF0A0D18F37DBE6D852FCEA2251F1C1 /* UIImage+Transform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Transform.h"; path = "SDWebImage/Core/UIImage+Transform.h"; sourceTree = "<group>"; };
869 DE1BA937D17936A4E8CC48CCF258E498 /* YBImageBrowserDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImageBrowserDataSource.h; sourceTree = "<group>"; }; 830 DE1BA937D17936A4E8CC48CCF258E498 /* YBImageBrowserDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImageBrowserDataSource.h; sourceTree = "<group>"; };
870 DEAEE433C1A4AC2340AD30180CD833DE /* YYAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAnimatedImageView.h; path = YYKit/Image/YYAnimatedImageView.h; sourceTree = "<group>"; }; 831 DEAEE433C1A4AC2340AD30180CD833DE /* YYAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYAnimatedImageView.h; path = YYKit/Image/YYAnimatedImageView.h; sourceTree = "<group>"; };
871 - DF00E591E4B26D6D1D35456AAE90B1C1 /* SDImageCacheConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCacheConfig.h; path = SDWebImage/Core/SDImageCacheConfig.h; sourceTree = "<group>"; };  
872 DF010552264134747196B93F7030F079 /* YBIBToolViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBToolViewHandler.m; sourceTree = "<group>"; }; 832 DF010552264134747196B93F7030F079 /* YBIBToolViewHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBIBToolViewHandler.m; sourceTree = "<group>"; };
873 - DF0BE15112187DE13F59F20FD37196BF /* SDWebImageTransitionInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransitionInternal.h; path = SDWebImage/Private/SDWebImageTransitionInternal.h; sourceTree = "<group>"; }; 833 + DF6A0A2DCDCF701127D57F57D20CEE46 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = "<group>"; };
874 DFF08367FC3C8240577C21AB0C7C45C0 /* Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.plist"; sourceTree = "<group>"; }; 834 DFF08367FC3C8240577C21AB0C7C45C0 /* Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-YBImageBrowser_DSCnliveShop_Example-acknowledgements.plist"; sourceTree = "<group>"; };
  835 + DFFBF564BC41F65FF3EF9F404A3FF8A5 /* NSBezierPath+RoundedCorners.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+RoundedCorners.m"; path = "SDWebImage/Private/NSBezierPath+RoundedCorners.m"; sourceTree = "<group>"; };
  836 + E028311EA2C17015A8136F9F9A3DEEEC /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = "<group>"; };
875 E06030C0DF9E059A44DC7D324FA93760 /* NSObject+YYModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYModel.m"; path = "YYKit/Model/NSObject+YYModel.m"; sourceTree = "<group>"; }; 837 E06030C0DF9E059A44DC7D324FA93760 /* NSObject+YYModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYModel.m"; path = "YYKit/Model/NSObject+YYModel.m"; sourceTree = "<group>"; };
876 E0EC1E067A40BD358E24914526274E18 /* UITableView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+YYAdd.h"; path = "YYKit/Base/UIKit/UITableView+YYAdd.h"; sourceTree = "<group>"; }; 838 E0EC1E067A40BD358E24914526274E18 /* UITableView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+YYAdd.h"; path = "YYKit/Base/UIKit/UITableView+YYAdd.h"; sourceTree = "<group>"; };
877 E11C276295B8B9FBB66B8CFCEDD10534 /* YBIBWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBWebImageMediator.h; sourceTree = "<group>"; }; 839 E11C276295B8B9FBB66B8CFCEDD10534 /* YBIBWebImageMediator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBWebImageMediator.h; sourceTree = "<group>"; };
878 E1789ACB2E0A630C9C7419690313D4BD /* YYKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKeychain.h; path = YYKit/Utility/YYKeychain.h; sourceTree = "<group>"; }; 840 E1789ACB2E0A630C9C7419690313D4BD /* YYKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKeychain.h; path = YYKit/Utility/YYKeychain.h; sourceTree = "<group>"; };
  841 + E1824D23FFCDBDE557E8BCF4A5D1EB64 /* SDImageHEICCoderInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageHEICCoderInternal.h; path = SDWebImage/Private/SDImageHEICCoderInternal.h; sourceTree = "<group>"; };
879 E1BB297824FFFF51C70FA022B56A9D4F /* YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBImageBrowser.m; sourceTree = "<group>"; }; 842 E1BB297824FFFF51C70FA022B56A9D4F /* YBImageBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = YBImageBrowser.m; sourceTree = "<group>"; };
880 E1EF95E26F5A8BC0AD3CEC7DE8D50611 /* NSObject+YYAddForKVO.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForKVO.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.m"; sourceTree = "<group>"; }; 843 E1EF95E26F5A8BC0AD3CEC7DE8D50611 /* NSObject+YYAddForKVO.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForKVO.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.m"; sourceTree = "<group>"; };
881 - E1FACAD68445DC5C8232A29CDDE00106 /* SDImageAPNGCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageAPNGCoder.h; path = SDWebImage/Core/SDImageAPNGCoder.h; sourceTree = "<group>"; };  
882 E20C5E35E7CBCF4496931DDD69C93799 /* UIControl+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+YYAdd.m"; path = "YYKit/Base/UIKit/UIControl+YYAdd.m"; sourceTree = "<group>"; }; 844 E20C5E35E7CBCF4496931DDD69C93799 /* UIControl+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+YYAdd.m"; path = "YYKit/Base/UIKit/UIControl+YYAdd.m"; sourceTree = "<group>"; };
  845 + E2F6363B89177C5ED56B90058D1B1B9A /* SDImageGraphics.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageGraphics.m; path = SDWebImage/Core/SDImageGraphics.m; sourceTree = "<group>"; };
883 E30659E8DA748D0CF9EA5E88C15DA2DA /* YYTextInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextInput.m; path = YYKit/Text/Component/YYTextInput.m; sourceTree = "<group>"; }; 846 E30659E8DA748D0CF9EA5E88C15DA2DA /* YYTextInput.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextInput.m; path = YYKit/Text/Component/YYTextInput.m; sourceTree = "<group>"; };
884 E325DCCD357AF9DF2F7C506424659D7E /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYKit.framework; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 847 E325DCCD357AF9DF2F7C506424659D7E /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYKit.framework; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
885 E326D6F0395EE4BAE670CD855A8D0176 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; 848 E326D6F0395EE4BAE670CD855A8D0176 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
886 E467579343CF6E084F5AF44750D3B054 /* YYDispatchQueuePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDispatchQueuePool.h; path = YYKit/Utility/YYDispatchQueuePool.h; sourceTree = "<group>"; }; 849 E467579343CF6E084F5AF44750D3B054 /* YYDispatchQueuePool.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYDispatchQueuePool.h; path = YYKit/Utility/YYDispatchQueuePool.h; sourceTree = "<group>"; };
887 E515123172BB360DF3179CFE108F842C /* UIImage+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYAdd.h"; path = "YYKit/Base/UIKit/UIImage+YYAdd.h"; sourceTree = "<group>"; }; 850 E515123172BB360DF3179CFE108F842C /* UIImage+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYAdd.h"; path = "YYKit/Base/UIKit/UIImage+YYAdd.h"; sourceTree = "<group>"; };
888 - E5A710E84F3BA6FCB0CFF41E78AD5CBD /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/Core/SDWebImageDownloaderOperation.h; sourceTree = "<group>"; };  
889 E6549BAAE978C54E9943845A282B7887 /* NSObject+YYAddForARC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForARC.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.h"; sourceTree = "<group>"; }; 851 E6549BAAE978C54E9943845A282B7887 /* NSObject+YYAddForARC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForARC.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.h"; sourceTree = "<group>"; };
890 - E6B26DB6EEA41E128F36B8CCD8BA6C90 /* SDAnimatedImagePlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImagePlayer.m; path = SDWebImage/Core/SDAnimatedImagePlayer.m; sourceTree = "<group>"; }; 852 + E6AC77D76359DA3AB60BBECA32896CFA /* SDWebImageCacheSerializer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCacheSerializer.m; path = SDWebImage/Core/SDWebImageCacheSerializer.m; sourceTree = "<group>"; };
891 E7A8CFE58CA45BE0CF414ED53D7E9831 /* YYTextInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextInput.h; path = YYKit/Text/Component/YYTextInput.h; sourceTree = "<group>"; }; 853 E7A8CFE58CA45BE0CF414ED53D7E9831 /* YYTextInput.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYTextInput.h; path = YYKit/Text/Component/YYTextInput.h; sourceTree = "<group>"; };
  854 + E8864E2BCB6F0A60BF7660FD5CA61884 /* SDWebImageTransition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageTransition.h; path = SDWebImage/Core/SDWebImageTransition.h; sourceTree = "<group>"; };
892 E8D8F6D1F22DBBBCE9CEB97BF76ED5F6 /* YYMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYMemoryCache.m; path = YYKit/Cache/YYMemoryCache.m; sourceTree = "<group>"; }; 855 E8D8F6D1F22DBBBCE9CEB97BF76ED5F6 /* YYMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYMemoryCache.m; path = YYKit/Cache/YYMemoryCache.m; sourceTree = "<group>"; };
893 E904FC5D8903C2F05EA80AE4EB158849 /* YYTextDebugOption.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextDebugOption.m; path = YYKit/Text/Component/YYTextDebugOption.m; sourceTree = "<group>"; }; 856 E904FC5D8903C2F05EA80AE4EB158849 /* YYTextDebugOption.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextDebugOption.m; path = YYKit/Text/Component/YYTextDebugOption.m; sourceTree = "<group>"; };
894 - E94B7142D84F4E7AD5A126B60C5056AA /* SDImageCoderHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCoderHelper.m; path = SDWebImage/Core/SDImageCoderHelper.m; sourceTree = "<group>"; };  
895 E97D1AED9A06E626CDC89DE4248FA2DF /* UIButton+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+YYWebImage.h"; path = "YYKit/Image/Categories/UIButton+YYWebImage.h"; sourceTree = "<group>"; }; 857 E97D1AED9A06E626CDC89DE4248FA2DF /* UIButton+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+YYWebImage.h"; path = "YYKit/Image/Categories/UIButton+YYWebImage.h"; sourceTree = "<group>"; };
896 EA76762360977A0F9DF281854B915408 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = Vendor/WebP.framework; sourceTree = "<group>"; }; 858 EA76762360977A0F9DF281854B915408 /* WebP.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebP.framework; path = Vendor/WebP.framework; sourceTree = "<group>"; };
  859 + EB79E7A300B9098CE8EED7EB98A1E5AA /* SDWebImageDefine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDefine.m; path = SDWebImage/Core/SDWebImageDefine.m; sourceTree = "<group>"; };
  860 + EBAB61DD2D434A28A27FC5DFC9B7D499 /* SDImageCacheConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCacheConfig.m; path = SDWebImage/Core/SDImageCacheConfig.m; sourceTree = "<group>"; };
  861 + EBC3A38B3CF4356703DC4ABF85E1FB8C /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/Core/NSData+ImageContentType.h"; sourceTree = "<group>"; };
897 EC297FCDA53117783E423EFCF34C4C6C /* YBIBInteractionProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBInteractionProfile.h; sourceTree = "<group>"; }; 862 EC297FCDA53117783E423EFCF34C4C6C /* YBIBInteractionProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBInteractionProfile.h; sourceTree = "<group>"; };
898 - ECCFB33F5B2FAFCB9059F1EA4872AD5E /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/Core/UIButton+WebCache.h"; sourceTree = "<group>"; };  
899 ECF2A1D940AD2ABA3D907CE415109326 /* NSNotificationCenter+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+YYAdd.h"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.h"; sourceTree = "<group>"; }; 863 ECF2A1D940AD2ABA3D907CE415109326 /* NSNotificationCenter+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+YYAdd.h"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.h"; sourceTree = "<group>"; };
900 ED78F9035D62E00668B4A848571B55C4 /* YBIBVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoView.h; sourceTree = "<group>"; }; 864 ED78F9035D62E00668B4A848571B55C4 /* YBIBVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBVideoView.h; sourceTree = "<group>"; };
901 - EF282CB27CB176AE4D81EB193162E61C /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = "<group>"; }; 865 + EDCF5C73C34D7FE7CBD5AEC45E26DD16 /* SDWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWeakProxy.h; path = SDWebImage/Private/SDWeakProxy.h; sourceTree = "<group>"; };
  866 + EF4C3869889BF6E0FB48DB6D3E50C42B /* SDImageCachesManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManager.h; path = SDWebImage/Core/SDImageCachesManager.h; sourceTree = "<group>"; };
902 EF5D08601B4B637FF284E68A8EEC858C /* NSArray+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+YYAdd.h"; path = "YYKit/Base/Foundation/NSArray+YYAdd.h"; sourceTree = "<group>"; }; 867 EF5D08601B4B637FF284E68A8EEC858C /* NSArray+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+YYAdd.h"; path = "YYKit/Base/Foundation/NSArray+YYAdd.h"; sourceTree = "<group>"; };
903 - EFBE035B06C6B5FC5316B23AA385AEB7 /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/Core/NSData+ImageContentType.m"; sourceTree = "<group>"; };  
904 - EFFC73CFCA9A8BA73DF3B34FE5E9C8B0 /* UIImage+Metadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Metadata.m"; path = "SDWebImage/Core/UIImage+Metadata.m"; sourceTree = "<group>"; };  
905 F0C1D31C0ED9EAF5880440E2214DFB67 /* YBIBLoadingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBLoadingView.h; sourceTree = "<group>"; }; 868 F0C1D31C0ED9EAF5880440E2214DFB67 /* YBIBLoadingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBLoadingView.h; sourceTree = "<group>"; };
906 F170A24D4E53C3C47A8CE99795457D6A /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h"; sourceTree = "<group>"; }; 869 F170A24D4E53C3C47A8CE99795457D6A /* Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-YBImageBrowser_DSCnliveShop_Example-umbrella.h"; sourceTree = "<group>"; };
907 F223C16A87C557408148C7C83CCB705A /* YYImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImage.m; path = YYKit/Image/YYImage.m; sourceTree = "<group>"; }; 870 F223C16A87C557408148C7C83CCB705A /* YYImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYImage.m; path = YYKit/Image/YYImage.m; sourceTree = "<group>"; };
908 F23B513D9D8F0D3A6E0802706EAAE0A0 /* YYClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYClassInfo.m; path = YYKit/Model/YYClassInfo.m; sourceTree = "<group>"; }; 871 F23B513D9D8F0D3A6E0802706EAAE0A0 /* YYClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYClassInfo.m; path = YYKit/Model/YYClassInfo.m; sourceTree = "<group>"; };
909 F34CC7CBACC2F933C4B4839C7EC1F010 /* YYKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKit.h; path = YYKit/YYKit.h; sourceTree = "<group>"; }; 872 F34CC7CBACC2F933C4B4839C7EC1F010 /* YYKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKit.h; path = YYKit/YYKit.h; sourceTree = "<group>"; };
910 - F37753D5DA03467158CF8F3BFA52E460 /* SDmetamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDmetamacros.h; path = SDWebImage/Private/SDmetamacros.h; sourceTree = "<group>"; };  
911 F3DE1A955E99033B5412502804883E07 /* YYDispatchQueuePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDispatchQueuePool.m; path = YYKit/Utility/YYDispatchQueuePool.m; sourceTree = "<group>"; }; 873 F3DE1A955E99033B5412502804883E07 /* YYDispatchQueuePool.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYDispatchQueuePool.m; path = YYKit/Utility/YYDispatchQueuePool.m; sourceTree = "<group>"; };
912 - F3FA042CB9FEAE916F9354DD0FFDC410 /* SDImageCachesManagerOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCachesManagerOperation.h; path = SDWebImage/Private/SDImageCachesManagerOperation.h; sourceTree = "<group>"; };  
913 F48485AE0CAFC4B57A15BC09F76DF01F /* YBIBVideoCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBVideoCell+Internal.h"; sourceTree = "<group>"; }; 874 F48485AE0CAFC4B57A15BC09F76DF01F /* YBIBVideoCell+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBVideoCell+Internal.h"; sourceTree = "<group>"; };
914 - F4C26425407B34D7EF26491A3F6C3412 /* SDImageCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCoder.h; path = SDWebImage/Core/SDImageCoder.h; sourceTree = "<group>"; }; 875 + F4BDDDF94411952465D7BEFFCA8B5C29 /* SDImageAPNGCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageAPNGCoder.m; path = SDWebImage/Core/SDImageAPNGCoder.m; sourceTree = "<group>"; };
915 F5253D89927E6E90C258D665347D1F07 /* UIScreen+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScreen+YYAdd.h"; path = "YYKit/Base/UIKit/UIScreen+YYAdd.h"; sourceTree = "<group>"; }; 876 F5253D89927E6E90C258D665347D1F07 /* UIScreen+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScreen+YYAdd.h"; path = "YYKit/Base/UIKit/UIScreen+YYAdd.h"; sourceTree = "<group>"; };
916 F5670120F17DFEC029094ABAC2358C59 /* YBIBVideoData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBVideoData+Internal.h"; sourceTree = "<group>"; }; 877 F5670120F17DFEC029094ABAC2358C59 /* YBIBVideoData+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YBIBVideoData+Internal.h"; sourceTree = "<group>"; };
917 - F71C63A56CAAF9072729B55B779D9414 /* SDWebImageIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageIndicator.m; path = SDWebImage/Core/SDWebImageIndicator.m; sourceTree = "<group>"; }; 878 + F59687F8773BB30C3383C0C4473BA5A9 /* NSButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSButton+WebCache.h"; path = "SDWebImage/Core/NSButton+WebCache.h"; sourceTree = "<group>"; };
918 F72C19B1352F5752908C2B4982AD0FE4 /* UITextField+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+YYAdd.h"; path = "YYKit/Base/UIKit/UITextField+YYAdd.h"; sourceTree = "<group>"; }; 879 F72C19B1352F5752908C2B4982AD0FE4 /* UITextField+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITextField+YYAdd.h"; path = "YYKit/Base/UIKit/UITextField+YYAdd.h"; sourceTree = "<group>"; };
919 F73A399C03844F00743876DD304D6F5F /* YBIBContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBContainerView.h; sourceTree = "<group>"; }; 880 F73A399C03844F00743876DD304D6F5F /* YBIBContainerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBContainerView.h; sourceTree = "<group>"; };
920 - F73E603FC59F5282264218DA84C3E5B7 /* SDImageHEICCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageHEICCoder.m; path = SDWebImage/Core/SDImageHEICCoder.m; sourceTree = "<group>"; };  
921 F871C4EC920DBA02D64392716E35FB37 /* YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImageBrowser.h; sourceTree = "<group>"; }; 881 F871C4EC920DBA02D64392716E35FB37 /* YBImageBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBImageBrowser.h; sourceTree = "<group>"; };
922 F891D9C6F80528B90027D56EA36CD7DA /* UIScrollView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+YYAdd.h"; path = "YYKit/Base/UIKit/UIScrollView+YYAdd.h"; sourceTree = "<group>"; }; 882 F891D9C6F80528B90027D56EA36CD7DA /* UIScrollView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+YYAdd.h"; path = "YYKit/Base/UIKit/UIScrollView+YYAdd.h"; sourceTree = "<group>"; };
923 F8D3E6C92E8F4DF67950E0380B5C4AD1 /* YYKVStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKVStorage.h; path = YYKit/Cache/YYKVStorage.h; sourceTree = "<group>"; }; 883 F8D3E6C92E8F4DF67950E0380B5C4AD1 /* YYKVStorage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKVStorage.h; path = YYKit/Cache/YYKVStorage.h; sourceTree = "<group>"; };
924 F95AF0A9B4FD11599AC907D5ED78047F /* YBIBImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageCell.h; sourceTree = "<group>"; }; 884 F95AF0A9B4FD11599AC907D5ED78047F /* YBIBImageCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = YBIBImageCell.h; sourceTree = "<group>"; };
925 FA31B22A4EC7CB38F40BE6C28871B56C /* NSThread+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSThread+YYAdd.m"; path = "YYKit/Base/Foundation/NSThread+YYAdd.m"; sourceTree = "<group>"; }; 885 FA31B22A4EC7CB38F40BE6C28871B56C /* NSThread+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSThread+YYAdd.m"; path = "YYKit/Base/Foundation/NSThread+YYAdd.m"; sourceTree = "<group>"; };
926 FAAA1659DC5FA259CDDED68F436C2BF1 /* CALayer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYAdd.m"; path = "YYKit/Base/Quartz/CALayer+YYAdd.m"; sourceTree = "<group>"; }; 886 FAAA1659DC5FA259CDDED68F436C2BF1 /* CALayer+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+YYAdd.m"; path = "YYKit/Base/Quartz/CALayer+YYAdd.m"; sourceTree = "<group>"; };
  887 + FB9F487DEA2EE1223E588AF5B7968BBC /* SDImageGIFCoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageGIFCoder.h; path = SDWebImage/Core/SDImageGIFCoder.h; sourceTree = "<group>"; };
  888 + FBAFB1147F9F60F82F67F2F93767AEA8 /* SDImageLoadersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageLoadersManager.h; path = SDWebImage/Core/SDImageLoadersManager.h; sourceTree = "<group>"; };
927 FC399F5E175605828984C7E67A02DD73 /* NSObject+YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYModel.h"; path = "YYKit/Model/NSObject+YYModel.h"; sourceTree = "<group>"; }; 889 FC399F5E175605828984C7E67A02DD73 /* NSObject+YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYModel.h"; path = "YYKit/Model/NSObject+YYModel.h"; sourceTree = "<group>"; };
928 FC526297A9617C4BE9A6F090BD02A7EC /* YYWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageManager.m; path = YYKit/Image/YYWebImageManager.m; sourceTree = "<group>"; }; 890 FC526297A9617C4BE9A6F090BD02A7EC /* YYWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageManager.m; path = YYKit/Image/YYWebImageManager.m; sourceTree = "<group>"; };
929 - FCDCB1EFEE1048CBC6179F66B7E7E6E9 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/Core/SDWebImageCompat.m; sourceTree = "<group>"; };  
930 FD46990B6EBC034765E7F896D7692AF0 /* NSString+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+YYAdd.h"; path = "YYKit/Base/Foundation/NSString+YYAdd.h"; sourceTree = "<group>"; }; 891 FD46990B6EBC034765E7F896D7692AF0 /* NSString+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+YYAdd.h"; path = "YYKit/Base/Foundation/NSString+YYAdd.h"; sourceTree = "<group>"; };
  892 + FD9DAE7E5EAD3CA463241E107ADB319B /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/Core/SDWebImageDownloader.h; sourceTree = "<group>"; };
931 FDAB2149ED799695566D25A14612AFD4 /* YYWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWeakProxy.h; path = YYKit/Utility/YYWeakProxy.h; sourceTree = "<group>"; }; 893 FDAB2149ED799695566D25A14612AFD4 /* YYWeakProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYWeakProxy.h; path = YYKit/Utility/YYWeakProxy.h; sourceTree = "<group>"; };
932 - FDF39D0D9A539DD852E83070D546838D /* SDWebImageDownloaderRequestModifier.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderRequestModifier.h; path = SDWebImage/Core/SDWebImageDownloaderRequestModifier.h; sourceTree = "<group>"; };  
933 - FE71B363E5C4B1A08ED28F0F030C3610 /* SDAnimatedImageRep.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDAnimatedImageRep.m; path = SDWebImage/Core/SDAnimatedImageRep.m; sourceTree = "<group>"; };  
934 FF1FC22A806424A9D295AA3C1785B496 /* NSObject+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAdd.m"; path = "YYKit/Base/Foundation/NSObject+YYAdd.m"; sourceTree = "<group>"; }; 894 FF1FC22A806424A9D295AA3C1785B496 /* NSObject+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAdd.m"; path = "YYKit/Base/Foundation/NSObject+YYAdd.m"; sourceTree = "<group>"; };
935 - FFC1A8B570BBF9B90CBC65027B601DEE /* SDImageIOAnimatedCoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageIOAnimatedCoder.m; path = SDWebImage/Core/SDImageIOAnimatedCoder.m; sourceTree = "<group>"; }; 895 + FF96D9B286912D2041A6038E44BF9D78 /* SDWeakProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWeakProxy.m; path = SDWebImage/Private/SDWeakProxy.m; sourceTree = "<group>"; };
936 /* End PBXFileReference section */ 896 /* End PBXFileReference section */
937 897
938 /* Begin PBXFrameworksBuildPhase section */ 898 /* Begin PBXFrameworksBuildPhase section */
@@ -971,22 +931,22 @@ @@ -971,22 +931,22 @@
971 ); 931 );
972 runOnlyForDeploymentPostprocessing = 0; 932 runOnlyForDeploymentPostprocessing = 0;
973 }; 933 };
974 - 93E1803EFFB49B8B5D9BE9C3FF15E708 /* Frameworks */ = { 934 + D63F6433B5D27689683CDCF24F678FE6 /* Frameworks */ = {
975 isa = PBXFrameworksBuildPhase; 935 isa = PBXFrameworksBuildPhase;
976 buildActionMask = 2147483647; 936 buildActionMask = 2147483647;
977 files = ( 937 files = (
978 - 8F0623242A13E39BB0068F748D5A7819 /* Foundation.framework in Frameworks */,  
979 - 7F47C6E48CDC5A9B788F8EB05D826BE6 /* ImageIO.framework in Frameworks */, 938 + CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */,
  939 + D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */,
  940 + 60B44F3A94381A9FC25BD53BCDBA7062 /* YYKit.framework in Frameworks */,
980 ); 941 );
981 runOnlyForDeploymentPostprocessing = 0; 942 runOnlyForDeploymentPostprocessing = 0;
982 }; 943 };
983 - D63F6433B5D27689683CDCF24F678FE6 /* Frameworks */ = { 944 + ECEA1B04AA580BD337B52CB84D1C00A8 /* Frameworks */ = {
984 isa = PBXFrameworksBuildPhase; 945 isa = PBXFrameworksBuildPhase;
985 buildActionMask = 2147483647; 946 buildActionMask = 2147483647;
986 files = ( 947 files = (
987 - CD7563B5139A26E5B8B2587E0D658705 /* Foundation.framework in Frameworks */,  
988 - D92524C9E26C07719E07A9786B6B7892 /* SDWebImage.framework in Frameworks */,  
989 - 60B44F3A94381A9FC25BD53BCDBA7062 /* YYKit.framework in Frameworks */, 948 + 3B9737EB4BDEA61D7A6D7C2F83ADE16B /* Foundation.framework in Frameworks */,
  949 + 95AC0F0E049EC392931B147F1BA4C11E /* ImageIO.framework in Frameworks */,
990 ); 950 );
991 runOnlyForDeploymentPostprocessing = 0; 951 runOnlyForDeploymentPostprocessing = 0;
992 }; 952 };
@@ -1055,154 +1015,6 @@ @@ -1055,154 +1015,6 @@
1055 name = Pod; 1015 name = Pod;
1056 sourceTree = "<group>"; 1016 sourceTree = "<group>";
1057 }; 1017 };
1058 - 1A858AEA06D9DB5413EC15E1834061B8 /* Core */ = {  
1059 - isa = PBXGroup;  
1060 - children = (  
1061 - 8811346772E1C5599090A46F4A2D8681 /* NSBezierPath+SDRoundedCorners.h */,  
1062 - 608E04456BC00743986E00E4A8181EA3 /* NSBezierPath+SDRoundedCorners.m */,  
1063 - C1B3FCC15992E25641767F7CD50BAA99 /* NSButton+WebCache.h */,  
1064 - 4C8603634C14CA0EB02BA831268B0C10 /* NSButton+WebCache.m */,  
1065 - DB7A93383CAC54408CD5E5B395011B2E /* NSData+ImageContentType.h */,  
1066 - EFBE035B06C6B5FC5316B23AA385AEB7 /* NSData+ImageContentType.m */,  
1067 - A7D134637245A1D1291AEBC7FA27654E /* NSImage+Compatibility.h */,  
1068 - 4D6746DFA44B1641AE23A50377370530 /* NSImage+Compatibility.m */,  
1069 - 17C2170C0DA7F6751732A3F6F2D3304C /* SDAnimatedImage.h */,  
1070 - D137AC86EF60C0DD4725A67DBED5F6EC /* SDAnimatedImage.m */,  
1071 - DC9B7833ED252B3A3CDA8CD870E5136B /* SDAnimatedImagePlayer.h */,  
1072 - E6B26DB6EEA41E128F36B8CCD8BA6C90 /* SDAnimatedImagePlayer.m */,  
1073 - 71AEC717DE657C306DC4220359875899 /* SDAnimatedImageRep.h */,  
1074 - FE71B363E5C4B1A08ED28F0F030C3610 /* SDAnimatedImageRep.m */,  
1075 - AF3424AF58293B7AECCBA5ADAE1E90EB /* SDAnimatedImageView.h */,  
1076 - 8EADB1874F009D5810228B521E808F8C /* SDAnimatedImageView.m */,  
1077 - 9B374325A4827DE6AA8D86E8A4CA0C0E /* SDAnimatedImageView+WebCache.h */,  
1078 - CB6206FBA44F9BD5BB69EB2338D24399 /* SDAnimatedImageView+WebCache.m */,  
1079 - 12B66AB16766AB4060516E7814443E08 /* SDAssociatedObject.h */,  
1080 - 507EA85A920020FD53FDF4A254A318F9 /* SDAssociatedObject.m */,  
1081 - 14EF33DBBD181973544221E30D2DC4B9 /* SDAsyncBlockOperation.h */,  
1082 - A7D32E803217C60CD15496E8FBD13FDF /* SDAsyncBlockOperation.m */,  
1083 - CD970A6F82F507060C225F86F7A3F410 /* SDDeviceHelper.h */,  
1084 - 54932F1D65D4CE3969AD7014585252E6 /* SDDeviceHelper.m */,  
1085 - 8D17D294A9F7DCF9895D5A3337D8B886 /* SDDiskCache.h */,  
1086 - C36986E68072E6D37FC44159464E6E63 /* SDDiskCache.m */,  
1087 - 4EB5FC7AFB1E5240D21A6FE7DF89E87C /* SDDisplayLink.h */,  
1088 - 57001503938AEFE09B39A90CD56CF65A /* SDDisplayLink.m */,  
1089 - 8F25D99C7ED5F7ECE058950E756B815B /* SDFileAttributeHelper.h */,  
1090 - 615E844CC98D96DCD6F0EFE36CFF13BF /* SDFileAttributeHelper.m */,  
1091 - 6016CD6764077B1F107BD22483AA7D14 /* SDGraphicsImageRenderer.h */,  
1092 - 6DB88B001512FB115B60C0A194FAB687 /* SDGraphicsImageRenderer.m */,  
1093 - E1FACAD68445DC5C8232A29CDDE00106 /* SDImageAPNGCoder.h */,  
1094 - 1072A8A4B2B89ECA95DD401CFB50F108 /* SDImageAPNGCoder.m */,  
1095 - 657DCFEE5B399779371CC2AC2AAAA206 /* SDImageAssetManager.h */,  
1096 - 1C715A63047EF7CF84A44FC37DB4E919 /* SDImageAssetManager.m */,  
1097 - 14FC848A818168BBB863CFE049B98704 /* SDImageCache.h */,  
1098 - 232C7410166470C58B9D7DD4BEE465D6 /* SDImageCache.m */,  
1099 - DF00E591E4B26D6D1D35456AAE90B1C1 /* SDImageCacheConfig.h */,  
1100 - A788FE41CE72DC285C7E12274B2EEA45 /* SDImageCacheConfig.m */,  
1101 - A1CF482AD1045FF137E38C654A5C5F0A /* SDImageCacheDefine.h */,  
1102 - 1249E97F29FD39E6B5CA9DD3D122921C /* SDImageCacheDefine.m */,  
1103 - 5E05A254217112511844A5ABAEA26D88 /* SDImageCachesManager.h */,  
1104 - 3F7D6860C305EDC74687492EDEFC2325 /* SDImageCachesManager.m */,  
1105 - F3FA042CB9FEAE916F9354DD0FFDC410 /* SDImageCachesManagerOperation.h */,  
1106 - CEA5120287BD232F4C4CECF7D74E0104 /* SDImageCachesManagerOperation.m */,  
1107 - F4C26425407B34D7EF26491A3F6C3412 /* SDImageCoder.h */,  
1108 - 36C8C2D7C7ACA9C26136F7A7D1154082 /* SDImageCoder.m */,  
1109 - CF05C25EE17396B80BB50C70733D2421 /* SDImageCoderHelper.h */,  
1110 - E94B7142D84F4E7AD5A126B60C5056AA /* SDImageCoderHelper.m */,  
1111 - D0DD7284FE8B0C78E070E9DA2D0C46E2 /* SDImageCodersManager.h */,  
1112 - 7E26822C5FA7DDEE80076B4E7C2728A9 /* SDImageCodersManager.m */,  
1113 - C43DE0B9900A2DBDABA15312032D955B /* SDImageFrame.h */,  
1114 - D2BF5A3EEE1A287B05D28198D9F16C76 /* SDImageFrame.m */,  
1115 - EF282CB27CB176AE4D81EB193162E61C /* SDImageGIFCoder.h */,  
1116 - C758F6AA3BEFD52D81A2E68FD89C92BC /* SDImageGIFCoder.m */,  
1117 - A86C89F5D3FD68F631C6AAB3E9FFDB67 /* SDImageGraphics.h */,  
1118 - 13211B603D4A4D4D2724F2C5BB4407D3 /* SDImageGraphics.m */,  
1119 - 2E02A020962AA8A983BE9DEF489D5CC5 /* SDImageHEICCoder.h */,  
1120 - F73E603FC59F5282264218DA84C3E5B7 /* SDImageHEICCoder.m */,  
1121 - C263B2AFBE7F6297AC0A2DD306AE5B6A /* SDImageHEICCoderInternal.h */,  
1122 - 7CA02462DD9F35B55FD8C20DC0A0CDBC /* SDImageIOAnimatedCoder.h */,  
1123 - FFC1A8B570BBF9B90CBC65027B601DEE /* SDImageIOAnimatedCoder.m */,  
1124 - 8582059F08F05B024B1E63DB97E6FC3D /* SDImageIOAnimatedCoderInternal.h */,  
1125 - 2DC1F761B34C39B4907D5DB70157ABFC /* SDImageIOCoder.h */,  
1126 - 102A8609FE38B44A4F04554766133491 /* SDImageIOCoder.m */,  
1127 - 91C17D860CA95052284F7C9198001DC9 /* SDImageLoader.h */,  
1128 - C9B03AE8F74ED6BF9967696B1F29AC24 /* SDImageLoader.m */,  
1129 - CE599BD66BC1D5DBF2513D84C9CF10D2 /* SDImageLoadersManager.h */,  
1130 - 5D239E8639A886939B6B5EB58FC27342 /* SDImageLoadersManager.m */,  
1131 - 5DD0F8422DC31BC404DEB779AA5DB139 /* SDImageTransformer.h */,  
1132 - 115DF10AB89F4BD3959B0760E6FF7F5A /* SDImageTransformer.m */,  
1133 - 1ECDD31DCADBB91FE191C953267FFF2D /* SDInternalMacros.h */,  
1134 - C8D85332D2674E584830AC6CFE3141FE /* SDInternalMacros.m */,  
1135 - CDA24BB0F92E4A49AC0BE6BF22D67546 /* SDMemoryCache.h */,  
1136 - CF9EB80B340726BF23F53617B34B3575 /* SDMemoryCache.m */,  
1137 - F37753D5DA03467158CF8F3BFA52E460 /* SDmetamacros.h */,  
1138 - 9915D39521761F821273ED4AD94F462B /* SDWeakProxy.h */,  
1139 - 0786ADD48518359C5D9C950902C74B70 /* SDWeakProxy.m */,  
1140 - 467332BA4DF047A604E2AD170D2A9A6C /* SDWebImage.h */,  
1141 - 3C016044B645AE229C947C4E2E37F78B /* SDWebImageCacheKeyFilter.h */,  
1142 - 92D743407EFB5C298F8E9856F618DE87 /* SDWebImageCacheKeyFilter.m */,  
1143 - 3CA0E2F59E86C22963A7F42A601D4D9D /* SDWebImageCacheSerializer.h */,  
1144 - 7EA2BCD717BF8B6108E49F1344996DCF /* SDWebImageCacheSerializer.m */,  
1145 - 618EA55D0CE2B6CFE74715E49A256295 /* SDWebImageCompat.h */,  
1146 - FCDCB1EFEE1048CBC6179F66B7E7E6E9 /* SDWebImageCompat.m */,  
1147 - 3103E35D6924D70FC117A1BFA21077C8 /* SDWebImageDefine.h */,  
1148 - 7025B67B4A01BBCCCFB1958DC25846D2 /* SDWebImageDefine.m */,  
1149 - 165A9BD2C6ABE7C53969D2E146053DCC /* SDWebImageDownloader.h */,  
1150 - 4B31C91F7BAC29DAB475F9F033793951 /* SDWebImageDownloader.m */,  
1151 - BE3ECDB29BE68019FD7DE942E2F58BD0 /* SDWebImageDownloaderConfig.h */,  
1152 - 255A9E38BCE069FD5BD5AA7B2554059D /* SDWebImageDownloaderConfig.m */,  
1153 - 8F0B0EB007B67E5D110E4AA7E75CC5E8 /* SDWebImageDownloaderDecryptor.h */,  
1154 - 5566B7FA1592DB68F47F538060773A34 /* SDWebImageDownloaderDecryptor.m */,  
1155 - E5A710E84F3BA6FCB0CFF41E78AD5CBD /* SDWebImageDownloaderOperation.h */,  
1156 - 9998D272F6C21B92ECDBCC87B232F260 /* SDWebImageDownloaderOperation.m */,  
1157 - FDF39D0D9A539DD852E83070D546838D /* SDWebImageDownloaderRequestModifier.h */,  
1158 - B75EE1C0C625093DB3961800DCB992E6 /* SDWebImageDownloaderRequestModifier.m */,  
1159 - 968801418C5808212099C7AAECFD942F /* SDWebImageDownloaderResponseModifier.h */,  
1160 - 0804ADB1BA257EF0FBCE5877305E5CBA /* SDWebImageDownloaderResponseModifier.m */,  
1161 - 03964B173BAD2879E938A697CDE23E58 /* SDWebImageError.h */,  
1162 - 0A70D2708290382BD7D9078C968FDBFD /* SDWebImageError.m */,  
1163 - 176BE9B96FD0004A2FDAD77CA2B59BEF /* SDWebImageIndicator.h */,  
1164 - F71C63A56CAAF9072729B55B779D9414 /* SDWebImageIndicator.m */,  
1165 - 2FBBBA584888406A53BBAB4C8E646119 /* SDWebImageManager.h */,  
1166 - 4294BEEA87AE1F76B25087B05E8A9958 /* SDWebImageManager.m */,  
1167 - 491254BCC101B0465D55540272375AB3 /* SDWebImageOperation.h */,  
1168 - C550536A6B0FFCC49930C911A1A845CA /* SDWebImageOperation.m */,  
1169 - D60E08CE2DF723239081CE2F04FA6324 /* SDWebImageOptionsProcessor.h */,  
1170 - 4A1019E03A5B1C662AEA03A27BAD9451 /* SDWebImageOptionsProcessor.m */,  
1171 - A2B670A4915027A69D8298ABAE7832C5 /* SDWebImagePrefetcher.h */,  
1172 - 6721C57EE2049316FC7DFA0EC2F61B33 /* SDWebImagePrefetcher.m */,  
1173 - 060133C4A0CD84D7E43EA5A6AE35A7BA /* SDWebImageTransition.h */,  
1174 - 7136C53C3E86DF97021DEAC46C3AF414 /* SDWebImageTransition.m */,  
1175 - DF0BE15112187DE13F59F20FD37196BF /* SDWebImageTransitionInternal.h */,  
1176 - ECCFB33F5B2FAFCB9059F1EA4872AD5E /* UIButton+WebCache.h */,  
1177 - 03C7B13F9A65433A2099280BB0853B83 /* UIButton+WebCache.m */,  
1178 - 9DD82D69E6F6CA677C0FD0DB1910BEEB /* UIColor+SDHexString.h */,  
1179 - 1062A5D5F16F52CCF19B547AC48CFF6B /* UIColor+SDHexString.m */,  
1180 - 885401F9AE5B59CB193871CFBB1551CC /* UIImage+ExtendedCacheData.h */,  
1181 - 20421D13A41D462848F051647414A829 /* UIImage+ExtendedCacheData.m */,  
1182 - D1A63106E180D500BA4681CBFF159C50 /* UIImage+ForceDecode.h */,  
1183 - 4423F2AF5E01BBBB5F27784F5DA57247 /* UIImage+ForceDecode.m */,  
1184 - 3A20F815CD4F1A80CA68C34C3039D331 /* UIImage+GIF.h */,  
1185 - 3C7A36D864638BFBD8FEE3A451FAC9B3 /* UIImage+GIF.m */,  
1186 - 1780A6FB6896D6EE58CA176A32A91167 /* UIImage+MemoryCacheCost.h */,  
1187 - 4F30AC9537E6584F35D8DD4C10EDB7B1 /* UIImage+MemoryCacheCost.m */,  
1188 - C54648ED166C9850805DF18B9BF1A305 /* UIImage+Metadata.h */,  
1189 - EFFC73CFCA9A8BA73DF3B34FE5E9C8B0 /* UIImage+Metadata.m */,  
1190 - 03A09A7D80E19CC940BE2323D0536D61 /* UIImage+MultiFormat.h */,  
1191 - 82CFF2AD22CF5568454DF140CCC1FBC4 /* UIImage+MultiFormat.m */,  
1192 - 615E0DE04702B1FE637909AB79E77479 /* UIImage+Transform.h */,  
1193 - 77BDAC0316DE945EDC00877B001E3F13 /* UIImage+Transform.m */,  
1194 - C6064257443573B6B4428384FE55B429 /* UIImageView+HighlightedWebCache.h */,  
1195 - D99CAD8BB03A1ED3ACC306DE0083743C /* UIImageView+HighlightedWebCache.m */,  
1196 - B083F58677FB62CBAA120E34B5932133 /* UIImageView+WebCache.h */,  
1197 - 7F204DC3ADE5CAA2617773E3A9EFDDBB /* UIImageView+WebCache.m */,  
1198 - 64D193C84163B92004E21BE9A8A13B71 /* UIView+WebCache.h */,  
1199 - 5573ECAD013B67C3DCA80D7EFBDE031B /* UIView+WebCache.m */,  
1200 - 9B17144987DDC3673503BAA63081322E /* UIView+WebCacheOperation.h */,  
1201 - DA18D81BDAB5332971532C646A936989 /* UIView+WebCacheOperation.m */,  
1202 - );  
1203 - name = Core;  
1204 - sourceTree = "<group>";  
1205 - };  
1206 2114D1F9BC187D61883E9A4E077458A4 /* ToolView */ = { 1018 2114D1F9BC187D61883E9A4E077458A4 /* ToolView */ = {
1207 isa = PBXGroup; 1019 isa = PBXGroup;
1208 children = ( 1020 children = (
@@ -1255,6 +1067,149 @@ @@ -1255,6 +1067,149 @@
1255 name = Frameworks; 1067 name = Frameworks;
1256 sourceTree = "<group>"; 1068 sourceTree = "<group>";
1257 }; 1069 };
  1070 + 418B8500CC0BC65A0DE0B609A2F36DA8 /* Core */ = {
  1071 + isa = PBXGroup;
  1072 + children = (
  1073 + 480531E7E6576BA8EBC67D80A2410524 /* NSBezierPath+RoundedCorners.h */,
  1074 + DFFBF564BC41F65FF3EF9F404A3FF8A5 /* NSBezierPath+RoundedCorners.m */,
  1075 + F59687F8773BB30C3383C0C4473BA5A9 /* NSButton+WebCache.h */,
  1076 + 88B758940E94222028625182D6DD5C48 /* NSButton+WebCache.m */,
  1077 + EBC3A38B3CF4356703DC4ABF85E1FB8C /* NSData+ImageContentType.h */,
  1078 + 6BF16A9C9A9AF5DDC141A40D41D0467E /* NSData+ImageContentType.m */,
  1079 + 8C0EBBBE53B935FF0453555166C8BD82 /* NSImage+Compatibility.h */,
  1080 + CB33D1B5F3A87441C78240849B1BD409 /* NSImage+Compatibility.m */,
  1081 + CCFF6195D3943C3B2EE93D641F705287 /* SDAnimatedImage.h */,
  1082 + 994DDB7514B65007DB23743EE9419955 /* SDAnimatedImage.m */,
  1083 + 6F7A1C78766D1A651D4233A02DFD21C1 /* SDAnimatedImageRep.h */,
  1084 + 45487E9C2D9132F54E6DD142FDADCBAF /* SDAnimatedImageRep.m */,
  1085 + D25E5ABBC1DC5FB5597B7FD6AF7395A6 /* SDAnimatedImageView.h */,
  1086 + 2594CEE3269A686FE6A32ADF1ACDA903 /* SDAnimatedImageView.m */,
  1087 + 458C3BA863BEC4A0D1766E7096A16EF8 /* SDAnimatedImageView+WebCache.h */,
  1088 + 523A9DF244F75BFD8EF7183295D79237 /* SDAnimatedImageView+WebCache.m */,
  1089 + CA2F973E303B162092C59FA182AC2842 /* SDAsyncBlockOperation.h */,
  1090 + 95D767BEAA3A22D8C4B4F881F593EA55 /* SDAsyncBlockOperation.m */,
  1091 + 85323CE74E87D9048ABFE6CB1D80BCB5 /* SDDiskCache.h */,
  1092 + 17822DDCEE5C075412F1B1A731F006F2 /* SDDiskCache.m */,
  1093 + CB003CB825038F390A91BFD066D5DC11 /* SDImageAPNGCoder.h */,
  1094 + F4BDDDF94411952465D7BEFFCA8B5C29 /* SDImageAPNGCoder.m */,
  1095 + B836409E7407CD373408BBEE6FB78A56 /* SDImageAssetManager.h */,
  1096 + 26EEACAD4CFF038839E5CAE01FC51426 /* SDImageAssetManager.m */,
  1097 + 92986682144C6A680D1688CC72DB03EB /* SDImageCache.h */,
  1098 + 4C86D29287795201B7A91BA858DBC2FB /* SDImageCache.m */,
  1099 + 880ED7B5A8CB58EE4EE46F97AAFC7934 /* SDImageCacheConfig.h */,
  1100 + EBAB61DD2D434A28A27FC5DFC9B7D499 /* SDImageCacheConfig.m */,
  1101 + 843DE7A9D5751B6D1E4B542142E88BE5 /* SDImageCacheDefine.h */,
  1102 + D3B294F209BE90C307D3B79D646A580E /* SDImageCacheDefine.m */,
  1103 + EF4C3869889BF6E0FB48DB6D3E50C42B /* SDImageCachesManager.h */,
  1104 + 14AEC03CE74FA3C1ED22FD08ACDC489F /* SDImageCachesManager.m */,
  1105 + 0E9E88F1E31A013B69A717855A9A782E /* SDImageCachesManagerOperation.h */,
  1106 + A2EE608D10670E27D666BCB148BE76A8 /* SDImageCachesManagerOperation.m */,
  1107 + B5F772E2006AB9FCF216A22126D6D46F /* SDImageCoder.h */,
  1108 + 2FD9BD14816B4B34D6B032B14FCBCD17 /* SDImageCoder.m */,
  1109 + 5820AFD9CB1F531DEEEA85AE53BA9FB1 /* SDImageCoderHelper.h */,
  1110 + 8DE00CB7B46BD9384E27CFF44A22F3D6 /* SDImageCoderHelper.m */,
  1111 + 106CDD63C990007C4EBED229576FD0E6 /* SDImageCodersManager.h */,
  1112 + 7A3758E1F2262F48C18DEA44579E7F23 /* SDImageCodersManager.m */,
  1113 + 3F679F8EE0717580BF2DF10529B314ED /* SDImageFrame.h */,
  1114 + 0D7D182C7944184D8687D02BC5895C8A /* SDImageFrame.m */,
  1115 + FB9F487DEA2EE1223E588AF5B7968BBC /* SDImageGIFCoder.h */,
  1116 + 29332085AB2D0312202A5E4DA9903355 /* SDImageGIFCoder.m */,
  1117 + AAF8FE9BD2DF30E81C73D0170BA7C814 /* SDImageGraphics.h */,
  1118 + E2F6363B89177C5ED56B90058D1B1B9A /* SDImageGraphics.m */,
  1119 + 1EE818633CBD870C5763EC5A7DEEFEBB /* SDImageHEICCoder.h */,
  1120 + DF6A0A2DCDCF701127D57F57D20CEE46 /* SDImageHEICCoder.m */,
  1121 + E1824D23FFCDBDE557E8BCF4A5D1EB64 /* SDImageHEICCoderInternal.h */,
  1122 + C54E545CC107D12C2F5AA2887BAF107E /* SDImageIOAnimatedCoder.h */,
  1123 + BF2240205CFBA63D171F27ED059DA17F /* SDImageIOAnimatedCoder.m */,
  1124 + 74C01AF8051358A2AD340A5AB3505F28 /* SDImageIOAnimatedCoderInternal.h */,
  1125 + 7DC9E6937FC0DCAFBFE9BC1CC778D6C9 /* SDImageIOCoder.h */,
  1126 + 7492D3D26ACA17BE066949BC5402EFA6 /* SDImageIOCoder.m */,
  1127 + 0F882F7E87C969BC4F446959C4C96507 /* SDImageLoader.h */,
  1128 + 0AA629F1636B9E5C1E7779416F41894F /* SDImageLoader.m */,
  1129 + FBAFB1147F9F60F82F67F2F93767AEA8 /* SDImageLoadersManager.h */,
  1130 + D5EFE1BA58FE69FA738DCB9784D3B2E0 /* SDImageLoadersManager.m */,
  1131 + 662B362504EE532B6C5EAA6DEDDC5D23 /* SDImageTransformer.h */,
  1132 + 78D88E09C574752B379AC19B8561A84F /* SDImageTransformer.m */,
  1133 + D0BFF09BFCD201810684D60E49FC29B3 /* SDInternalMacros.h */,
  1134 + 565EA3FF9DE0069950D12760CD92E6DF /* SDInternalMacros.m */,
  1135 + 2C6338E013B6CE8A040D3B94EC208F53 /* SDMemoryCache.h */,
  1136 + DCA9751DEFA2CAEA416E397CD0197E4C /* SDMemoryCache.m */,
  1137 + ACDF74FCCC69765D4B60B3DBEC369C3D /* SDmetamacros.h */,
  1138 + EDCF5C73C34D7FE7CBD5AEC45E26DD16 /* SDWeakProxy.h */,
  1139 + FF96D9B286912D2041A6038E44BF9D78 /* SDWeakProxy.m */,
  1140 + AD998B4EBF0CD700BD542833326015DB /* SDWebImage.h */,
  1141 + 2C68FD0A33D48BF8511F5E1F0AF5F38C /* SDWebImageCacheKeyFilter.h */,
  1142 + 3C89C4C20801869E17ED28D5BC0002C7 /* SDWebImageCacheKeyFilter.m */,
  1143 + 631A43488B8C087EA660030CD2484EA9 /* SDWebImageCacheSerializer.h */,
  1144 + E6AC77D76359DA3AB60BBECA32896CFA /* SDWebImageCacheSerializer.m */,
  1145 + 3BAFBDA5FBFB046872240DAA694DBA9D /* SDWebImageCompat.h */,
  1146 + 4EB6A999880D99C4B8EAE70EC4D73221 /* SDWebImageCompat.m */,
  1147 + BBC835DD376D230B30079993F2F5CDAA /* SDWebImageDefine.h */,
  1148 + EB79E7A300B9098CE8EED7EB98A1E5AA /* SDWebImageDefine.m */,
  1149 + FD9DAE7E5EAD3CA463241E107ADB319B /* SDWebImageDownloader.h */,
  1150 + C2DE3B8DDA43BF244A83FA3A8E49B9C4 /* SDWebImageDownloader.m */,
  1151 + 22D6E01939BAAB30A2190ACA1D161CDB /* SDWebImageDownloaderConfig.h */,
  1152 + 9B69A0F6649EAEED316A983843ED5614 /* SDWebImageDownloaderConfig.m */,
  1153 + 6076834A27CA897C42FFDA170BDE4715 /* SDWebImageDownloaderOperation.h */,
  1154 + 0027B01676377B9218BE8AA537BDAA8A /* SDWebImageDownloaderOperation.m */,
  1155 + 82DA1AE31B883B0A558F1A7C451C5411 /* SDWebImageDownloaderRequestModifier.h */,
  1156 + 1A7213E5D815346B024AC2C78B59AE7E /* SDWebImageDownloaderRequestModifier.m */,
  1157 + B93B5CB4F97B4C63233C9781D9074385 /* SDWebImageError.h */,
  1158 + 4D82E5E2C22405F57D03467E23EA118F /* SDWebImageError.m */,
  1159 + AD9AD3087AA0C54D99784B1E96B8F385 /* SDWebImageIndicator.h */,
  1160 + C343BEA71DA4406F27A27215550DB0CA /* SDWebImageIndicator.m */,
  1161 + 645FAD055E96DC89E3CF7A287A4B4F87 /* SDWebImageManager.h */,
  1162 + C0F853EDBA5EE0AFD5FF80DF4E069774 /* SDWebImageManager.m */,
  1163 + 3977DF74625040A3E0128C656F9FA8D0 /* SDWebImageOperation.h */,
  1164 + 5E7D951E27DDF1D0327C691AC350863B /* SDWebImageOptionsProcessor.h */,
  1165 + 9A2C5A33CC842DF0109E16A40FED6D58 /* SDWebImageOptionsProcessor.m */,
  1166 + 6E0438EB685599B92473E4BBB56C9271 /* SDWebImagePrefetcher.h */,
  1167 + A3F033ABEC9F3EFAA01FDA65E76374B4 /* SDWebImagePrefetcher.m */,
  1168 + E8864E2BCB6F0A60BF7660FD5CA61884 /* SDWebImageTransition.h */,
  1169 + 6F4A5B2FFD435932DC069C91BA243B8A /* SDWebImageTransition.m */,
  1170 + E028311EA2C17015A8136F9F9A3DEEEC /* UIButton+WebCache.h */,
  1171 + 604FBD4A36B51CB23593D6E7144E0A66 /* UIButton+WebCache.m */,
  1172 + 5E4DCEAC007F7F72A2323A6304B0F4A4 /* UIColor+HexString.h */,
  1173 + 8D082DCD13F9572880B69B6E5DBA621E /* UIColor+HexString.m */,
  1174 + 8D8872339E7C6C556DCFC2B144D97747 /* UIImage+ForceDecode.h */,
  1175 + DD7EB188DA7D4BC587FE249FF628B51C /* UIImage+ForceDecode.m */,
  1176 + 03917DDCF8C121DD56B0AD9B603C2B9D /* UIImage+GIF.h */,
  1177 + 9D4F696743A974B8507BEF6FB323BB62 /* UIImage+GIF.m */,
  1178 + 45EBF80603A6BB114FFDF460A6A20CC7 /* UIImage+MemoryCacheCost.h */,
  1179 + 23C27D070CBE7191DD5328960C7C772E /* UIImage+MemoryCacheCost.m */,
  1180 + C8CF816C63E5B6559556C778BE819AF4 /* UIImage+Metadata.h */,
  1181 + C090D5ECCFD39D2D4DF00BFB1D9DAB81 /* UIImage+Metadata.m */,
  1182 + CF824EAADAAA9D61882AC1E95A4FAAC5 /* UIImage+MultiFormat.h */,
  1183 + 2FB82601936A52D10C46ABDED4C4D68E /* UIImage+MultiFormat.m */,
  1184 + DDF0A0D18F37DBE6D852FCEA2251F1C1 /* UIImage+Transform.h */,
  1185 + 81C7DA27208415129BC75A3AE0EC610D /* UIImage+Transform.m */,
  1186 + 397498F9C1EC4E17B000928E2E9A2551 /* UIImageView+HighlightedWebCache.h */,
  1187 + 4E907072812DC6E02160321606CBFFD2 /* UIImageView+HighlightedWebCache.m */,
  1188 + 4532E0D4D1C1FCB630416F347E791110 /* UIImageView+WebCache.h */,
  1189 + 42406C450631485B971273EE79B37A12 /* UIImageView+WebCache.m */,
  1190 + 0847D06FD8D970FB3747D3FFE1EF1A98 /* UIView+WebCache.h */,
  1191 + 6C25A06B05CE4932A05E03D9A5B91E1A /* UIView+WebCache.m */,
  1192 + 2B9F2CAB3EBC390CC9C5DF6FEB4AE54E /* UIView+WebCacheOperation.h */,
  1193 + 6821ACBD9902AD3AEC5766052616BEFC /* UIView+WebCacheOperation.m */,
  1194 + );
  1195 + name = Core;
  1196 + sourceTree = "<group>";
  1197 + };
  1198 + 4A12BD7E0F24F7DA5CB75AC152DCA427 /* Support Files */ = {
  1199 + isa = PBXGroup;
  1200 + children = (
  1201 + 9190FDE4BAFCFE9EEEC32C362D54FC14 /* SDWebImage.modulemap */,
  1202 + 1FB1475C6AAE3E931553C57D2012437B /* SDWebImage-dummy.m */,
  1203 + A4015B1017950B192730F1ABF2793542 /* SDWebImage-Info.plist */,
  1204 + 2E14AFE886371F80BB03C9261CAE653A /* SDWebImage-prefix.pch */,
  1205 + 159B608142C5AD0E99E00479F64CDAFE /* SDWebImage-umbrella.h */,
  1206 + 35974735D558DD140EC7A519306676BF /* SDWebImage.debug.xcconfig */,
  1207 + 8B5C5257F6B18F69C086B439A25052BD /* SDWebImage.release.xcconfig */,
  1208 + );
  1209 + name = "Support Files";
  1210 + path = "../Target Support Files/SDWebImage";
  1211 + sourceTree = "<group>";
  1212 + };
1258 6395BBC4FE7C6C41AE1CB6A3363066BD /* Targets Support Files */ = { 1213 6395BBC4FE7C6C41AE1CB6A3363066BD /* Targets Support Files */ = {
1259 isa = PBXGroup; 1214 isa = PBXGroup;
1260 children = ( 1215 children = (
@@ -1289,21 +1244,6 @@ @@ -1289,21 +1244,6 @@
1289 path = Image; 1244 path = Image;
1290 sourceTree = "<group>"; 1245 sourceTree = "<group>";
1291 }; 1246 };
1292 - 710F178F0547C8EE314E14F2AB2C4124 /* Support Files */ = {  
1293 - isa = PBXGroup;  
1294 - children = (  
1295 - 3E74798ACDDA5B166130859C04575723 /* SDWebImage.modulemap */,  
1296 - 61733D38B2BF61692321B0EAD6CE7AAC /* SDWebImage-dummy.m */,  
1297 - 15DA0DE7F827744C2CD1C503B90ED22A /* SDWebImage-Info.plist */,  
1298 - 3AEC8F623A6884FBFC7CF8D4309918D7 /* SDWebImage-prefix.pch */,  
1299 - 2DED8461605A23446E943D5B44AC07FB /* SDWebImage-umbrella.h */,  
1300 - 3937A5FCAE6FD5C9CBFD132D61702EB0 /* SDWebImage.debug.xcconfig */,  
1301 - 69B6E48A6A7BF7FDA397F18D808442A2 /* SDWebImage.release.xcconfig */,  
1302 - );  
1303 - name = "Support Files";  
1304 - path = "../Target Support Files/SDWebImage";  
1305 - sourceTree = "<group>";  
1306 - };  
1307 7681CA34E755E133CA6962CC78CCA732 /* YBImageBrowser */ = { 1247 7681CA34E755E133CA6962CC78CCA732 /* YBImageBrowser */ = {
1308 isa = PBXGroup; 1248 isa = PBXGroup;
1309 children = ( 1249 children = (
@@ -1321,6 +1261,16 @@ @@ -1321,6 +1261,16 @@
1321 path = YBImageBrowser_DSCnliveShop/Classes/YBImageBrowser; 1261 path = YBImageBrowser_DSCnliveShop/Classes/YBImageBrowser;
1322 sourceTree = "<group>"; 1262 sourceTree = "<group>";
1323 }; 1263 };
  1264 + 7A014A40B4BE421CD0E89DA824A04413 /* SDWebImage */ = {
  1265 + isa = PBXGroup;
  1266 + children = (
  1267 + 418B8500CC0BC65A0DE0B609A2F36DA8 /* Core */,
  1268 + 4A12BD7E0F24F7DA5CB75AC152DCA427 /* Support Files */,
  1269 + );
  1270 + name = SDWebImage;
  1271 + path = SDWebImage;
  1272 + sourceTree = "<group>";
  1273 + };
1324 9A9577D5B370441D1926FE268E305F56 /* Resources */ = { 1274 9A9577D5B370441D1926FE268E305F56 /* Resources */ = {
1325 isa = PBXGroup; 1275 isa = PBXGroup;
1326 children = ( 1276 children = (
@@ -1348,7 +1298,7 @@ @@ -1348,7 +1298,7 @@
1348 A2BE8DF77D03508B9B8418BD9602255F /* Pods */ = { 1298 A2BE8DF77D03508B9B8418BD9602255F /* Pods */ = {
1349 isa = PBXGroup; 1299 isa = PBXGroup;
1350 children = ( 1300 children = (
1351 - FEF90DB2DC962AA8A54D42B042F65B9E /* SDWebImage */, 1301 + 7A014A40B4BE421CD0E89DA824A04413 /* SDWebImage */,
1352 B0A9653E4CBB5BBF0D27A9511C0EE8C4 /* YYKit */, 1302 B0A9653E4CBB5BBF0D27A9511C0EE8C4 /* YYKit */,
1353 ); 1303 );
1354 name = Pods; 1304 name = Pods;
@@ -1661,16 +1611,6 @@ @@ -1661,16 +1611,6 @@
1661 name = Frameworks; 1611 name = Frameworks;
1662 sourceTree = "<group>"; 1612 sourceTree = "<group>";
1663 }; 1613 };
1664 - FEF90DB2DC962AA8A54D42B042F65B9E /* SDWebImage */ = {  
1665 - isa = PBXGroup;  
1666 - children = (  
1667 - 1A858AEA06D9DB5413EC15E1834061B8 /* Core */,  
1668 - 710F178F0547C8EE314E14F2AB2C4124 /* Support Files */,  
1669 - );  
1670 - name = SDWebImage;  
1671 - path = SDWebImage;  
1672 - sourceTree = "<group>";  
1673 - };  
1674 FF6E94A47A5FB0D3A3409B902104CDC9 /* Helper */ = { 1614 FF6E94A47A5FB0D3A3409B902104CDC9 /* Helper */ = {
1675 isa = PBXGroup; 1615 isa = PBXGroup;
1676 children = ( 1616 children = (
@@ -1846,84 +1786,74 @@ @@ -1846,84 +1786,74 @@
1846 ); 1786 );
1847 runOnlyForDeploymentPostprocessing = 0; 1787 runOnlyForDeploymentPostprocessing = 0;
1848 }; 1788 };
1849 - CB6048343884143F7919689F2F9BEEA2 /* Headers */ = { 1789 + CA4065646A60ED133DABD1609AE9B77F /* Headers */ = {
1850 isa = PBXHeadersBuildPhase; 1790 isa = PBXHeadersBuildPhase;
1851 buildActionMask = 2147483647; 1791 buildActionMask = 2147483647;
1852 files = ( 1792 files = (
1853 - D0725567B7BD18C79A04E5EC9C72249D /* NSBezierPath+SDRoundedCorners.h in Headers */,  
1854 - 449AF3A1E1DEFBD47B2411DAD0E5D6CC /* NSButton+WebCache.h in Headers */,  
1855 - EB634403E13B36687931F62769C04F66 /* NSData+ImageContentType.h in Headers */,  
1856 - 9C6F61B6DD8964A03128BB996BCCCDF5 /* NSImage+Compatibility.h in Headers */,  
1857 - 1201437E196032353D4D2B2DF8206775 /* SDAnimatedImage.h in Headers */,  
1858 - 9B0ADFBD0EE010BC1AE32B290FAF2D70 /* SDAnimatedImagePlayer.h in Headers */,  
1859 - 86A92CFC75F685F5805824C81ED34DD9 /* SDAnimatedImageRep.h in Headers */,  
1860 - 6F14B66A0031F8CD2DBD49D05F285A5A /* SDAnimatedImageView+WebCache.h in Headers */,  
1861 - 40DD3721BA61598A56ECF57BB1C45EE8 /* SDAnimatedImageView.h in Headers */,  
1862 - 85B91AFDF4CF2F4FB54D35AE96CB02DE /* SDAssociatedObject.h in Headers */,  
1863 - 7C9BCCE2BE2AB0F74617E9638E8383E2 /* SDAsyncBlockOperation.h in Headers */,  
1864 - 09EB95CBDF8D54EB05C26A5196EBBB65 /* SDDeviceHelper.h in Headers */,  
1865 - DE311CA167D40330E2B71F4726A6B789 /* SDDiskCache.h in Headers */,  
1866 - 1367682CED02F22D43F248A0E36CC17B /* SDDisplayLink.h in Headers */,  
1867 - 69FC796803AADF6F7D78E034F759E07A /* SDFileAttributeHelper.h in Headers */,  
1868 - 5BCB8102AFF58BDD96E0C059F9B88BB5 /* SDGraphicsImageRenderer.h in Headers */,  
1869 - C88E97ED465D3973A3D9FD7AE94BDB9A /* SDImageAPNGCoder.h in Headers */,  
1870 - 8860B7C942F4FDAC599E545DEC6E0446 /* SDImageAssetManager.h in Headers */,  
1871 - 9140B89832569466DC295558951FF9A4 /* SDImageCache.h in Headers */,  
1872 - 0CD7B135FD4B84BDB1FB8727A2F85550 /* SDImageCacheConfig.h in Headers */,  
1873 - A26011648EA7CD910788DBBF08C36F32 /* SDImageCacheDefine.h in Headers */,  
1874 - E9B97B2FD84DF4015AABD7E5978A710F /* SDImageCachesManager.h in Headers */,  
1875 - 78A8F86E5996E580294B65E304C65F6A /* SDImageCachesManagerOperation.h in Headers */,  
1876 - 8BE030582BFA5590BC7A1EB1A7E8DDC4 /* SDImageCoder.h in Headers */,  
1877 - 285BB197A61A0553905D872B6E4F6BA1 /* SDImageCoderHelper.h in Headers */,  
1878 - 47CFA5C583D7B3BFD0FBAD1F1A474913 /* SDImageCodersManager.h in Headers */,  
1879 - 5C5058FC446A9C6C4F3FA70C2121A267 /* SDImageFrame.h in Headers */,  
1880 - 12A76A691E704E6EBE12CC888639C31A /* SDImageGIFCoder.h in Headers */,  
1881 - 7829F86094FA530717C4AF09DFA1FCB7 /* SDImageGraphics.h in Headers */,  
1882 - 4F227430C16CAB3FF65A1488229BF46A /* SDImageHEICCoder.h in Headers */,  
1883 - D347FCF56E468483A546E1F611DE081C /* SDImageHEICCoderInternal.h in Headers */,  
1884 - 79140F3DB1DFA9969EF7EA809862461B /* SDImageIOAnimatedCoder.h in Headers */,  
1885 - EA50654643EF702D7F2DD17534459EAB /* SDImageIOAnimatedCoderInternal.h in Headers */,  
1886 - D6FDFE95CEDBD0A41D4E16FDB1599FA9 /* SDImageIOCoder.h in Headers */,  
1887 - 104CBAC9F34C7B8475A096C4B0ACA3A0 /* SDImageLoader.h in Headers */,  
1888 - 858BA6CE212BDE681F7B8EC99CDEA5A2 /* SDImageLoadersManager.h in Headers */,  
1889 - 949BA4CC204D826571EA4E85BA769DB7 /* SDImageTransformer.h in Headers */,  
1890 - 561EAFCC4AA4A4FFA55319ACF371D31C /* SDInternalMacros.h in Headers */,  
1891 - FC4DE0456F37E3F47195E5F969314E0F /* SDMemoryCache.h in Headers */,  
1892 - 183F84DC6D79A0F93AE6C13F2EDDDCD8 /* SDmetamacros.h in Headers */,  
1893 - 5E96F449788433CD16C308CA4C4974AB /* SDWeakProxy.h in Headers */,  
1894 - 1A04C35F3E2D85CFCAFC9934EAC8E033 /* SDWebImage-umbrella.h in Headers */,  
1895 - 64F3EB426774D6F1D593DBFAFFBF6791 /* SDWebImage.h in Headers */,  
1896 - FEF33326D4B5B59DFD0CA1DFAD4001FC /* SDWebImageCacheKeyFilter.h in Headers */,  
1897 - DFE7857272AA4CDEC686248E790174F9 /* SDWebImageCacheSerializer.h in Headers */,  
1898 - 010A21434427A1E7CE25060BA3A66A61 /* SDWebImageCompat.h in Headers */,  
1899 - CBA469E2DD8702DECB634A81F850C516 /* SDWebImageDefine.h in Headers */,  
1900 - 9C39FA3EB2A9462B249432F655FC9AA8 /* SDWebImageDownloader.h in Headers */,  
1901 - A3A38FFF99F8F65D21F6526D4D257230 /* SDWebImageDownloaderConfig.h in Headers */,  
1902 - C854CD2F89E00E88FB1D6669A770DEE0 /* SDWebImageDownloaderDecryptor.h in Headers */,  
1903 - CF1AA8850ED16C5F49B61BC3A9B13DD7 /* SDWebImageDownloaderOperation.h in Headers */,  
1904 - 6B8E9A4250E31C61FFB2FA44B1ED587D /* SDWebImageDownloaderRequestModifier.h in Headers */,  
1905 - 02A4C8ABD5DCC501DE7A6CE19B398E14 /* SDWebImageDownloaderResponseModifier.h in Headers */,  
1906 - 95D70798AF08A9AF6AC0455ABAC50B31 /* SDWebImageError.h in Headers */,  
1907 - B6A52B7697F15B487F846F3DA1CB3896 /* SDWebImageIndicator.h in Headers */,  
1908 - FC5E54109CC0090D7CA4492C6225E5BB /* SDWebImageManager.h in Headers */,  
1909 - CD06DC5FCA424D8A0928068BEB8AF2E5 /* SDWebImageOperation.h in Headers */,  
1910 - DA1F5EB06521252BF63369AFEF914368 /* SDWebImageOptionsProcessor.h in Headers */,  
1911 - B52576B08EFC9D67F218CC2DAC542AF4 /* SDWebImagePrefetcher.h in Headers */,  
1912 - 02B6598C52131C10E3CA344FB49B87FA /* SDWebImageTransition.h in Headers */,  
1913 - 71C055BCF544D98F47CCFB404A9157A0 /* SDWebImageTransitionInternal.h in Headers */,  
1914 - 7320BE37CC5564C9200656A346D16D7C /* UIButton+WebCache.h in Headers */,  
1915 - 41E823881385B837FA086E301CBBB87C /* UIColor+SDHexString.h in Headers */,  
1916 - 758D45C8E630A9B2A29746AFAB257929 /* UIImage+ExtendedCacheData.h in Headers */,  
1917 - 56D4C3BEBAF6D7B57123C4A919EDFC4D /* UIImage+ForceDecode.h in Headers */,  
1918 - A1B62D4B373543D743AC938090EF65F2 /* UIImage+GIF.h in Headers */,  
1919 - 7BDCFF16AD5094651DDF91E007A194A1 /* UIImage+MemoryCacheCost.h in Headers */,  
1920 - CCEF1E548BE78064BE12CC29D9977A28 /* UIImage+Metadata.h in Headers */,  
1921 - 7CB9508A6133F4674F3358339F62CF03 /* UIImage+MultiFormat.h in Headers */,  
1922 - DCDC5264F294AB9A622D368F2F7FA336 /* UIImage+Transform.h in Headers */,  
1923 - 42BB3098DC0E47748C6AD61A10575859 /* UIImageView+HighlightedWebCache.h in Headers */,  
1924 - 9212629910630E2F8888272B38EA81E4 /* UIImageView+WebCache.h in Headers */,  
1925 - 033813F58E3D20FA511AF1B5C3D58FA7 /* UIView+WebCache.h in Headers */,  
1926 - 21C120EDFCE3F1B685833EAE2F088998 /* UIView+WebCacheOperation.h in Headers */, 1793 + 2BB48CC4F4CCB6ED239A7116C1399192 /* NSBezierPath+RoundedCorners.h in Headers */,
  1794 + C8719B604AC23450E05D0E2F5716C8EE /* NSButton+WebCache.h in Headers */,
  1795 + E1A13F65E327E70ED0A0322ED9D4E004 /* NSData+ImageContentType.h in Headers */,
  1796 + 584691DE6F6DC43CCB28E2164DDD65C5 /* NSImage+Compatibility.h in Headers */,
  1797 + 5B6E86C662422D902876E9564F7D0D62 /* SDAnimatedImage.h in Headers */,
  1798 + F9CD37EE6DD796D86FAFCE65C106D553 /* SDAnimatedImageRep.h in Headers */,
  1799 + E807BB2D53EF822DDA0109BEB8F33F4B /* SDAnimatedImageView+WebCache.h in Headers */,
  1800 + F7C220B780BE3FFD43D49EB09A4AA120 /* SDAnimatedImageView.h in Headers */,
  1801 + 56D932D22CCE25078DDC72863C793EB6 /* SDAsyncBlockOperation.h in Headers */,
  1802 + 89AA4B620BAF006802F7FE16331FBB03 /* SDDiskCache.h in Headers */,
  1803 + F4A2A3265060EE0EC36AE153BA2F11F1 /* SDImageAPNGCoder.h in Headers */,
  1804 + 31C885C264ACBC869D0C15774FEEEE91 /* SDImageAssetManager.h in Headers */,
  1805 + CED0ADFAFACBD8EAC91D8FDFAD72CC3D /* SDImageCache.h in Headers */,
  1806 + 4A63641D8EA2784EA3ED6DE31D3EEE7B /* SDImageCacheConfig.h in Headers */,
  1807 + 6E23CCE1DD2C5694FB3733EF5969C2BA /* SDImageCacheDefine.h in Headers */,
  1808 + 1D8DC86B542A5C7B185D576593BFEF08 /* SDImageCachesManager.h in Headers */,
  1809 + 07ECBE230ADCE64A5E565EAC5608FE06 /* SDImageCachesManagerOperation.h in Headers */,
  1810 + 3F1C17F8ED3A2719985697A88379D691 /* SDImageCoder.h in Headers */,
  1811 + 41D2B74D60CECB9A13273FEA70EB0853 /* SDImageCoderHelper.h in Headers */,
  1812 + 765CF9D27014B63D63045C295D14D47F /* SDImageCodersManager.h in Headers */,
  1813 + 4E303A392C14264AF2A7846A47904C0E /* SDImageFrame.h in Headers */,
  1814 + A9FB0B1C38B3DF1982D4D8F8B3B99A4E /* SDImageGIFCoder.h in Headers */,
  1815 + A522F73D14A2CB4DE43E00754C6D504B /* SDImageGraphics.h in Headers */,
  1816 + 0A12ECF7CCD9D053812435656179FE07 /* SDImageHEICCoder.h in Headers */,
  1817 + 3402867F1DCE2F01EE152BE666D15391 /* SDImageHEICCoderInternal.h in Headers */,
  1818 + DB7CB011D38A0CF4CBA6380FF04F0B61 /* SDImageIOAnimatedCoder.h in Headers */,
  1819 + 4FB58F2A627219E59C6002407BA17370 /* SDImageIOAnimatedCoderInternal.h in Headers */,
  1820 + 16EBE72F21A776BA4F5FA1B43DA0D550 /* SDImageIOCoder.h in Headers */,
  1821 + 9F8771C9472203AC8A6B882D32E081FD /* SDImageLoader.h in Headers */,
  1822 + 66E7DB4A06FD62E3319504FA066A159D /* SDImageLoadersManager.h in Headers */,
  1823 + 93EEC3D112C8D5BAF8202BBB7C0F8D40 /* SDImageTransformer.h in Headers */,
  1824 + B241B25BC7903216B219BCFDD5533ED2 /* SDInternalMacros.h in Headers */,
  1825 + 0897E820C9A330AEE938549F3A202047 /* SDMemoryCache.h in Headers */,
  1826 + CB6B765C0485EA0801AC5AD27B988336 /* SDmetamacros.h in Headers */,
  1827 + EC2A8CA5F7249A4197E707E8008C2CAF /* SDWeakProxy.h in Headers */,
  1828 + 78C4797B83602657490272FB5AC87882 /* SDWebImage-umbrella.h in Headers */,
  1829 + 31486EEF2AE7067DC3FB4C41D8B06044 /* SDWebImage.h in Headers */,
  1830 + B1635A0F2A9E883F5F9478F04F5F9B00 /* SDWebImageCacheKeyFilter.h in Headers */,
  1831 + 83A3C38994C1BE0F1B3FDC74FF3EB86E /* SDWebImageCacheSerializer.h in Headers */,
  1832 + B27865F2F8513D2BAF80C119865014B2 /* SDWebImageCompat.h in Headers */,
  1833 + D9B0AE61DB0C28C1A453C57DBAA9894C /* SDWebImageDefine.h in Headers */,
  1834 + FC5F561CA670D699F300DDA4FE2D8314 /* SDWebImageDownloader.h in Headers */,
  1835 + 9A0E1A1BFFD28A2746792BE8D568E3AC /* SDWebImageDownloaderConfig.h in Headers */,
  1836 + 571964893E54957A53F88749EA22E79B /* SDWebImageDownloaderOperation.h in Headers */,
  1837 + CA2A04B40C4584BB62EDF451D4691393 /* SDWebImageDownloaderRequestModifier.h in Headers */,
  1838 + 1A645DC3F75D98F78F685E7E8172E6C4 /* SDWebImageError.h in Headers */,
  1839 + 5BB4DED775A9AB9259E214C9543F2409 /* SDWebImageIndicator.h in Headers */,
  1840 + DBB84BD7F62230F01B7533CF5DB8E2B8 /* SDWebImageManager.h in Headers */,
  1841 + 5D93304CCA386D1CA921179A22788088 /* SDWebImageOperation.h in Headers */,
  1842 + B9EAA2FEBC24879CE426A200D1943850 /* SDWebImageOptionsProcessor.h in Headers */,
  1843 + FA626556DE0DB5DBE98269492EB9D858 /* SDWebImagePrefetcher.h in Headers */,
  1844 + FA1132270226AEC00FD163A760F5BFDD /* SDWebImageTransition.h in Headers */,
  1845 + 972F3D3004A38B2E91B514317462F912 /* UIButton+WebCache.h in Headers */,
  1846 + AA4B92512944686F23ABE5632656872E /* UIColor+HexString.h in Headers */,
  1847 + 130C29DD67F0DACDAA2E6A57DA2422D7 /* UIImage+ForceDecode.h in Headers */,
  1848 + 06012BECF3390F6D209D81ABC29DEE7F /* UIImage+GIF.h in Headers */,
  1849 + D4C9FCF4108BF46522DA445E47524A6A /* UIImage+MemoryCacheCost.h in Headers */,
  1850 + 21C54761AEC4B6FF8F628CF62503856C /* UIImage+Metadata.h in Headers */,
  1851 + 43367367332A88EC53B2BEA287BAA3DD /* UIImage+MultiFormat.h in Headers */,
  1852 + 11631B3F15728204C488D6CF17DA63BF /* UIImage+Transform.h in Headers */,
  1853 + 6B841305B372900E43EAD6CF233EA695 /* UIImageView+HighlightedWebCache.h in Headers */,
  1854 + 06EF6A665BCC7FDFD85BD8ABD55A3959 /* UIImageView+WebCache.h in Headers */,
  1855 + 902A0F8F36BB0CD612BD333AB538FFC0 /* UIView+WebCache.h in Headers */,
  1856 + 768B0529984555456940B969FB3B0C5B /* UIView+WebCacheOperation.h in Headers */,
1927 ); 1857 );
1928 runOnlyForDeploymentPostprocessing = 0; 1858 runOnlyForDeploymentPostprocessing = 0;
1929 }; 1859 };
@@ -2000,12 +1930,12 @@ @@ -2000,12 +1930,12 @@
2000 }; 1930 };
2001 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */ = { 1931 3847153A6E5EEFB86565BA840768F429 /* SDWebImage */ = {
2002 isa = PBXNativeTarget; 1932 isa = PBXNativeTarget;
2003 - buildConfigurationList = AC6F755EB18559BA16F3A7501A53F36A /* Build configuration list for PBXNativeTarget "SDWebImage" */; 1933 + buildConfigurationList = 74451F5A9D7B9165630F6C64F97C5913 /* Build configuration list for PBXNativeTarget "SDWebImage" */;
2004 buildPhases = ( 1934 buildPhases = (
2005 - CB6048343884143F7919689F2F9BEEA2 /* Headers */,  
2006 - 6B33B89724E2F1127E0B67158DDEA242 /* Sources */,  
2007 - 93E1803EFFB49B8B5D9BE9C3FF15E708 /* Frameworks */,  
2008 - D6D70F7565EE0DD3BC12CD0BB42B01A8 /* Resources */, 1935 + CA4065646A60ED133DABD1609AE9B77F /* Headers */,
  1936 + BAD7BFF6FC8F0397DB86C139AF674045 /* Sources */,
  1937 + ECEA1B04AA580BD337B52CB84D1C00A8 /* Frameworks */,
  1938 + 016B131B0F6F68BCBAE6DB01E3F25349 /* Resources */,
2009 ); 1939 );
2010 buildRules = ( 1940 buildRules = (
2011 ); 1941 );
@@ -2068,37 +1998,37 @@ @@ -2068,37 +1998,37 @@
2068 /* End PBXProject section */ 1998 /* End PBXProject section */
2069 1999
2070 /* Begin PBXResourcesBuildPhase section */ 2000 /* Begin PBXResourcesBuildPhase section */
2071 - 04E5F5CBE7ACCFB62968403927984C4D /* Resources */ = { 2001 + 016B131B0F6F68BCBAE6DB01E3F25349 /* Resources */ = {
2072 isa = PBXResourcesBuildPhase; 2002 isa = PBXResourcesBuildPhase;
2073 buildActionMask = 2147483647; 2003 buildActionMask = 2147483647;
2074 files = ( 2004 files = (
2075 - 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */,  
2076 - 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */,  
2077 ); 2005 );
2078 runOnlyForDeploymentPostprocessing = 0; 2006 runOnlyForDeploymentPostprocessing = 0;
2079 }; 2007 };
2080 - 1B5D0ACC6DCF897D7CF6F5B8A6D36155 /* Resources */ = { 2008 + 04E5F5CBE7ACCFB62968403927984C4D /* Resources */ = {
2081 isa = PBXResourcesBuildPhase; 2009 isa = PBXResourcesBuildPhase;
2082 buildActionMask = 2147483647; 2010 buildActionMask = 2147483647;
2083 files = ( 2011 files = (
  2012 + 54B786B4C13CB1CF2A1D5BFA8E223872 /* YBImageBrowser.bundle in Resources */,
  2013 + 8908C0789F324444C029342D5462093E /* YBImageBrowserVideo.bundle in Resources */,
2084 ); 2014 );
2085 runOnlyForDeploymentPostprocessing = 0; 2015 runOnlyForDeploymentPostprocessing = 0;
2086 }; 2016 };
2087 - 419C229B6C5AA15382BC7E9ABB6926B5 /* Resources */ = { 2017 + 1B5D0ACC6DCF897D7CF6F5B8A6D36155 /* Resources */ = {
2088 isa = PBXResourcesBuildPhase; 2018 isa = PBXResourcesBuildPhase;
2089 buildActionMask = 2147483647; 2019 buildActionMask = 2147483647;
2090 files = ( 2020 files = (
2091 ); 2021 );
2092 runOnlyForDeploymentPostprocessing = 0; 2022 runOnlyForDeploymentPostprocessing = 0;
2093 }; 2023 };
2094 - 4C79C6E06B50883D4F5B69556511C7D0 /* Resources */ = { 2024 + 419C229B6C5AA15382BC7E9ABB6926B5 /* Resources */ = {
2095 isa = PBXResourcesBuildPhase; 2025 isa = PBXResourcesBuildPhase;
2096 buildActionMask = 2147483647; 2026 buildActionMask = 2147483647;
2097 files = ( 2027 files = (
2098 ); 2028 );
2099 runOnlyForDeploymentPostprocessing = 0; 2029 runOnlyForDeploymentPostprocessing = 0;
2100 }; 2030 };
2101 - D6D70F7565EE0DD3BC12CD0BB42B01A8 /* Resources */ = { 2031 + 4C79C6E06B50883D4F5B69556511C7D0 /* Resources */ = {
2102 isa = PBXResourcesBuildPhase; 2032 isa = PBXResourcesBuildPhase;
2103 buildActionMask = 2147483647; 2033 buildActionMask = 2147483647;
2104 files = ( 2034 files = (
@@ -2205,79 +2135,69 @@ @@ -2205,79 +2135,69 @@
2205 ); 2135 );
2206 runOnlyForDeploymentPostprocessing = 0; 2136 runOnlyForDeploymentPostprocessing = 0;
2207 }; 2137 };
2208 - 6B33B89724E2F1127E0B67158DDEA242 /* Sources */ = { 2138 + BAD7BFF6FC8F0397DB86C139AF674045 /* Sources */ = {
2209 isa = PBXSourcesBuildPhase; 2139 isa = PBXSourcesBuildPhase;
2210 buildActionMask = 2147483647; 2140 buildActionMask = 2147483647;
2211 files = ( 2141 files = (
2212 - 14C2D66D5EC7A892325562A7830E78D4 /* NSBezierPath+SDRoundedCorners.m in Sources */,  
2213 - EC14B2E8E460DFC2E4EB78A9FC10117C /* NSButton+WebCache.m in Sources */,  
2214 - 64CB4C39356EDD005F3104B820F4B299 /* NSData+ImageContentType.m in Sources */,  
2215 - 3E404F1C1EF06355EBCAD17AAA6A7655 /* NSImage+Compatibility.m in Sources */,  
2216 - 28B63809D42D68F3E44A2012695EC8E8 /* SDAnimatedImage.m in Sources */,  
2217 - 826CC80A43888E4B01B8C0F546CCEB4C /* SDAnimatedImagePlayer.m in Sources */,  
2218 - 27E23C72CC1BAD100D8F8E52A77E0DED /* SDAnimatedImageRep.m in Sources */,  
2219 - 84996105619FE8603B904EBD8CAF4650 /* SDAnimatedImageView+WebCache.m in Sources */,  
2220 - 4458F0F06DDB8ED606F8089B51DE2857 /* SDAnimatedImageView.m in Sources */,  
2221 - 9A63822674C925980BCE24CF9162F224 /* SDAssociatedObject.m in Sources */,  
2222 - D43B9E05CBF3046EB696F0357E263B54 /* SDAsyncBlockOperation.m in Sources */,  
2223 - 292DFB006819CC5C457430933E9DF2CC /* SDDeviceHelper.m in Sources */,  
2224 - DB42064F83C6224213B940B249FC26FF /* SDDiskCache.m in Sources */,  
2225 - 3BAC7E6B28028F929677080D34286C9A /* SDDisplayLink.m in Sources */,  
2226 - FFA5793DBEE9AB3CC5C01F5B6F0B1151 /* SDFileAttributeHelper.m in Sources */,  
2227 - 725C541DA4309D9A2CE04EA1BAC9DB05 /* SDGraphicsImageRenderer.m in Sources */,  
2228 - 477600BAE7223A59EC2D341F7EAA0C5B /* SDImageAPNGCoder.m in Sources */,  
2229 - BD1CC866FEB3E8226394BA640E7FA900 /* SDImageAssetManager.m in Sources */,  
2230 - 198D45399940A52F6AD442B5F96A24A1 /* SDImageCache.m in Sources */,  
2231 - 8A1D68B08A42906461750649F460B63E /* SDImageCacheConfig.m in Sources */,  
2232 - 69979E7EF7E1322AF64B9D04EC5DC4FC /* SDImageCacheDefine.m in Sources */,  
2233 - 3FE529AB19EA206854B9668E508D927B /* SDImageCachesManager.m in Sources */,  
2234 - 14E9103FD1B1EFBE7BA8EE1137810EB2 /* SDImageCachesManagerOperation.m in Sources */,  
2235 - 451775744CDDD8A2805CCC5FAAE96FE6 /* SDImageCoder.m in Sources */,  
2236 - CC1B7B642CBAEA58A27D410B329E5FFD /* SDImageCoderHelper.m in Sources */,  
2237 - BDACD97A89128CDAECEE9F2C66A68041 /* SDImageCodersManager.m in Sources */,  
2238 - D2EDDDAA1E3498604C570DA06526C7BA /* SDImageFrame.m in Sources */,  
2239 - D4F67B56B3A2910031B248E07BC0FF9F /* SDImageGIFCoder.m in Sources */,  
2240 - 44F7C039A4502CB6ABFE93BC1626ADAF /* SDImageGraphics.m in Sources */,  
2241 - 5C11EACACCF1A59EC89E212517D471D2 /* SDImageHEICCoder.m in Sources */,  
2242 - 89A6805309AE158EA70271058AD04DAC /* SDImageIOAnimatedCoder.m in Sources */,  
2243 - 521A2AB2326986DDA7210B222799D82D /* SDImageIOCoder.m in Sources */,  
2244 - B34DA9789249B559F7D135CDC3D4FD77 /* SDImageLoader.m in Sources */,  
2245 - 013FB3424E97C9CBA093B58F3FF74537 /* SDImageLoadersManager.m in Sources */,  
2246 - 6F52C02EB7BEBB28BEF797764940E83D /* SDImageTransformer.m in Sources */,  
2247 - 19BA863C27D0A5BBD664CB1ABDA03238 /* SDInternalMacros.m in Sources */,  
2248 - 8D7206334016EF356DD5C06DB743927A /* SDMemoryCache.m in Sources */,  
2249 - 9B9C593A401B16CA1F27613B33259116 /* SDWeakProxy.m in Sources */,  
2250 - 3526C8C7BD0C5256C819AEB8DE26BC80 /* SDWebImage-dummy.m in Sources */,  
2251 - F045BDBF956B9EE5340F3225336EDAC6 /* SDWebImageCacheKeyFilter.m in Sources */,  
2252 - 46E5579E12DEE8B0B0E8B4BD484303AF /* SDWebImageCacheSerializer.m in Sources */,  
2253 - DD784DFACF8863C7D46B9054B0DD7C42 /* SDWebImageCompat.m in Sources */,  
2254 - E48B7D3309D22470B53A3EB47B6577E7 /* SDWebImageDefine.m in Sources */,  
2255 - AB811350CFBFEC402845394DFB11C5B9 /* SDWebImageDownloader.m in Sources */,  
2256 - C94DE8F907543852C6C5311CE0A2752A /* SDWebImageDownloaderConfig.m in Sources */,  
2257 - 5EC0E24AEBC97BED8827D6824B20AEA3 /* SDWebImageDownloaderDecryptor.m in Sources */,  
2258 - 9058F00D7FB0F44089EA7418C9BE80CD /* SDWebImageDownloaderOperation.m in Sources */,  
2259 - A8F9213841A1696CA4E3BAF5B0836F43 /* SDWebImageDownloaderRequestModifier.m in Sources */,  
2260 - EA5AE4148E9B9228E70EDB7F575D111E /* SDWebImageDownloaderResponseModifier.m in Sources */,  
2261 - C32C3C747D6831244FA97E55D7EBC211 /* SDWebImageError.m in Sources */,  
2262 - C71E6525587D5FFE318A222C092FA6AE /* SDWebImageIndicator.m in Sources */,  
2263 - 92253035C5C62FC047813B453A47011B /* SDWebImageManager.m in Sources */,  
2264 - 461394E1264BA539807AE22B6681037D /* SDWebImageOperation.m in Sources */,  
2265 - CAD57C741FFBC3EBCA19E4F1891E4FDA /* SDWebImageOptionsProcessor.m in Sources */,  
2266 - ED388349310FF50899F3AEB5E2DF0500 /* SDWebImagePrefetcher.m in Sources */,  
2267 - 7A39F3B62173880BC1A1E872B2B0DE19 /* SDWebImageTransition.m in Sources */,  
2268 - C8D1A63DACC1ED208C203641C69EEEF1 /* UIButton+WebCache.m in Sources */,  
2269 - F4BE0CAF1D4BF04D766DB4A25AE4A4C2 /* UIColor+SDHexString.m in Sources */,  
2270 - 3D269D2B6E70D5134F84F471FA897C1D /* UIImage+ExtendedCacheData.m in Sources */,  
2271 - 66794E1E249B57756C75632B1CF7AA7A /* UIImage+ForceDecode.m in Sources */,  
2272 - 34E8A42A4CD18CF55A1C5CBD1F222D71 /* UIImage+GIF.m in Sources */,  
2273 - 8B74D26ECDC0A95EADFD2FE3D6044F45 /* UIImage+MemoryCacheCost.m in Sources */,  
2274 - 90B45AE4B48040DD4DF7B2521A41FA93 /* UIImage+Metadata.m in Sources */,  
2275 - B6B6619A760B666DE47643F684DCF92A /* UIImage+MultiFormat.m in Sources */,  
2276 - 9CBF5A5EFC5491417ACEF9D2D6F604DD /* UIImage+Transform.m in Sources */,  
2277 - 271841B1A02A31A896499240CC233E7A /* UIImageView+HighlightedWebCache.m in Sources */,  
2278 - 580A58EB2DC597145BE726FF15B7B980 /* UIImageView+WebCache.m in Sources */,  
2279 - 16B189FD50EB941DDBCEF3718C511381 /* UIView+WebCache.m in Sources */,  
2280 - 8D6092C5708543E1975D21EF342829A9 /* UIView+WebCacheOperation.m in Sources */, 2142 + 8AAEE8B8F842102CB770F4A2C286AEE0 /* NSBezierPath+RoundedCorners.m in Sources */,
  2143 + 13B7C26AFEF7B9A9BB71D6340836C1D2 /* NSButton+WebCache.m in Sources */,
  2144 + C15872A8795C18D17D7CB78D0D2AF5A9 /* NSData+ImageContentType.m in Sources */,
  2145 + DDA63B6A16CAEC9EDAB8721409ED65EF /* NSImage+Compatibility.m in Sources */,
  2146 + 642B272637AFE100C01566715BE9A90E /* SDAnimatedImage.m in Sources */,
  2147 + AAB78C68578015956BFE8A56A7E02BA7 /* SDAnimatedImageRep.m in Sources */,
  2148 + 8B3648DF3CD6DCE1F23B154EEC9F47BC /* SDAnimatedImageView+WebCache.m in Sources */,
  2149 + 7BE352AC96A490424A89542C59B92D27 /* SDAnimatedImageView.m in Sources */,
  2150 + 6419E84A00BD1CC2D89FBD11DBA95B35 /* SDAsyncBlockOperation.m in Sources */,
  2151 + F855CDFE0F0B48A22F8F0B4CD25E3F2A /* SDDiskCache.m in Sources */,
  2152 + F0AB74AED6D7C008445C01678F59B54D /* SDImageAPNGCoder.m in Sources */,
  2153 + 66ABFE235C4A3EE1284E40B26EC06E50 /* SDImageAssetManager.m in Sources */,
  2154 + CBEDB718B4AB4391588A9347C9F03C4A /* SDImageCache.m in Sources */,
  2155 + 9BE4B66909D27FA2DEE5D7B4DAF83DD5 /* SDImageCacheConfig.m in Sources */,
  2156 + B0D15842F6D9B27F7E656D6A3D715329 /* SDImageCacheDefine.m in Sources */,
  2157 + 43413AE961CEDF130DB347D12953F90F /* SDImageCachesManager.m in Sources */,
  2158 + 720BDB7561A9BF9FAA229655BF6BAACB /* SDImageCachesManagerOperation.m in Sources */,
  2159 + 2987181816CE330B8D8C8011A163DED5 /* SDImageCoder.m in Sources */,
  2160 + E4C4C17E15D7F01D31091341E3B22767 /* SDImageCoderHelper.m in Sources */,
  2161 + 6C9E415ACF9DBBF5276A439ECA83FF41 /* SDImageCodersManager.m in Sources */,
  2162 + B81B452FC4B5B6F7812022013E0050F9 /* SDImageFrame.m in Sources */,
  2163 + C926C81B2AE4D970FF43FA6854DF11B3 /* SDImageGIFCoder.m in Sources */,
  2164 + EBD6DC15D9DA29829CD9A5BA5F2B2A76 /* SDImageGraphics.m in Sources */,
  2165 + 91EC5D1276C67BD151CE0945E99D346B /* SDImageHEICCoder.m in Sources */,
  2166 + 1A696C66B1AD121F4D74F70046E722BE /* SDImageIOAnimatedCoder.m in Sources */,
  2167 + 637C07DAF593E361026C13455CED3356 /* SDImageIOCoder.m in Sources */,
  2168 + 3CBE3496D679F3CAC215C24E124CEF20 /* SDImageLoader.m in Sources */,
  2169 + A93168D1B8FE647836641A8FD0960D3F /* SDImageLoadersManager.m in Sources */,
  2170 + 9F45ED51FB250F999DF9EEE26706306F /* SDImageTransformer.m in Sources */,
  2171 + C50CAA073FFEC5DFDB16A59830E97C95 /* SDInternalMacros.m in Sources */,
  2172 + E159EA4B9CE7CA4EA7CC422F1BB359D0 /* SDMemoryCache.m in Sources */,
  2173 + 69B78205FADBA6F82DD7D8842E744559 /* SDWeakProxy.m in Sources */,
  2174 + 7296ED68E239CF8323284C327EFD34DB /* SDWebImage-dummy.m in Sources */,
  2175 + CF5BBB5AA6B556A33F0FD0CBF107B538 /* SDWebImageCacheKeyFilter.m in Sources */,
  2176 + 773F599C7937832DC3E3C3F5FC41A2BF /* SDWebImageCacheSerializer.m in Sources */,
  2177 + 9AA98747F0FFCB4629345C58F9DFF9A2 /* SDWebImageCompat.m in Sources */,
  2178 + A24ECE056F5DC1A130E45CD9DFDDAE9D /* SDWebImageDefine.m in Sources */,
  2179 + 8095235275C7774DBD0439AEBF02EBF9 /* SDWebImageDownloader.m in Sources */,
  2180 + FD42C3773D4CE1E4ED8BC78369EE4898 /* SDWebImageDownloaderConfig.m in Sources */,
  2181 + 55F81E8A4E05DCEA1424C070100D7A08 /* SDWebImageDownloaderOperation.m in Sources */,
  2182 + 3768A48148C1A559EFA6857AEE21499C /* SDWebImageDownloaderRequestModifier.m in Sources */,
  2183 + 27117846D36D17C67AD6B0BC49819C2E /* SDWebImageError.m in Sources */,
  2184 + 7AA1932AD1AADADB7084C1120E353441 /* SDWebImageIndicator.m in Sources */,
  2185 + 5F7825DA2B38AE6F113742CD8640B6A5 /* SDWebImageManager.m in Sources */,
  2186 + 22AC8168428AA91CEFCC4A1EE18C61A1 /* SDWebImageOptionsProcessor.m in Sources */,
  2187 + E05830BFF728135BC1A3FCD86B02AFED /* SDWebImagePrefetcher.m in Sources */,
  2188 + F981FD60C717579B06FC77EBE5E3ECEE /* SDWebImageTransition.m in Sources */,
  2189 + B2D122DFC079570A5A257B8FEFE1CF4C /* UIButton+WebCache.m in Sources */,
  2190 + 8B36C6BD6BC521D6EBFAA6C06204C8AE /* UIColor+HexString.m in Sources */,
  2191 + 3A717A936244852C7999DF2ACDD3EBA4 /* UIImage+ForceDecode.m in Sources */,
  2192 + 4B010F01929654CD157576546C2CA5E5 /* UIImage+GIF.m in Sources */,
  2193 + 9F69D6D21857F40138D7EF02C9934F61 /* UIImage+MemoryCacheCost.m in Sources */,
  2194 + D84BE358D7B1195BCA3556D7A0003968 /* UIImage+Metadata.m in Sources */,
  2195 + 09291E0580080AF730970F2DE20C6F2F /* UIImage+MultiFormat.m in Sources */,
  2196 + 4A295CDE35C0C3A0C3BDC83BAEEBC8D1 /* UIImage+Transform.m in Sources */,
  2197 + 4E5C5A91108AA66D06C8D32C62266D23 /* UIImageView+HighlightedWebCache.m in Sources */,
  2198 + FB731F3EEA54F44A238FBBFED93D9974 /* UIImageView+WebCache.m in Sources */,
  2199 + 873613A08846E4C11A3D0504EF738DD3 /* UIView+WebCache.m in Sources */,
  2200 + C60409B7C6D34D479F3DC7157194706B /* UIView+WebCacheOperation.m in Sources */,
2281 ); 2201 );
2282 runOnlyForDeploymentPostprocessing = 0; 2202 runOnlyForDeploymentPostprocessing = 0;
2283 }; 2203 };
@@ -2417,9 +2337,9 @@ @@ -2417,9 +2337,9 @@
2417 }; 2337 };
2418 name = Release; 2338 name = Release;
2419 }; 2339 };
2420 - 0E0881E1CF6CB5CB69A59B5DB8946635 /* Release */ = { 2340 + 0D51E6D665830E8C0F6875C54D2AC40B /* Release */ = {
2421 isa = XCBuildConfiguration; 2341 isa = XCBuildConfiguration;
2422 - baseConfigurationReference = 69B6E48A6A7BF7FDA397F18D808442A2 /* SDWebImage.release.xcconfig */; 2342 + baseConfigurationReference = 8B5C5257F6B18F69C086B439A25052BD /* SDWebImage.release.xcconfig */;
2423 buildSettings = { 2343 buildSettings = {
2424 CODE_SIGN_IDENTITY = ""; 2344 CODE_SIGN_IDENTITY = "";
2425 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 2345 "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
@@ -2449,37 +2369,6 @@ @@ -2449,37 +2369,6 @@
2449 }; 2369 };
2450 name = Release; 2370 name = Release;
2451 }; 2371 };
2452 - 10ED6ADB52D8B1FCFB0CF456419C6894 /* Debug */ = {  
2453 - isa = XCBuildConfiguration;  
2454 - baseConfigurationReference = 3937A5FCAE6FD5C9CBFD132D61702EB0 /* SDWebImage.debug.xcconfig */;  
2455 - buildSettings = {  
2456 - CODE_SIGN_IDENTITY = "";  
2457 - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";  
2458 - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";  
2459 - "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";  
2460 - CURRENT_PROJECT_VERSION = 1;  
2461 - DEFINES_MODULE = YES;  
2462 - DYLIB_COMPATIBILITY_VERSION = 1;  
2463 - DYLIB_CURRENT_VERSION = 1;  
2464 - DYLIB_INSTALL_NAME_BASE = "@rpath";  
2465 - GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";  
2466 - INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist";  
2467 - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";  
2468 - IPHONEOS_DEPLOYMENT_TARGET = 8.0;  
2469 - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";  
2470 - MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";  
2471 - PRODUCT_MODULE_NAME = SDWebImage;  
2472 - PRODUCT_NAME = SDWebImage;  
2473 - SDKROOT = iphoneos;  
2474 - SKIP_INSTALL = YES;  
2475 - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";  
2476 - SWIFT_VERSION = 4.0;  
2477 - TARGETED_DEVICE_FAMILY = "1,2";  
2478 - VERSIONING_SYSTEM = "apple-generic";  
2479 - VERSION_INFO_PREFIX = "";  
2480 - };  
2481 - name = Debug;  
2482 - };  
2483 314845AEFA52C16806836E92F522B3DA /* Debug */ = { 2372 314845AEFA52C16806836E92F522B3DA /* Debug */ = {
2484 isa = XCBuildConfiguration; 2373 isa = XCBuildConfiguration;
2485 baseConfigurationReference = D2A8889944F3D4BE1188A99F60D3CA7A /* YYKit.debug.xcconfig */; 2374 baseConfigurationReference = D2A8889944F3D4BE1188A99F60D3CA7A /* YYKit.debug.xcconfig */;
@@ -2730,6 +2619,37 @@ @@ -2730,6 +2619,37 @@
2730 }; 2619 };
2731 name = Debug; 2620 name = Debug;
2732 }; 2621 };
  2622 + BEA610A857E2D8D010A0A55145F83675 /* Debug */ = {
  2623 + isa = XCBuildConfiguration;
  2624 + baseConfigurationReference = 35974735D558DD140EC7A519306676BF /* SDWebImage.debug.xcconfig */;
  2625 + buildSettings = {
  2626 + CODE_SIGN_IDENTITY = "";
  2627 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  2628 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  2629 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  2630 + CURRENT_PROJECT_VERSION = 1;
  2631 + DEFINES_MODULE = YES;
  2632 + DYLIB_COMPATIBILITY_VERSION = 1;
  2633 + DYLIB_CURRENT_VERSION = 1;
  2634 + DYLIB_INSTALL_NAME_BASE = "@rpath";
  2635 + GCC_PREFIX_HEADER = "Target Support Files/SDWebImage/SDWebImage-prefix.pch";
  2636 + INFOPLIST_FILE = "Target Support Files/SDWebImage/SDWebImage-Info.plist";
  2637 + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
  2638 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  2639 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
  2640 + MODULEMAP_FILE = "Target Support Files/SDWebImage/SDWebImage.modulemap";
  2641 + PRODUCT_MODULE_NAME = SDWebImage;
  2642 + PRODUCT_NAME = SDWebImage;
  2643 + SDKROOT = iphoneos;
  2644 + SKIP_INSTALL = YES;
  2645 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
  2646 + SWIFT_VERSION = 4.0;
  2647 + TARGETED_DEVICE_FAMILY = "1,2";
  2648 + VERSIONING_SYSTEM = "apple-generic";
  2649 + VERSION_INFO_PREFIX = "";
  2650 + };
  2651 + name = Debug;
  2652 + };
2733 E795E7E265DDC88CE4D069201368C872 /* Release */ = { 2653 E795E7E265DDC88CE4D069201368C872 /* Release */ = {
2734 isa = XCBuildConfiguration; 2654 isa = XCBuildConfiguration;
2735 baseConfigurationReference = C6E9A2826ED6D4338904F22C672B4751 /* Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig */; 2655 baseConfigurationReference = C6E9A2826ED6D4338904F22C672B4751 /* Pods-YBImageBrowser_DSCnliveShop_Tests.release.xcconfig */;
@@ -2869,11 +2789,11 @@ @@ -2869,11 +2789,11 @@
2869 defaultConfigurationIsVisible = 0; 2789 defaultConfigurationIsVisible = 0;
2870 defaultConfigurationName = Release; 2790 defaultConfigurationName = Release;
2871 }; 2791 };
2872 - AC6F755EB18559BA16F3A7501A53F36A /* Build configuration list for PBXNativeTarget "SDWebImage" */ = { 2792 + 74451F5A9D7B9165630F6C64F97C5913 /* Build configuration list for PBXNativeTarget "SDWebImage" */ = {
2873 isa = XCConfigurationList; 2793 isa = XCConfigurationList;
2874 buildConfigurations = ( 2794 buildConfigurations = (
2875 - 10ED6ADB52D8B1FCFB0CF456419C6894 /* Debug */,  
2876 - 0E0881E1CF6CB5CB69A59B5DB8946635 /* Release */, 2795 + BEA610A857E2D8D010A0A55145F83675 /* Debug */,
  2796 + 0D51E6D665830E8C0F6875C54D2AC40B /* Release */,
2877 ); 2797 );
2878 defaultConfigurationIsVisible = 0; 2798 defaultConfigurationIsVisible = 0;
2879 defaultConfigurationName = Release; 2799 defaultConfigurationName = Release;
Example/Pods/SDWebImage/README.md
@@ -19,9 +19,8 @@ This library provides an async image downloader with cache support. For convenie @@ -19,9 +19,8 @@ This library provides an async image downloader with cache support. For convenie
19 - [x] Categories for `UIImageView`, `UIButton`, `MKAnnotationView` adding web image and cache management 19 - [x] Categories for `UIImageView`, `UIButton`, `MKAnnotationView` adding web image and cache management
20 - [x] An asynchronous image downloader 20 - [x] An asynchronous image downloader
21 - [x] An asynchronous memory + disk image caching with automatic cache expiration handling 21 - [x] An asynchronous memory + disk image caching with automatic cache expiration handling
22 -- [x] A background image decompression to avoid frame rate drop  
23 -- [x] [Progressive image loading](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#progressive-animation) (including animated image, like GIF showing in Web browser)  
24 -- [x] [Thumbnail image decoding](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#thumbnail-decoding-550) to save CPU && Memory for large images 22 +- [x] A background image decompression
  23 +- [x] Progressive image loading (including animated image, like GIF showing in Web browser)
25 - [x] [Extendable image coder](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#custom-coder-420) to support massive image format, like WebP 24 - [x] [Extendable image coder](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#custom-coder-420) to support massive image format, like WebP
26 - [x] [Full-stack solution for animated images](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) which keep a balance between CPU && Memory 25 - [x] [Full-stack solution for animated images](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) which keep a balance between CPU && Memory
27 - [x] [Customizable and composable transformations](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#transformer-50) can be applied to the images right after download 26 - [x] [Customizable and composable transformations](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#transformer-50) can be applied to the images right after download
@@ -37,11 +36,11 @@ This library provides an async image downloader with cache support. For convenie @@ -37,11 +36,11 @@ This library provides an async image downloader with cache support. For convenie
37 36
38 ## Supported Image Formats 37 ## Supported Image Formats
39 38
40 -- Image formats supported by Apple system (JPEG, PNG, TIFF, HEIC, ...), including GIF/APNG/HEIC animation 39 +- Image formats supported by UIImage (JPEG, PNG, HEIC, ...), including GIF/APNG/HEIC animation
41 - WebP format, including animated WebP (use the [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) project) 40 - WebP format, including animated WebP (use the [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) project)
42 - Support extendable coder plugins for new image formats like BPG, AVIF. And vector format like PDF, SVG. See all the list in [Image coder plugin List](https://github.com/SDWebImage/SDWebImage/wiki/Coder-Plugin-List) 41 - Support extendable coder plugins for new image formats like BPG, AVIF. And vector format like PDF, SVG. See all the list in [Image coder plugin List](https://github.com/SDWebImage/SDWebImage/wiki/Coder-Plugin-List)
43 42
44 -## Additional modules and Ecosystem 43 +## Additional modules
45 44
46 In order to keep SDWebImage focused and limited to the core features, but also allow extensibility and custom behaviors, during the 5.0 refactoring we focused on modularizing the library. 45 In order to keep SDWebImage focused and limited to the core features, but also allow extensibility and custom behaviors, during the 5.0 refactoring we focused on modularizing the library.
47 As such, we have moved/built new modules to [SDWebImage org](https://github.com/SDWebImage). 46 As such, we have moved/built new modules to [SDWebImage org](https://github.com/SDWebImage).
@@ -49,47 +48,29 @@ As such, we have moved/built new modules to [SDWebImage org](https://github.com/ @@ -49,47 +48,29 @@ As such, we have moved/built new modules to [SDWebImage org](https://github.com/
49 #### SwiftUI 48 #### SwiftUI
50 [SwiftUI](https://developer.apple.com/xcode/swiftui/) is an innovative UI framework written in Swift to build user interfaces across all Apple platforms. 49 [SwiftUI](https://developer.apple.com/xcode/swiftui/) is an innovative UI framework written in Swift to build user interfaces across all Apple platforms.
51 50
52 -We support SwiftUI by building a brand new framework called [SDWebImageSwiftUI](https://github.com/SDWebImage/SDWebImageSwiftUI), which is built on top of SDWebImage core functions (caching, loading and animation).  
53 -  
54 -The new framework introduce two View structs `WebImage` and `AnimatedImage` for SwiftUI world, `ImageIndicator` modifier for any View, `ImageManager` observable object for data source. Supports iOS 13+/macOS 10.15+/tvOS 13+/watchOS 6+ and Swift 5.1. Have a nice try and provide feedback! 51 +We support SwiftUI by building with the functions (caching, loading and animation) powered by SDWebImage. You can have a try with [SDWebImageSwiftUI](https://github.com/SDWebImage/SDWebImageSwiftUI)
55 52
56 #### Coders for additional image formats 53 #### Coders for additional image formats
57 -- [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) - coder for WebP format. Based on [libwebp](https://chromium.googlesource.com/webm/libwebp)  
58 -- [SDWebImageHEIFCoder](https://github.com/SDWebImage/SDWebImageHEIFCoder) - coder for HEIF format, iOS 8+/macOS 10.10+ support. Based on [libheif](https://github.com/strukturag/libheif)  
59 -- [SDWebImageBPGCoder](https://github.com/SDWebImage/SDWebImageBPGCoder) - coder for BPG format. Based on [libbpg](https://github.com/mirrorer/libbpg)  
60 -- [SDWebImageFLIFCoder](https://github.com/SDWebImage/SDWebImageFLIFCoder) - coder for FLIF format. Based on [libflif](https://github.com/FLIF-hub/FLIF)  
61 -- [SDWebImageAVIFCoder](https://github.com/SDWebImage/SDWebImageAVIFCoder) - coder for AVIF (AV1-based) format. Based on [libavif](https://github.com/AOMediaCodec/libavif)  
62 -- [SDWebImagePDFCoder](https://github.com/SDWebImage/SDWebImagePDFCoder) - coder for PDF vector format. Using built-in frameworks  
63 -- [SDWebImageSVGCoder](https://github.com/SDWebImage/SDWebImageSVGCoder) - coder for SVG vector format. Using built-in frameworks  
64 -- [SDWebImageLottieCoder](https://github.com/SDWebImage/SDWebImageLottieCoder) - coder for Lottie animation format. Based on [rlottie](https://github.com/Samsung/rlottie) 54 +- [SDWebImageWebPCoder](https://github.com/SDWebImage/SDWebImageWebPCoder) - coder for WebP image format. Based on [libwebp](https://chromium.googlesource.com/webm/libwebp)
  55 +- [SDWebImageHEIFCoder](https://github.com/SDWebImage/SDWebImageHEIFCoder) - coder to support HEIF image without Apple's `Image/IO framework`, iOS 8+/macOS 10.10+ support.
  56 +- [SDWebImageBPGCoder](https://github.com/SDWebImage/SDWebImageBPGCoder) - coder for BPG format
  57 +- [SDWebImageFLIFCoder](https://github.com/SDWebImage/SDWebImageFLIFCoder) - coder for FLIF format
  58 +- [SDWebImageAVIFCoder](https://github.com/SDWebImage/SDWebImageAVIFCoder) - coder for AVIF (AV1-based) format
65 - and more from community! 59 - and more from community!
66 60
67 -#### Custom Caches  
68 -- [SDWebImageYYPlugin](https://github.com/SDWebImage/SDWebImageYYPlugin) - plugin to support caching images with [YYCache](https://github.com/ibireme/YYCache)  
69 -- [SDWebImagePINPlugin](https://github.com/SDWebImage/SDWebImagePINPlugin) - plugin to support caching images with [PINCache](https://github.com/pinterest/PINCache)  
70 -  
71 -#### Custom Loaders 61 +#### Loaders
72 - [SDWebImagePhotosPlugin](https://github.com/SDWebImage/SDWebImagePhotosPlugin) - plugin to support loading images from Photos (using `Photos.framework`) 62 - [SDWebImagePhotosPlugin](https://github.com/SDWebImage/SDWebImagePhotosPlugin) - plugin to support loading images from Photos (using `Photos.framework`)
73 -- [SDWebImageLinkPlugin](https://github.com/SDWebImage/SDWebImageLinkPlugin) - plugin to support loading images from rich link url, as well as `LPLinkView` (using `LinkPresentation.framework`)  
74 63
75 #### Integration with 3rd party libraries 64 #### Integration with 3rd party libraries
76 -- [SDWebImageLottiePlugin](https://github.com/SDWebImage/SDWebImageLottiePlugin) - plugin to support [Lottie-iOS](https://github.com/airbnb/lottie-ios), vector animation rending with remote JSON files  
77 -- [SDWebImageSVGKitPlugin](https://github.com/SDWebImage/SDWebImageLottiePlugin) - plugin to support [SVGKit](https://github.com/SVGKit/SVGKit), SVG rendering using Core Animation, iOS 8+/macOS 10.10+ support  
78 - [SDWebImageFLPlugin](https://github.com/SDWebImage/SDWebImageFLPlugin) - plugin to support [FLAnimatedImage](https://github.com/Flipboard/FLAnimatedImage) as the engine for animated GIFs 65 - [SDWebImageFLPlugin](https://github.com/SDWebImage/SDWebImageFLPlugin) - plugin to support [FLAnimatedImage](https://github.com/Flipboard/FLAnimatedImage) as the engine for animated GIFs
79 - [SDWebImageYYPlugin](https://github.com/SDWebImage/SDWebImageYYPlugin) - plugin to integrate [YYImage](https://github.com/ibireme/YYImage) & [YYCache](https://github.com/ibireme/YYCache) for image rendering & caching 66 - [SDWebImageYYPlugin](https://github.com/SDWebImage/SDWebImageYYPlugin) - plugin to integrate [YYImage](https://github.com/ibireme/YYImage) & [YYCache](https://github.com/ibireme/YYCache) for image rendering & caching
80 67
81 -#### Community driven popular libraries  
82 -- [FirebaseUI](https://github.com/firebase/FirebaseUI-iOS) - Firebase Storage binding for query images, based on SDWebImage loader system  
83 -- [react-native-fast-image](https://github.com/DylanVann/react-native-fast-image) - React Native fast image component, based on SDWebImage Animated Image solution  
84 -- [flutter_image_compress](https://github.com/OpenFlutter/flutter_image_compress) - Flutter compresses image plugin, based on SDWebImage WebP coder plugin  
85 -  
86 #### Make our lives easier 68 #### Make our lives easier
87 - [libwebp-Xcode](https://github.com/SDWebImage/libwebp-Xcode) - A wrapper for [libwebp](https://chromium.googlesource.com/webm/libwebp) + an Xcode project. 69 - [libwebp-Xcode](https://github.com/SDWebImage/libwebp-Xcode) - A wrapper for [libwebp](https://chromium.googlesource.com/webm/libwebp) + an Xcode project.
88 - [libheif-Xcode](https://github.com/SDWebImage/libheif-Xcode) - A wrapper for [libheif](https://github.com/strukturag/libheif) + an Xcode project. 70 - [libheif-Xcode](https://github.com/SDWebImage/libheif-Xcode) - A wrapper for [libheif](https://github.com/strukturag/libheif) + an Xcode project.
89 -- [libavif-Xcode](https://github.com/SDWebImage/libavif-Xcode) - A wrapper for [libavif](https://github.com/AOMediaCodec/libavif) + an Xcode project.  
90 -- and more third-party C/C++ image codec libraries with CocoaPods/Carthage/SwiftPM support. 71 +- and more third-party C/C++ image codec libraries with CocoaPods/Carthage support.
91 72
92 -You can use those directly, or create similar components of your own, by using the customizable architecture of SDWebImage. 73 +You can use those directly, or create similar components of your own.
93 74
94 ## Requirements 75 ## Requirements
95 76
@@ -127,13 +108,11 @@ You can use those directly, or create similar components of your own, by using t @@ -127,13 +108,11 @@ You can use those directly, or create similar components of your own, by using t
127 - If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/sdwebimage). 108 - If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/sdwebimage).
128 - If you **found a bug**, open an issue. 109 - If you **found a bug**, open an issue.
129 - If you **have a feature request**, open an issue. 110 - If you **have a feature request**, open an issue.
130 -- If you **need IRC channel**, use [Gitter](https://gitter.im/SDWebImage/community).  
131 111
132 ## Contribution 112 ## Contribution
133 113
134 - If you **want to contribute**, read the [Contributing Guide](https://github.com/SDWebImage/SDWebImage/blob/master/.github/CONTRIBUTING.md) 114 - If you **want to contribute**, read the [Contributing Guide](https://github.com/SDWebImage/SDWebImage/blob/master/.github/CONTRIBUTING.md)
135 - For **development contribution guide**, read the [How-To-Contribute](https://github.com/SDWebImage/SDWebImage/wiki/How-to-Contribute) 115 - For **development contribution guide**, read the [How-To-Contribute](https://github.com/SDWebImage/SDWebImage/wiki/How-to-Contribute)
136 -- For **understanding code architecture**, read the [Code Architecture Analysis](https://github.com/SDWebImage/SDWebImage/wiki/5.6-Code-Architecture-Analysis)  
137 116
138 ## How To Use 117 ## How To Use
139 118
@@ -159,30 +138,7 @@ imageView.sd_setImage(with: URL(string: &quot;http://www.domain.com/path/to/image.jpg @@ -159,30 +138,7 @@ imageView.sd_setImage(with: URL(string: &quot;http://www.domain.com/path/to/image.jpg
159 ## Animated Images (GIF) support 138 ## Animated Images (GIF) support
160 139
161 In 5.0, we introduced a brand new mechanism for supporting animated images. This includes animated image loading, rendering, decoding, and also supports customizations (for advanced users). 140 In 5.0, we introduced a brand new mechanism for supporting animated images. This includes animated image loading, rendering, decoding, and also supports customizations (for advanced users).
162 -  
163 -This animated image solution is available for `iOS`/`tvOS`/`macOS`. The `SDAnimatedImage` is subclass of `UIImage/NSImage`, and `SDAnimatedImageView` is subclass of `UIImageView/NSImageView`, to make them compatible with the common frameworks APIs.  
164 -  
165 -The `SDAnimatedImageView` supports the familiar image loading category methods, works like drop-in replacement for `UIImageView/NSImageView`.  
166 -  
167 -Don't have UIView (like WatchKit or CALayer)? you can still use `SDAnimatedPlayer` the player engine for advanced playback and rendering.  
168 -  
169 -See [Animated Image](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) for more detailed information.  
170 -  
171 -* Objective-C  
172 -  
173 -```objective-c  
174 -SDAnimatedImageView *imageView = [SDAnimatedImageView new];  
175 -SDAnimatedImage *animatedImage = [SDAnimatedImage imageNamed:@"image.gif"];  
176 -imageView.image = animatedImage;  
177 -```  
178 -  
179 -* Swift  
180 -  
181 -```swift  
182 -let imageView = SDAnimatedImageView()  
183 -let animatedImage = SDAnimatedImage(named: "image.gif")  
184 -imageView.image = animatedImage  
185 -``` 141 +This animated image solution is available for `iOS`/`tvOS`/`macOS`. The `SDAnimatedImage` is subclass of `UIImage/NSImage`, and `SDAnimatedImageView` is subclass of `UIImageView/NSImageView`, to make them compatible with the common frameworks APIs. See [Animated Image](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-image-50) for more detailed information.
186 142
187 #### FLAnimatedImage integration has its own dedicated repo 143 #### FLAnimatedImage integration has its own dedicated repo
188 In order to clean up things and make our core project do less things, we decided that the `FLAnimatedImage` integration does not belong here. From 5.0, this will still be available, but under a dedicated repo [SDWebImageFLPlugin](https://github.com/SDWebImage/SDWebImageFLPlugin). 144 In order to clean up things and make our core project do less things, we decided that the `FLAnimatedImage` integration does not belong here. From 5.0, this will still be available, but under a dedicated repo [SDWebImageFLPlugin](https://github.com/SDWebImage/SDWebImageFLPlugin).
@@ -284,12 +240,6 @@ In the source files where you need to use the library, import the umbrella heade @@ -284,12 +240,6 @@ In the source files where you need to use the library, import the umbrella heade
284 #import <SDWebImage/SDWebImage.h> 240 #import <SDWebImage/SDWebImage.h>
285 ``` 241 ```
286 242
287 -It's also recommend to use the module import syntax, available for CocoaPods(enable `modular_headers`)/Carthage/SwiftPM.  
288 -  
289 -```objecitivec  
290 -@import SDWebImage;  
291 -```  
292 -  
293 ### Build Project 243 ### Build Project
294 244
295 At this point your workspace should build without error. If you are having problem, post to the Issue and the 245 At this point your workspace should build without error. If you are having problem, post to the Issue and the
@@ -317,8 +267,6 @@ All source code is licensed under the [MIT License](https://github.com/SDWebImag @@ -317,8 +267,6 @@ All source code is licensed under the [MIT License](https://github.com/SDWebImag
317 267
318 ## Architecture 268 ## Architecture
319 269
320 -To learn about SDWebImage's architecture design for contribution, read [The Core of SDWebImage v5.6 Architecture](https://github.com/SDWebImage/SDWebImage/wiki/5.6-Code-Architecture-Analysis). Thanks @looseyi for the post and translation.  
321 -  
322 #### High Level Diagram 270 #### High Level Diagram
323 <p align="center" > 271 <p align="center" >
324 <img src="https://raw.githubusercontent.com/SDWebImage/SDWebImage/master/Docs/Diagrams/SDWebImageHighLevelDiagram.jpeg" title="SDWebImage high level diagram"> 272 <img src="https://raw.githubusercontent.com/SDWebImage/SDWebImage/master/Docs/Diagrams/SDWebImageHighLevelDiagram.jpeg" title="SDWebImage high level diagram">
Example/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.h
@@ -23,8 +23,6 @@ static const SDImageFormat SDImageFormatTIFF = 3; @@ -23,8 +23,6 @@ static const SDImageFormat SDImageFormatTIFF = 3;
23 static const SDImageFormat SDImageFormatWebP = 4; 23 static const SDImageFormat SDImageFormatWebP = 4;
24 static const SDImageFormat SDImageFormatHEIC = 5; 24 static const SDImageFormat SDImageFormatHEIC = 5;
25 static const SDImageFormat SDImageFormatHEIF = 6; 25 static const SDImageFormat SDImageFormatHEIF = 6;
26 -static const SDImageFormat SDImageFormatPDF = 7;  
27 -static const SDImageFormat SDImageFormatSVG = 8;  
28 26
29 /** 27 /**
30 NSData category about the image content type and UTI. 28 NSData category about the image content type and UTI.
@@ -45,16 +43,14 @@ static const SDImageFormat SDImageFormatSVG = 8; @@ -45,16 +43,14 @@ static const SDImageFormat SDImageFormatSVG = 8;
45 * 43 *
46 * @param format Format as SDImageFormat 44 * @param format Format as SDImageFormat
47 * @return The UTType as CFStringRef 45 * @return The UTType as CFStringRef
48 - * @note For unknown format, `kUTTypeImage` abstract type will return  
49 */ 46 */
50 + (nonnull CFStringRef)sd_UTTypeFromImageFormat:(SDImageFormat)format CF_RETURNS_NOT_RETAINED NS_SWIFT_NAME(sd_UTType(from:)); 47 + (nonnull CFStringRef)sd_UTTypeFromImageFormat:(SDImageFormat)format CF_RETURNS_NOT_RETAINED NS_SWIFT_NAME(sd_UTType(from:));
51 48
52 /** 49 /**
53 - * Convert UTType to SDImageFormat 50 + * Convert UTTyppe to SDImageFormat
54 * 51 *
55 * @param uttype The UTType as CFStringRef 52 * @param uttype The UTType as CFStringRef
56 * @return The Format as SDImageFormat 53 * @return The Format as SDImageFormat
57 - * @note For unknown type, `SDImageFormatUndefined` will return  
58 */ 54 */
59 + (SDImageFormat)sd_imageFormatFromUTType:(nonnull CFStringRef)uttype; 55 + (SDImageFormat)sd_imageFormatFromUTType:(nonnull CFStringRef)uttype;
60 56
Example/Pods/SDWebImage/SDWebImage/Core/NSData+ImageContentType.m
@@ -17,7 +17,6 @@ @@ -17,7 +17,6 @@
17 17
18 // Currently Image/IO does not support WebP 18 // Currently Image/IO does not support WebP
19 #define kSDUTTypeWebP ((__bridge CFStringRef)@"public.webp") 19 #define kSDUTTypeWebP ((__bridge CFStringRef)@"public.webp")
20 -#define kSVGTagEnd @"</svg>"  
21 20
22 @implementation NSData (ImageContentType) 21 @implementation NSData (ImageContentType)
23 22
@@ -66,24 +65,6 @@ @@ -66,24 +65,6 @@
66 } 65 }
67 break; 66 break;
68 } 67 }
69 - case 0x25: {  
70 - if (data.length >= 4) {  
71 - //%PDF  
72 - NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(1, 3)] encoding:NSASCIIStringEncoding];  
73 - if ([testString isEqualToString:@"PDF"]) {  
74 - return SDImageFormatPDF;  
75 - }  
76 - }  
77 - }  
78 - case 0x3C: {  
79 - if (data.length > 100) {  
80 - // Check end with SVG tag  
81 - NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(data.length - 100, 100)] encoding:NSASCIIStringEncoding];  
82 - if ([testString containsString:kSVGTagEnd]) {  
83 - return SDImageFormatSVG;  
84 - }  
85 - }  
86 - }  
87 } 68 }
88 return SDImageFormatUndefined; 69 return SDImageFormatUndefined;
89 } 70 }
@@ -112,15 +93,9 @@ @@ -112,15 +93,9 @@
112 case SDImageFormatHEIF: 93 case SDImageFormatHEIF:
113 UTType = kSDUTTypeHEIF; 94 UTType = kSDUTTypeHEIF;
114 break; 95 break;
115 - case SDImageFormatPDF:  
116 - UTType = kUTTypePDF;  
117 - break;  
118 - case SDImageFormatSVG:  
119 - UTType = kUTTypeScalableVectorGraphics;  
120 - break;  
121 default: 96 default:
122 - // default is kUTTypeImage abstract type  
123 - UTType = kUTTypeImage; 97 + // default is kUTTypePNG
  98 + UTType = kUTTypePNG;
124 break; 99 break;
125 } 100 }
126 return UTType; 101 return UTType;
@@ -145,10 +120,6 @@ @@ -145,10 +120,6 @@
145 imageFormat = SDImageFormatHEIC; 120 imageFormat = SDImageFormatHEIC;
146 } else if (CFStringCompare(uttype, kSDUTTypeHEIF, 0) == kCFCompareEqualTo) { 121 } else if (CFStringCompare(uttype, kSDUTTypeHEIF, 0) == kCFCompareEqualTo) {
147 imageFormat = SDImageFormatHEIF; 122 imageFormat = SDImageFormatHEIF;
148 - } else if (CFStringCompare(uttype, kUTTypePDF, 0) == kCFCompareEqualTo) {  
149 - imageFormat = SDImageFormatPDF;  
150 - } else if (CFStringCompare(uttype, kUTTypeScalableVectorGraphics, 0) == kCFCompareEqualTo) {  
151 - imageFormat = SDImageFormatSVG;  
152 } else { 123 } else {
153 imageFormat = SDImageFormatUndefined; 124 imageFormat = SDImageFormatUndefined;
154 } 125 }
Example/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.h
@@ -20,10 +20,6 @@ The underlying Core Graphics image object. This will actually use `CGImageForPro @@ -20,10 +20,6 @@ The underlying Core Graphics image object. This will actually use `CGImageForPro
20 */ 20 */
21 @property (nonatomic, readonly, nullable) CGImageRef CGImage; 21 @property (nonatomic, readonly, nullable) CGImageRef CGImage;
22 /** 22 /**
23 - The underlying Core Image data. This will actually use `bestRepresentationForRect` with the image size to find the `NSCIImageRep`.  
24 - */  
25 -@property (nonatomic, readonly, nullable) CIImage *CIImage;  
26 -/**  
27 The scale factor of the image. This wil actually use `bestRepresentationForRect` with image size and pixel size to calculate the scale factor. If failed, use the default value 1.0. Should be greater than or equal to 1.0. 23 The scale factor of the image. This wil actually use `bestRepresentationForRect` with image size and pixel size to calculate the scale factor. If failed, use the default value 1.0. Should be greater than or equal to 1.0.
28 */ 24 */
29 @property (nonatomic, readonly) CGFloat scale; 25 @property (nonatomic, readonly) CGFloat scale;
@@ -43,16 +39,6 @@ The underlying Core Graphics image object. This will actually use `CGImageForPro @@ -43,16 +39,6 @@ The underlying Core Graphics image object. This will actually use `CGImageForPro
43 - (nonnull instancetype)initWithCGImage:(nonnull CGImageRef)cgImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation; 39 - (nonnull instancetype)initWithCGImage:(nonnull CGImageRef)cgImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation;
44 40
45 /** 41 /**
46 - Initializes and returns an image object with the specified Core Image object. The representation is `NSCIImageRep`.  
47 -  
48 - @param ciImage A Core Image image object  
49 - @param scale The image scale factor  
50 - @param orientation The orientation of the image data  
51 - @return The image object  
52 - */  
53 -- (nonnull instancetype)initWithCIImage:(nonnull CIImage *)ciImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation;  
54 -  
55 -/**  
56 Returns an image object with the scale factor. The representation is created from the image data. 42 Returns an image object with the scale factor. The representation is created from the image data.
57 @note The difference between these this and `initWithData:` is that `initWithData:` will always use `backingScaleFactor` as scale factor. 43 @note The difference between these this and `initWithData:` is that `initWithData:` will always use `backingScaleFactor` as scale factor.
58 44
Example/Pods/SDWebImage/SDWebImage/Core/NSImage+Compatibility.m
@@ -20,15 +20,6 @@ @@ -20,15 +20,6 @@
20 return cgImage; 20 return cgImage;
21 } 21 }
22 22
23 -- (nullable CIImage *)CIImage {  
24 - NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height);  
25 - NSImageRep *imageRep = [self bestRepresentationForRect:imageRect context:nil hints:nil];  
26 - if (![imageRep isKindOfClass:NSCIImageRep.class]) {  
27 - return nil;  
28 - }  
29 - return ((NSCIImageRep *)imageRep).CIImage;  
30 -}  
31 -  
32 - (CGFloat)scale { 23 - (CGFloat)scale {
33 CGFloat scale = 1; 24 CGFloat scale = 1;
34 NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height); 25 NSRect imageRect = NSMakeRect(0, 0, self.size.width, self.size.height);
@@ -74,28 +65,6 @@ @@ -74,28 +65,6 @@
74 return self; 65 return self;
75 } 66 }
76 67
77 -- (instancetype)initWithCIImage:(nonnull CIImage *)ciImage scale:(CGFloat)scale orientation:(CGImagePropertyOrientation)orientation {  
78 - NSCIImageRep *imageRep;  
79 - if (orientation != kCGImagePropertyOrientationUp) {  
80 - CIImage *rotatedCIImage = [ciImage imageByApplyingOrientation:orientation];  
81 - imageRep = [[NSCIImageRep alloc] initWithCIImage:rotatedCIImage];  
82 - } else {  
83 - imageRep = [[NSCIImageRep alloc] initWithCIImage:ciImage];  
84 - }  
85 - if (scale < 1) {  
86 - scale = 1;  
87 - }  
88 - CGFloat pixelWidth = imageRep.pixelsWide;  
89 - CGFloat pixelHeight = imageRep.pixelsHigh;  
90 - NSSize size = NSMakeSize(pixelWidth / scale, pixelHeight / scale);  
91 - self = [self initWithSize:size];  
92 - if (self) {  
93 - imageRep.size = size;  
94 - [self addRepresentation:imageRep];  
95 - }  
96 - return self;  
97 -}  
98 -  
99 - (instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale { 68 - (instancetype)initWithData:(nonnull NSData *)data scale:(CGFloat)scale {
100 NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithData:data]; 69 NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithData:data];
101 if (!imageRep) { 70 if (!imageRep) {
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.h
@@ -57,12 +57,6 @@ @@ -57,12 +57,6 @@
57 */ 57 */
58 @property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded; 58 @property (nonatomic, assign, readonly, getter=isAllFramesLoaded) BOOL allFramesLoaded;
59 59
60 -/**  
61 - Return the animated image coder if the image is created with `initWithAnimatedCoder:scale:` method.  
62 - @note We use this with animated coder which conforms to `SDProgressiveImageCoder` for progressive animation decoding.  
63 - */  
64 -@property (nonatomic, strong, readonly, nullable) id<SDAnimatedImageCoder> animatedCoder;  
65 -  
66 @end 60 @end
67 61
68 /** 62 /**
@@ -72,7 +66,6 @@ @@ -72,7 +66,6 @@
72 66
73 // This class override these methods from UIImage(NSImage), and it supports NSSecureCoding. 67 // This class override these methods from UIImage(NSImage), and it supports NSSecureCoding.
74 // You should use these methods to create a new animated image. Use other methods just call super instead. 68 // You should use these methods to create a new animated image. Use other methods just call super instead.
75 -// Pay attention, when the animated image frame count <= 1, all the `SDAnimatedImageProvider` protocol methods will return nil or 0 value, you'd better check the frame count before usage and keep fallback.  
76 + (nullable instancetype)imageNamed:(nonnull NSString *)name; // Cache in memory, no Asset Catalog support 69 + (nullable instancetype)imageNamed:(nonnull NSString *)name; // Cache in memory, no Asset Catalog support
77 #if __has_include(<UIKit/UITraitCollection.h>) 70 #if __has_include(<UIKit/UITraitCollection.h>)
78 + (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; // Cache in memory, no Asset Catalog support 71 + (nullable instancetype)imageNamed:(nonnull NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection; // Cache in memory, no Asset Catalog support
@@ -101,11 +94,11 @@ @@ -101,11 +94,11 @@
101 The scale factor of the image. 94 The scale factor of the image.
102 95
103 @note For UIKit, this just call super instead. 96 @note For UIKit, this just call super instead.
104 - @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We process the scale like UIKit. This will actually be calculated from image size and pixel size. 97 + @note For AppKit, `NSImage` can contains multiple image representations with different scales. However, this class does not do that from the design. We processs the scale like UIKit. This wil actually be calculated from image size and pixel size.
105 */ 98 */
106 @property (nonatomic, readonly) CGFloat scale; 99 @property (nonatomic, readonly) CGFloat scale;
107 100
108 -// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the description in `SDAnimatedImage` protocol. 101 +// By default, animated image frames are returned by decoding just in time without keeping into memory. But you can choose to preload them into memory as well, See the decsription in `SDAnimatedImage` protocol.
109 // After preloaded, there is no huge difference on performance between this and UIImage's `animatedImageWithImages:duration:`. But UIImage's animation have some issues such like blanking and pausing during segue when using in `UIImageView`. It's recommend to use only if need. 102 // After preloaded, there is no huge difference on performance between this and UIImage's `animatedImageWithImages:duration:`. But UIImage's animation have some issues such like blanking and pausing during segue when using in `UIImageView`. It's recommend to use only if need.
110 - (void)preloadAllFrames; 103 - (void)preloadAllFrames;
111 - (void)unloadAllFrames; 104 - (void)unloadAllFrames;
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImage.m
@@ -12,9 +12,6 @@ @@ -12,9 +12,6 @@
12 #import "SDImageCodersManager.h" 12 #import "SDImageCodersManager.h"
13 #import "SDImageFrame.h" 13 #import "SDImageFrame.h"
14 #import "UIImage+MemoryCacheCost.h" 14 #import "UIImage+MemoryCacheCost.h"
15 -#import "UIImage+Metadata.h"  
16 -#import "UIImage+MultiFormat.h"  
17 -#import "SDImageCoderHelper.h"  
18 #import "SDImageAssetManager.h" 15 #import "SDImageAssetManager.h"
19 #import "objc/runtime.h" 16 #import "objc/runtime.h"
20 17
@@ -35,7 +32,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -35,7 +32,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
35 32
36 @interface SDAnimatedImage () 33 @interface SDAnimatedImage ()
37 34
38 -@property (nonatomic, strong) id<SDAnimatedImageCoder> animatedCoder; 35 +@property (nonatomic, strong) id<SDAnimatedImageCoder> coder;
39 @property (nonatomic, assign, readwrite) SDImageFormat animatedImageFormat; 36 @property (nonatomic, assign, readwrite) SDImageFormat animatedImageFormat;
40 @property (atomic, copy) NSArray<SDImageFrame *> *loadedAnimatedImageFrames; // Mark as atomic to keep thread-safe 37 @property (atomic, copy) NSArray<SDImageFrame *> *loadedAnimatedImageFrames; // Mark as atomic to keep thread-safe
41 @property (nonatomic, assign, getter=isAllFramesLoaded) BOOL allFramesLoaded; 38 @property (nonatomic, assign, getter=isAllFramesLoaded) BOOL allFramesLoaded;
@@ -159,10 +156,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -159,10 +156,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
159 self = [super initWithCGImage:image.CGImage scale:MAX(scale, 1) orientation:image.imageOrientation]; 156 self = [super initWithCGImage:image.CGImage scale:MAX(scale, 1) orientation:image.imageOrientation];
160 #endif 157 #endif
161 if (self) { 158 if (self) {
162 - // Only keep the animated coder if frame count > 1, save RAM usage for non-animated image format (APNG/WebP)  
163 - if (animatedCoder.animatedImageFrameCount > 1) {  
164 - _animatedCoder = animatedCoder;  
165 - } 159 + _coder = animatedCoder;
166 NSData *data = [animatedCoder animatedImageData]; 160 NSData *data = [animatedCoder animatedImageData];
167 SDImageFormat format = [NSData sd_imageFormatForImageData:data]; 161 SDImageFormat format = [NSData sd_imageFormatForImageData:data];
168 _animatedImageFormat = format; 162 _animatedImageFormat = format;
@@ -172,9 +166,6 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -172,9 +166,6 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
172 166
173 #pragma mark - Preload 167 #pragma mark - Preload
174 - (void)preloadAllFrames { 168 - (void)preloadAllFrames {
175 - if (!_animatedCoder) {  
176 - return;  
177 - }  
178 if (!self.isAllFramesLoaded) { 169 if (!self.isAllFramesLoaded) {
179 NSMutableArray<SDImageFrame *> *frames = [NSMutableArray arrayWithCapacity:self.animatedImageFrameCount]; 170 NSMutableArray<SDImageFrame *> *frames = [NSMutableArray arrayWithCapacity:self.animatedImageFrameCount];
180 for (size_t i = 0; i < self.animatedImageFrameCount; i++) { 171 for (size_t i = 0; i < self.animatedImageFrameCount; i++) {
@@ -189,9 +180,6 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -189,9 +180,6 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
189 } 180 }
190 181
191 - (void)unloadAllFrames { 182 - (void)unloadAllFrames {
192 - if (!_animatedCoder) {  
193 - return;  
194 - }  
195 if (self.isAllFramesLoaded) { 183 if (self.isAllFramesLoaded) {
196 self.loadedAnimatedImageFrames = nil; 184 self.loadedAnimatedImageFrames = nil;
197 self.allFramesLoaded = NO; 185 self.allFramesLoaded = NO;
@@ -202,12 +190,11 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -202,12 +190,11 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
202 - (instancetype)initWithCoder:(NSCoder *)aDecoder { 190 - (instancetype)initWithCoder:(NSCoder *)aDecoder {
203 self = [super initWithCoder:aDecoder]; 191 self = [super initWithCoder:aDecoder];
204 if (self) { 192 if (self) {
205 - _animatedImageFormat = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(animatedImageFormat))];  
206 NSData *animatedImageData = [aDecoder decodeObjectOfClass:[NSData class] forKey:NSStringFromSelector(@selector(animatedImageData))]; 193 NSData *animatedImageData = [aDecoder decodeObjectOfClass:[NSData class] forKey:NSStringFromSelector(@selector(animatedImageData))];
  194 + CGFloat scale = self.scale;
207 if (!animatedImageData) { 195 if (!animatedImageData) {
208 return self; 196 return self;
209 } 197 }
210 - CGFloat scale = self.scale;  
211 id<SDAnimatedImageCoder> animatedCoder = nil; 198 id<SDAnimatedImageCoder> animatedCoder = nil;
212 for (id<SDImageCoder>coder in [SDImageCodersManager sharedManager].coders) { 199 for (id<SDImageCoder>coder in [SDImageCodersManager sharedManager].coders) {
213 if ([coder conformsToProtocol:@protocol(SDAnimatedImageCoder)]) { 200 if ([coder conformsToProtocol:@protocol(SDAnimatedImageCoder)]) {
@@ -220,16 +207,15 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -220,16 +207,15 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
220 if (!animatedCoder) { 207 if (!animatedCoder) {
221 return self; 208 return self;
222 } 209 }
223 - if (animatedCoder.animatedImageFrameCount > 1) {  
224 - _animatedCoder = animatedCoder;  
225 - } 210 + _coder = animatedCoder;
  211 + SDImageFormat format = [NSData sd_imageFormatForImageData:animatedImageData];
  212 + _animatedImageFormat = format;
226 } 213 }
227 return self; 214 return self;
228 } 215 }
229 216
230 - (void)encodeWithCoder:(NSCoder *)aCoder { 217 - (void)encodeWithCoder:(NSCoder *)aCoder {
231 [super encodeWithCoder:aCoder]; 218 [super encodeWithCoder:aCoder];
232 - [aCoder encodeInteger:self.animatedImageFormat forKey:NSStringFromSelector(@selector(animatedImageFormat))];  
233 NSData *animatedImageData = self.animatedImageData; 219 NSData *animatedImageData = self.animatedImageData;
234 if (animatedImageData) { 220 if (animatedImageData) {
235 [aCoder encodeObject:animatedImageData forKey:NSStringFromSelector(@selector(animatedImageData))]; 221 [aCoder encodeObject:animatedImageData forKey:NSStringFromSelector(@selector(animatedImageData))];
@@ -240,18 +226,18 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -240,18 +226,18 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
240 return YES; 226 return YES;
241 } 227 }
242 228
243 -#pragma mark - SDAnimatedImageProvider 229 +#pragma mark - SDAnimatedImage
244 230
245 - (NSData *)animatedImageData { 231 - (NSData *)animatedImageData {
246 - return [self.animatedCoder animatedImageData]; 232 + return [self.coder animatedImageData];
247 } 233 }
248 234
249 - (NSUInteger)animatedImageLoopCount { 235 - (NSUInteger)animatedImageLoopCount {
250 - return [self.animatedCoder animatedImageLoopCount]; 236 + return [self.coder animatedImageLoopCount];
251 } 237 }
252 238
253 - (NSUInteger)animatedImageFrameCount { 239 - (NSUInteger)animatedImageFrameCount {
254 - return [self.animatedCoder animatedImageFrameCount]; 240 + return [self.coder animatedImageFrameCount];
255 } 241 }
256 242
257 - (UIImage *)animatedImageFrameAtIndex:(NSUInteger)index { 243 - (UIImage *)animatedImageFrameAtIndex:(NSUInteger)index {
@@ -262,7 +248,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -262,7 +248,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
262 SDImageFrame *frame = [self.loadedAnimatedImageFrames objectAtIndex:index]; 248 SDImageFrame *frame = [self.loadedAnimatedImageFrames objectAtIndex:index];
263 return frame.image; 249 return frame.image;
264 } 250 }
265 - return [self.animatedCoder animatedImageFrameAtIndex:index]; 251 + return [self.coder animatedImageFrameAtIndex:index];
266 } 252 }
267 253
268 - (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index { 254 - (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index {
@@ -273,7 +259,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -273,7 +259,7 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
273 SDImageFrame *frame = [self.loadedAnimatedImageFrames objectAtIndex:index]; 259 SDImageFrame *frame = [self.loadedAnimatedImageFrames objectAtIndex:index];
274 return frame.duration; 260 return frame.duration;
275 } 261 }
276 - return [self.animatedCoder animatedImageDurationAtIndex:index]; 262 + return [self.coder animatedImageDurationAtIndex:index];
277 } 263 }
278 264
279 @end 265 @end
@@ -301,90 +287,3 @@ static CGFloat SDImageScaleFromPath(NSString *string) { @@ -301,90 +287,3 @@ static CGFloat SDImageScaleFromPath(NSString *string) {
301 } 287 }
302 288
303 @end 289 @end
304 -  
305 -@implementation SDAnimatedImage (Metadata)  
306 -  
307 -- (BOOL)sd_isAnimated {  
308 - return YES;  
309 -}  
310 -  
311 -- (NSUInteger)sd_imageLoopCount {  
312 - return self.animatedImageLoopCount;  
313 -}  
314 -  
315 -- (void)setSd_imageLoopCount:(NSUInteger)sd_imageLoopCount {  
316 - return;  
317 -}  
318 -  
319 -- (SDImageFormat)sd_imageFormat {  
320 - return self.animatedImageFormat;  
321 -}  
322 -  
323 -- (void)setSd_imageFormat:(SDImageFormat)sd_imageFormat {  
324 - return;  
325 -}  
326 -  
327 -- (BOOL)sd_isVector {  
328 - return NO;  
329 -}  
330 -  
331 -@end  
332 -  
333 -@implementation SDAnimatedImage (MultiFormat)  
334 -  
335 -+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data {  
336 - return [self sd_imageWithData:data scale:1];  
337 -}  
338 -  
339 -+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data scale:(CGFloat)scale {  
340 - return [self sd_imageWithData:data scale:scale firstFrameOnly:NO];  
341 -}  
342 -  
343 -+ (nullable UIImage *)sd_imageWithData:(nullable NSData *)data scale:(CGFloat)scale firstFrameOnly:(BOOL)firstFrameOnly {  
344 - if (!data) {  
345 - return nil;  
346 - }  
347 - return [[self alloc] initWithData:data scale:scale options:@{SDImageCoderDecodeFirstFrameOnly : @(firstFrameOnly)}];  
348 -}  
349 -  
350 -- (nullable NSData *)sd_imageData {  
351 - NSData *imageData = self.animatedImageData;  
352 - if (imageData) {  
353 - return imageData;  
354 - } else {  
355 - return [self sd_imageDataAsFormat:self.animatedImageFormat];  
356 - }  
357 -}  
358 -  
359 -- (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat {  
360 - return [self sd_imageDataAsFormat:imageFormat compressionQuality:1];  
361 -}  
362 -  
363 -- (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat compressionQuality:(double)compressionQuality {  
364 - return [self sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:NO];  
365 -}  
366 -  
367 -- (nullable NSData *)sd_imageDataAsFormat:(SDImageFormat)imageFormat compressionQuality:(double)compressionQuality firstFrameOnly:(BOOL)firstFrameOnly {  
368 - if (firstFrameOnly) {  
369 - // First frame, use super implementation  
370 - return [super sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:firstFrameOnly];  
371 - }  
372 - NSUInteger frameCount = self.animatedImageFrameCount;  
373 - if (frameCount <= 1) {  
374 - // Static image, use super implementation  
375 - return [super sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:firstFrameOnly];  
376 - }  
377 - // Keep animated image encoding, loop each frame.  
378 - NSMutableArray<SDImageFrame *> *frames = [NSMutableArray arrayWithCapacity:frameCount];  
379 - for (size_t i = 0; i < frameCount; i++) {  
380 - UIImage *image = [self animatedImageFrameAtIndex:i];  
381 - NSTimeInterval duration = [self animatedImageDurationAtIndex:i];  
382 - SDImageFrame *frame = [SDImageFrame frameWithImage:image duration:duration];  
383 - [frames addObject:frame];  
384 - }  
385 - UIImage *animatedImage = [SDImageCoderHelper animatedImageWithFrames:frames];  
386 - NSData *imageData = [animatedImage sd_imageDataAsFormat:imageFormat compressionQuality:compressionQuality firstFrameOnly:firstFrameOnly];  
387 - return imageData;  
388 -}  
389 -  
390 -@end  
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageRep.m
@@ -27,13 +27,13 @@ @@ -27,13 +27,13 @@
27 } 27 }
28 } 28 }
29 29
30 -// `NSBitmapImageRep`'s `imageRepWithData:` is not designed initializer 30 +// `NSBitmapImageRep`'s `imageRepWithData:` is not designed initlizer
31 + (instancetype)imageRepWithData:(NSData *)data { 31 + (instancetype)imageRepWithData:(NSData *)data {
32 SDAnimatedImageRep *imageRep = [[SDAnimatedImageRep alloc] initWithData:data]; 32 SDAnimatedImageRep *imageRep = [[SDAnimatedImageRep alloc] initWithData:data];
33 return imageRep; 33 return imageRep;
34 } 34 }
35 35
36 -// We should override init method for `NSBitmapImageRep` to do initialize about animated image format 36 +// We should override init method for `NSBitmapImageRep` to do initlize about animated image format
37 - (instancetype)initWithData:(NSData *)data { 37 - (instancetype)initWithData:(NSData *)data {
38 self = [super initWithData:data]; 38 self = [super initWithData:data];
39 if (self) { 39 if (self) {
@@ -58,14 +58,14 @@ @@ -58,14 +58,14 @@
58 [self setProperty:NSImageLoopCount withValue:@(loopCount)]; 58 [self setProperty:NSImageLoopCount withValue:@(loopCount)];
59 } else if (CFStringCompare(type, kUTTypePNG, 0) == kCFCompareEqualTo) { 59 } else if (CFStringCompare(type, kUTTypePNG, 0) == kCFCompareEqualTo) {
60 // APNG 60 // APNG
61 - // Do initialize about frame count, current frame/duration and loop count 61 + // Do initilize about frame count, current frame/duration and loop count
62 [self setProperty:NSImageFrameCount withValue:@(frameCount)]; 62 [self setProperty:NSImageFrameCount withValue:@(frameCount)];
63 [self setProperty:NSImageCurrentFrame withValue:@(0)]; 63 [self setProperty:NSImageCurrentFrame withValue:@(0)];
64 NSUInteger loopCount = [SDImageAPNGCoder imageLoopCountWithSource:imageSource]; 64 NSUInteger loopCount = [SDImageAPNGCoder imageLoopCountWithSource:imageSource];
65 [self setProperty:NSImageLoopCount withValue:@(loopCount)]; 65 [self setProperty:NSImageLoopCount withValue:@(loopCount)];
66 } else if (CFStringCompare(type, kSDUTTypeHEICS, 0) == kCFCompareEqualTo) { 66 } else if (CFStringCompare(type, kSDUTTypeHEICS, 0) == kCFCompareEqualTo) {
67 // HEIC 67 // HEIC
68 - // Do initialize about frame count, current frame/duration and loop count 68 + // Do initilize about frame count, current frame/duration and loop count
69 [self setProperty:NSImageFrameCount withValue:@(frameCount)]; 69 [self setProperty:NSImageFrameCount withValue:@(frameCount)];
70 [self setProperty:NSImageCurrentFrame withValue:@(0)]; 70 [self setProperty:NSImageCurrentFrame withValue:@(0)];
71 NSUInteger loopCount = [SDImageHEICCoder imageLoopCountWithSource:imageSource]; 71 NSUInteger loopCount = [SDImageHEICCoder imageLoopCountWithSource:imageSource];
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.h
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 @interface SDAnimatedImageView : UIImageView 21 @interface SDAnimatedImageView : UIImageView
22 22
23 /** 23 /**
24 - Current display frame image. This value is KVO Compliance. 24 + Current display frame image.
25 */ 25 */
26 @property (nonatomic, strong, readonly, nullable) UIImage *currentFrame; 26 @property (nonatomic, strong, readonly, nullable) UIImage *currentFrame;
27 /** 27 /**
@@ -44,15 +44,6 @@ @@ -44,15 +44,6 @@
44 */ 44 */
45 @property (nonatomic, assign) NSInteger animationRepeatCount; 45 @property (nonatomic, assign) NSInteger animationRepeatCount;
46 /** 46 /**
47 - The animation playback rate. Default is 1.0.  
48 - `1.0` means the normal speed.  
49 - `0.0` means stopping the animation.  
50 - `0.0-1.0` means the slow speed.  
51 - `> 1.0` means the fast speed.  
52 - `< 0.0` is not supported currently and stop animation. (may support reverse playback in the future)  
53 - */  
54 -@property (nonatomic, assign) double playbackRate;  
55 -/**  
56 Provide a max buffer size by bytes. This is used to adjust frame buffer count and can be useful when the decoding cost is expensive (such as Animated WebP software decoding). Default is 0. 47 Provide a max buffer size by bytes. This is used to adjust frame buffer count and can be useful when the decoding cost is expensive (such as Animated WebP software decoding). Default is 0.
57 `0` means automatically adjust by calculating current memory usage. 48 `0` means automatically adjust by calculating current memory usage.
58 `1` means without any buffer cache, each of frames will be decoded and then be freed after rendering. (Lowest Memory and Highest CPU) 49 `1` means without any buffer cache, each of frames will be decoded and then be freed after rendering. (Lowest Memory and Highest CPU)
@@ -81,19 +72,13 @@ @@ -81,19 +72,13 @@
81 */ 72 */
82 @property (nonatomic, assign) BOOL resetFrameIndexWhenStopped; 73 @property (nonatomic, assign) BOOL resetFrameIndexWhenStopped;
83 74
84 -/**  
85 - If the image has more than one frame, set this value to `YES` will automatically  
86 - play/stop the animation when the view become visible/invisible.  
87 - Default is YES.  
88 - */  
89 -@property (nonatomic, assign) BOOL autoPlayAnimatedImage;  
90 - 75 +#if SD_UIKIT
91 /** 76 /**
92 You can specify a runloop mode to let it rendering. 77 You can specify a runloop mode to let it rendering.
93 - Default is NSRunLoopCommonModes on multi-core device, NSDefaultRunLoopMode on single-core device  
94 - @note This is useful for some cases, for example, always specify NSDefaultRunLoopMode, if you want to pause the animation when user scroll (for Mac user, drag the mouse or touchpad) 78 + Default is NSRunLoopCommonModes on multi-core iOS device, NSDefaultRunLoopMode on single-core iOS device
95 */ 79 */
96 @property (nonatomic, copy, nonnull) NSRunLoopMode runLoopMode; 80 @property (nonatomic, copy, nonnull) NSRunLoopMode runLoopMode;
  81 +#endif
97 @end 82 @end
98 83
99 #endif 84 #endif
Example/Pods/SDWebImage/SDWebImage/Core/SDAnimatedImageView.m
@@ -10,28 +10,61 @@ @@ -10,28 +10,61 @@
10 10
11 #if SD_UIKIT || SD_MAC 11 #if SD_UIKIT || SD_MAC
12 12
13 -#import "SDAnimatedImagePlayer.h"  
14 #import "UIImage+Metadata.h" 13 #import "UIImage+Metadata.h"
15 #import "NSImage+Compatibility.h" 14 #import "NSImage+Compatibility.h"
  15 +#import "SDWeakProxy.h"
16 #import "SDInternalMacros.h" 16 #import "SDInternalMacros.h"
17 -#import "objc/runtime.h" 17 +#import <mach/mach.h>
  18 +#import <objc/runtime.h>
18 19
19 -@interface UIImageView () <CALayerDelegate>  
20 -@end 20 +#if SD_MAC
  21 +#import <CoreVideo/CoreVideo.h>
  22 +static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext);
  23 +#endif
21 24
22 -@interface SDAnimatedImageView () {  
23 - BOOL _initFinished; // Extra flag to mark the `commonInit` is called 25 +static NSUInteger SDDeviceTotalMemory() {
  26 + return (NSUInteger)[[NSProcessInfo processInfo] physicalMemory];
  27 +}
  28 +
  29 +static NSUInteger SDDeviceFreeMemory() {
  30 + mach_port_t host_port = mach_host_self();
  31 + mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
  32 + vm_size_t page_size;
  33 + vm_statistics_data_t vm_stat;
  34 + kern_return_t kern;
  35 +
  36 + kern = host_page_size(host_port, &page_size);
  37 + if (kern != KERN_SUCCESS) return 0;
  38 + kern = host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size);
  39 + if (kern != KERN_SUCCESS) return 0;
  40 + return vm_stat.free_count * page_size;
  41 +}
  42 +
  43 +@interface SDAnimatedImageView () <CALayerDelegate> {
24 NSRunLoopMode _runLoopMode; 44 NSRunLoopMode _runLoopMode;
25 - NSUInteger _maxBufferSize;  
26 - double _playbackRate; 45 + BOOL _initFinished; // Extra flag to mark the `commonInit` is called
27 } 46 }
28 47
29 @property (nonatomic, strong, readwrite) UIImage *currentFrame; 48 @property (nonatomic, strong, readwrite) UIImage *currentFrame;
30 @property (nonatomic, assign, readwrite) NSUInteger currentFrameIndex; 49 @property (nonatomic, assign, readwrite) NSUInteger currentFrameIndex;
31 @property (nonatomic, assign, readwrite) NSUInteger currentLoopCount; 50 @property (nonatomic, assign, readwrite) NSUInteger currentLoopCount;
  51 +@property (nonatomic, assign) NSUInteger totalFrameCount;
  52 +@property (nonatomic, assign) NSUInteger totalLoopCount;
  53 +@property (nonatomic, strong) UIImage<SDAnimatedImage> *animatedImage;
  54 +@property (nonatomic, strong) NSMutableDictionary<NSNumber *, UIImage *> *frameBuffer;
  55 +@property (nonatomic, assign) NSTimeInterval currentTime;
  56 +@property (nonatomic, assign) BOOL bufferMiss;
32 @property (nonatomic, assign) BOOL shouldAnimate; 57 @property (nonatomic, assign) BOOL shouldAnimate;
33 @property (nonatomic, assign) BOOL isProgressive; 58 @property (nonatomic, assign) BOOL isProgressive;
34 -@property (nonatomic,strong) SDAnimatedImagePlayer *player; // The animation player. 59 +@property (nonatomic, assign) NSUInteger maxBufferCount;
  60 +@property (nonatomic, strong) NSOperationQueue *fetchQueue;
  61 +@property (nonatomic, strong) dispatch_semaphore_t lock;
  62 +@property (nonatomic, assign) CGFloat animatedImageScale;
  63 +#if SD_MAC
  64 +@property (nonatomic, assign) CVDisplayLinkRef displayLink;
  65 +#else
  66 +@property (nonatomic, strong) CADisplayLink *displayLink;
  67 +#endif
35 @property (nonatomic) CALayer *imageViewLayer; // The actual rendering layer. 68 @property (nonatomic) CALayer *imageViewLayer; // The actual rendering layer.
36 69
37 @end 70 @end
@@ -96,17 +129,63 @@ @@ -96,17 +129,63 @@
96 { 129 {
97 // Pay attention that UIKit's `initWithImage:` will trigger a `setImage:` during initialization before this `commonInit`. 130 // Pay attention that UIKit's `initWithImage:` will trigger a `setImage:` during initialization before this `commonInit`.
98 // So the properties which rely on this order, should using lazy-evaluation or do extra check in `setImage:`. 131 // So the properties which rely on this order, should using lazy-evaluation or do extra check in `setImage:`.
99 - self.autoPlayAnimatedImage = YES;  
100 self.shouldCustomLoopCount = NO; 132 self.shouldCustomLoopCount = NO;
101 self.shouldIncrementalLoad = YES; 133 self.shouldIncrementalLoad = YES;
102 - self.playbackRate = 1.0;  
103 #if SD_MAC 134 #if SD_MAC
104 self.wantsLayer = YES; 135 self.wantsLayer = YES;
105 #endif 136 #endif
  137 +#if SD_UIKIT
  138 + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMemoryWarning:) name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
  139 +#endif
106 // Mark commonInit finished 140 // Mark commonInit finished
107 _initFinished = YES; 141 _initFinished = YES;
108 } 142 }
109 143
  144 +- (void)resetAnimatedImage
  145 +{
  146 + self.animatedImage = nil;
  147 + self.totalFrameCount = 0;
  148 + self.totalLoopCount = 0;
  149 + // reset current state
  150 + [self resetCurrentFrameIndex];
  151 + self.shouldAnimate = NO;
  152 + self.isProgressive = NO;
  153 + self.maxBufferCount = 0;
  154 + self.animatedImageScale = 1;
  155 + [_fetchQueue cancelAllOperations];
  156 + // clear buffer cache
  157 + [self clearFrameBuffer];
  158 +}
  159 +
  160 +- (void)resetProgressiveImage
  161 +{
  162 + self.animatedImage = nil;
  163 + self.totalFrameCount = 0;
  164 + self.totalLoopCount = 0;
  165 + // preserve current state
  166 + self.shouldAnimate = NO;
  167 + self.isProgressive = YES;
  168 + self.maxBufferCount = 0;
  169 + self.animatedImageScale = 1;
  170 + // preserve buffer cache
  171 +}
  172 +
  173 +- (void)resetCurrentFrameIndex
  174 +{
  175 + self.currentFrame = nil;
  176 + self.currentFrameIndex = 0;
  177 + self.currentLoopCount = 0;
  178 + self.currentTime = 0;
  179 + self.bufferMiss = NO;
  180 +}
  181 +
  182 +- (void)clearFrameBuffer
  183 +{
  184 + SD_LOCK(self.lock);
  185 + [_frameBuffer removeAllObjects];
  186 + SD_UNLOCK(self.lock);
  187 +}
  188 +
110 #pragma mark - Accessors 189 #pragma mark - Accessors
111 #pragma mark Public 190 #pragma mark Public
112 191
@@ -119,87 +198,71 @@ @@ -119,87 +198,71 @@
119 // Check Progressive rendering 198 // Check Progressive rendering
120 [self updateIsProgressiveWithImage:image]; 199 [self updateIsProgressiveWithImage:image];
121 200
122 - if (!self.isProgressive) { 201 + if (self.isProgressive) {
  202 + // Reset all value, but keep current state
  203 + [self resetProgressiveImage];
  204 + } else {
123 // Stop animating 205 // Stop animating
124 - self.player = nil;  
125 - self.currentFrame = nil;  
126 - self.currentFrameIndex = 0;  
127 - self.currentLoopCount = 0; 206 + [self stopAnimating];
  207 + // Reset all value
  208 + [self resetAnimatedImage];
128 } 209 }
129 210
130 // We need call super method to keep function. This will impliedly call `setNeedsDisplay`. But we have no way to avoid this when using animated image. So we call `setNeedsDisplay` again at the end. 211 // We need call super method to keep function. This will impliedly call `setNeedsDisplay`. But we have no way to avoid this when using animated image. So we call `setNeedsDisplay` again at the end.
131 super.image = image; 212 super.image = image;
132 if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)]) { 213 if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)]) {
133 - if (!self.player) {  
134 - id<SDAnimatedImageProvider> provider;  
135 - // Check progressive loading  
136 - if (self.isProgressive) {  
137 - provider = [self progressiveAnimatedCoderForImage:image];  
138 - } else {  
139 - provider = (id<SDAnimatedImage>)image;  
140 - }  
141 - // Create animated player  
142 - self.player = [SDAnimatedImagePlayer playerWithProvider:provider];  
143 - } else {  
144 - // Update Frame Count  
145 - self.player.totalFrameCount = [(id<SDAnimatedImage>)image animatedImageFrameCount]; 214 + NSUInteger animatedImageFrameCount = ((UIImage<SDAnimatedImage> *)image).animatedImageFrameCount;
  215 + // Check the frame count
  216 + if (animatedImageFrameCount <= 1) {
  217 + return;
146 } 218 }
147 -  
148 - if (!self.player) {  
149 - // animated player nil means the image format is not supported, or frame count <= 1 219 + // If progressive rendering is disabled but animated image is incremental. Only show poster image
  220 + if (!self.isProgressive && image.sd_isIncremental) {
150 return; 221 return;
151 } 222 }
152 -  
153 - // Custom Loop Count  
154 - if (self.shouldCustomLoopCount) {  
155 - self.player.totalLoopCount = self.animationRepeatCount; 223 + self.animatedImage = (UIImage<SDAnimatedImage> *)image;
  224 + self.totalFrameCount = animatedImageFrameCount;
  225 + // Get the current frame and loop count.
  226 + self.totalLoopCount = self.animatedImage.animatedImageLoopCount;
  227 + // Get the scale
  228 + self.animatedImageScale = image.scale;
  229 + if (!self.isProgressive) {
  230 + self.currentFrame = image;
  231 + SD_LOCK(self.lock);
  232 + self.frameBuffer[@(self.currentFrameIndex)] = self.currentFrame;
  233 + SD_UNLOCK(self.lock);
156 } 234 }
157 235
158 - // RunLoop Mode  
159 - self.player.runLoopMode = self.runLoopMode;  
160 -  
161 - // Max Buffer Size  
162 - self.player.maxBufferSize = self.maxBufferSize;  
163 -  
164 - // Play Rate  
165 - self.player.playbackRate = self.playbackRate;  
166 -  
167 - // Setup handler  
168 - @weakify(self);  
169 - self.player.animationFrameHandler = ^(NSUInteger index, UIImage * frame) {  
170 - @strongify(self);  
171 - self.currentFrameIndex = index;  
172 - self.currentFrame = frame;  
173 - [self.imageViewLayer setNeedsDisplay];  
174 - };  
175 - self.player.animationLoopHandler = ^(NSUInteger loopCount) {  
176 - @strongify(self);  
177 - // Progressive image reach the current last frame index. Keep the state and pause animating. Wait for later restart  
178 - if (self.isProgressive) {  
179 - NSUInteger lastFrameIndex = self.player.totalFrameCount - 1;  
180 - [self.player seekToFrameAtIndex:lastFrameIndex loopCount:0];  
181 - [self.player pausePlaying];  
182 - } else {  
183 - self.currentLoopCount = loopCount;  
184 - }  
185 - };  
186 -  
187 // Ensure disabled highlighting; it's not supported (see `-setHighlighted:`). 236 // Ensure disabled highlighting; it's not supported (see `-setHighlighted:`).
188 super.highlighted = NO; 237 super.highlighted = NO;
189 238
190 - [self stopAnimating];  
191 - [self checkPlay]; 239 + // Calculate max buffer size
  240 + [self calculateMaxBufferCount];
  241 + // Update should animate
  242 + [self updateShouldAnimate];
  243 + if (self.shouldAnimate) {
  244 + [self startAnimating];
  245 + }
192 246
193 [self.imageViewLayer setNeedsDisplay]; 247 [self.imageViewLayer setNeedsDisplay];
194 } 248 }
195 } 249 }
196 250
197 -#pragma mark - Configuration  
198 - 251 +#if SD_UIKIT
199 - (void)setRunLoopMode:(NSRunLoopMode)runLoopMode 252 - (void)setRunLoopMode:(NSRunLoopMode)runLoopMode
200 { 253 {
  254 + if ([_runLoopMode isEqual:runLoopMode]) {
  255 + return;
  256 + }
  257 + if (_displayLink) {
  258 + if (_runLoopMode) {
  259 + [_displayLink removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:_runLoopMode];
  260 + }
  261 + if (runLoopMode.length > 0) {
  262 + [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:runLoopMode];
  263 + }
  264 + }
201 _runLoopMode = [runLoopMode copy]; 265 _runLoopMode = [runLoopMode copy];
202 - self.player.runLoopMode = runLoopMode;  
203 } 266 }
204 267
205 - (NSRunLoopMode)runLoopMode 268 - (NSRunLoopMode)runLoopMode
@@ -209,42 +272,99 @@ @@ -209,42 +272,99 @@
209 } 272 }
210 return _runLoopMode; 273 return _runLoopMode;
211 } 274 }
  275 +#endif
212 276
213 -+ (NSString *)defaultRunLoopMode {  
214 - // Key off `activeProcessorCount` (as opposed to `processorCount`) since the system could shut down cores in certain situations.  
215 - return [NSProcessInfo processInfo].activeProcessorCount > 1 ? NSRunLoopCommonModes : NSDefaultRunLoopMode; 277 +- (BOOL)shouldIncrementalLoad {
  278 + if (!_initFinished) {
  279 + return YES; // Defaults to YES
  280 + }
  281 + return _initFinished;
216 } 282 }
217 283
218 -- (void)setMaxBufferSize:(NSUInteger)maxBufferSize 284 +#pragma mark - Private
  285 +- (NSOperationQueue *)fetchQueue
219 { 286 {
220 - _maxBufferSize = maxBufferSize;  
221 - self.player.maxBufferSize = maxBufferSize; 287 + if (!_fetchQueue) {
  288 + _fetchQueue = [[NSOperationQueue alloc] init];
  289 + _fetchQueue.maxConcurrentOperationCount = 1;
  290 + }
  291 + return _fetchQueue;
222 } 292 }
223 293
224 -- (NSUInteger)maxBufferSize {  
225 - return _maxBufferSize; // Defaults to 0 294 +- (NSMutableDictionary<NSNumber *,UIImage *> *)frameBuffer
  295 +{
  296 + if (!_frameBuffer) {
  297 + _frameBuffer = [NSMutableDictionary dictionary];
  298 + }
  299 + return _frameBuffer;
226 } 300 }
227 301
228 -- (void)setPlaybackRate:(double)playbackRate  
229 -{  
230 - _playbackRate = playbackRate;  
231 - self.player.playbackRate = playbackRate; 302 +- (dispatch_semaphore_t)lock {
  303 + if (!_lock) {
  304 + _lock = dispatch_semaphore_create(1);
  305 + }
  306 + return _lock;
232 } 307 }
233 308
234 -- (double)playbackRate 309 +#if SD_MAC
  310 +- (CVDisplayLinkRef)displayLink
235 { 311 {
236 - if (!_initFinished) {  
237 - return 1.0; // Defaults to 1.0 312 + if (!_displayLink) {
  313 + CVReturn error = CVDisplayLinkCreateWithActiveCGDisplays(&_displayLink);
  314 + if (error) {
  315 + return NULL;
  316 + }
  317 + CVDisplayLinkSetOutputCallback(_displayLink, DisplayLinkCallback, (__bridge void *)self);
238 } 318 }
239 - return _playbackRate; 319 + return _displayLink;
240 } 320 }
  321 +#else
  322 +- (CADisplayLink *)displayLink
  323 +{
  324 + if (!_displayLink) {
  325 + // It is important to note the use of a weak proxy here to avoid a retain cycle. `-displayLinkWithTarget:selector:`
  326 + // will retain its target until it is invalidated. We use a weak proxy so that the image view will get deallocated
  327 + // independent of the display link's lifetime. Upon image view deallocation, we invalidate the display
  328 + // link which will lead to the deallocation of both the display link and the weak proxy.
  329 + SDWeakProxy *weakProxy = [SDWeakProxy proxyWithTarget:self];
  330 + _displayLink = [CADisplayLink displayLinkWithTarget:weakProxy selector:@selector(displayDidRefresh:)];
  331 + [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:self.runLoopMode];
  332 + }
  333 + return _displayLink;
  334 +}
  335 +#endif
  336 +
  337 +#pragma mark - Life Cycle
241 338
242 -- (BOOL)shouldIncrementalLoad 339 +- (void)dealloc
243 { 340 {
244 - if (!_initFinished) {  
245 - return YES; // Defaults to YES 341 + // Removes the display link from all run loop modes.
  342 +#if SD_MAC
  343 + if (_displayLink) {
  344 + CVDisplayLinkRelease(_displayLink);
  345 + _displayLink = NULL;
246 } 346 }
247 - return _initFinished; 347 +#else
  348 + [_displayLink invalidate];
  349 + _displayLink = nil;
  350 + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
  351 +#endif
  352 +}
  353 +
  354 +- (void)didReceiveMemoryWarning:(NSNotification *)notification {
  355 + [_fetchQueue cancelAllOperations];
  356 + [_fetchQueue addOperationWithBlock:^{
  357 + NSNumber *currentFrameIndex = @(self.currentFrameIndex);
  358 + SD_LOCK(self.lock);
  359 + NSArray *keys = self.frameBuffer.allKeys;
  360 + // only keep the next frame for later rendering
  361 + for (NSNumber * key in keys) {
  362 + if (![key isEqualToNumber:currentFrameIndex]) {
  363 + [self.frameBuffer removeObjectForKey:key];
  364 + }
  365 + }
  366 + SD_UNLOCK(self.lock);
  367 + }];
248 } 368 }
249 369
250 #pragma mark - UIView Method Overrides 370 #pragma mark - UIView Method Overrides
@@ -262,7 +382,12 @@ @@ -262,7 +382,12 @@
262 [super didMoveToSuperview]; 382 [super didMoveToSuperview];
263 #endif 383 #endif
264 384
265 - [self checkPlay]; 385 + [self updateShouldAnimate];
  386 + if (self.shouldAnimate) {
  387 + [self startAnimating];
  388 + } else {
  389 + [self stopAnimating];
  390 + }
266 } 391 }
267 392
268 #if SD_MAC 393 #if SD_MAC
@@ -277,7 +402,12 @@ @@ -277,7 +402,12 @@
277 [super didMoveToWindow]; 402 [super didMoveToWindow];
278 #endif 403 #endif
279 404
280 - [self checkPlay]; 405 + [self updateShouldAnimate];
  406 + if (self.shouldAnimate) {
  407 + [self startAnimating];
  408 + } else {
  409 + [self stopAnimating];
  410 + }
281 } 411 }
282 412
283 #if SD_MAC 413 #if SD_MAC
@@ -292,91 +422,88 @@ @@ -292,91 +422,88 @@
292 [super setAlpha:alpha]; 422 [super setAlpha:alpha];
293 #endif 423 #endif
294 424
295 - [self checkPlay]; 425 + [self updateShouldAnimate];
  426 + if (self.shouldAnimate) {
  427 + [self startAnimating];
  428 + } else {
  429 + [self stopAnimating];
  430 + }
296 } 431 }
297 432
298 - (void)setHidden:(BOOL)hidden 433 - (void)setHidden:(BOOL)hidden
299 { 434 {
300 [super setHidden:hidden]; 435 [super setHidden:hidden];
301 436
302 - [self checkPlay]; 437 + [self updateShouldAnimate];
  438 + if (self.shouldAnimate) {
  439 + [self startAnimating];
  440 + } else {
  441 + [self stopAnimating];
  442 + }
303 } 443 }
304 444
305 #pragma mark - UIImageView Method Overrides 445 #pragma mark - UIImageView Method Overrides
306 #pragma mark Image Data 446 #pragma mark Image Data
307 447
308 -- (void)setAnimationRepeatCount:(NSInteger)animationRepeatCount 448 +- (void)startAnimating
309 { 449 {
310 -#if SD_UIKIT  
311 - [super setAnimationRepeatCount:animationRepeatCount]; 450 + if (self.animatedImage) {
  451 +#if SD_MAC
  452 + CVDisplayLinkStart(self.displayLink);
312 #else 453 #else
313 - _animationRepeatCount = animationRepeatCount; 454 + self.displayLink.paused = NO;
314 #endif 455 #endif
315 -  
316 - if (self.shouldCustomLoopCount) {  
317 - self.player.totalLoopCount = animationRepeatCount;  
318 - }  
319 -}  
320 -  
321 -- (void)startAnimating  
322 -{  
323 - if (self.player) {  
324 - [self updateShouldAnimate];  
325 - if (self.shouldAnimate) {  
326 - [self.player startPlaying];  
327 - }  
328 } else { 456 } else {
329 #if SD_UIKIT 457 #if SD_UIKIT
330 [super startAnimating]; 458 [super startAnimating];
331 -#else  
332 - [super setAnimates:YES];  
333 #endif 459 #endif
334 } 460 }
335 } 461 }
336 462
337 - (void)stopAnimating 463 - (void)stopAnimating
338 { 464 {
339 - if (self.player) { 465 + if (self.animatedImage) {
  466 + [_fetchQueue cancelAllOperations];
  467 + // Using `_displayLink` here because when UIImageView dealloc, it may trigger `[self stopAnimating]`, we already release the display link in SDAnimatedImageView's dealloc method.
  468 +#if SD_MAC
  469 + CVDisplayLinkStop(_displayLink);
  470 +#else
  471 + _displayLink.paused = YES;
  472 +#endif
340 if (self.resetFrameIndexWhenStopped) { 473 if (self.resetFrameIndexWhenStopped) {
341 - [self.player stopPlaying];  
342 - } else {  
343 - [self.player pausePlaying]; 474 + [self resetCurrentFrameIndex];
344 } 475 }
345 if (self.clearBufferWhenStopped) { 476 if (self.clearBufferWhenStopped) {
346 - [self.player clearFrameBuffer]; 477 + [self clearFrameBuffer];
347 } 478 }
348 } else { 479 } else {
349 #if SD_UIKIT 480 #if SD_UIKIT
350 [super stopAnimating]; 481 [super stopAnimating];
351 -#else  
352 - [super setAnimates:NO];  
353 #endif 482 #endif
354 } 483 }
355 } 484 }
356 485
357 -#if SD_UIKIT  
358 - (BOOL)isAnimating 486 - (BOOL)isAnimating
359 { 487 {
360 - if (self.player) {  
361 - return self.player.isPlaying;  
362 - } else {  
363 - return [super isAnimating];  
364 - }  
365 -}  
366 -#endif  
367 - 488 + BOOL isAnimating = NO;
  489 + if (self.animatedImage) {
368 #if SD_MAC 490 #if SD_MAC
369 -- (BOOL)animates  
370 -{  
371 - if (self.player) {  
372 - return self.player.isPlaying; 491 + isAnimating = CVDisplayLinkIsRunning(self.displayLink);
  492 +#else
  493 + isAnimating = !self.displayLink.isPaused;
  494 +#endif
373 } else { 495 } else {
374 - return [super animates]; 496 +#if SD_UIKIT
  497 + isAnimating = [super isAnimating];
  498 +#endif
375 } 499 }
  500 + return isAnimating;
376 } 501 }
377 502
  503 +#if SD_MAC
378 - (void)setAnimates:(BOOL)animates 504 - (void)setAnimates:(BOOL)animates
379 { 505 {
  506 + [super setAnimates:animates];
380 if (animates) { 507 if (animates) {
381 [self startAnimating]; 508 [self startAnimating];
382 } else { 509 } else {
@@ -390,7 +517,7 @@ @@ -390,7 +517,7 @@
390 - (void)setHighlighted:(BOOL)highlighted 517 - (void)setHighlighted:(BOOL)highlighted
391 { 518 {
392 // Highlighted image is unsupported for animated images, but implementing it breaks the image view when embedded in a UICollectionViewCell. 519 // Highlighted image is unsupported for animated images, but implementing it breaks the image view when embedded in a UICollectionViewCell.
393 - if (!self.player) { 520 + if (!self.animatedImage) {
394 [super setHighlighted:highlighted]; 521 [super setHighlighted:highlighted];
395 } 522 }
396 } 523 }
@@ -399,19 +526,6 @@ @@ -399,19 +526,6 @@
399 #pragma mark - Private Methods 526 #pragma mark - Private Methods
400 #pragma mark Animation 527 #pragma mark Animation
401 528
402 -/// Check if it should be played  
403 -- (void)checkPlay  
404 -{  
405 - if (self.autoPlayAnimatedImage) {  
406 - [self updateShouldAnimate];  
407 - if (self.shouldAnimate) {  
408 - [self startAnimating];  
409 - } else {  
410 - [self stopAnimating];  
411 - }  
412 - }  
413 -}  
414 -  
415 // Don't repeatedly check our window & superview in `-displayDidRefresh:` for performance reasons. 529 // Don't repeatedly check our window & superview in `-displayDidRefresh:` for performance reasons.
416 // Just update our cached value whenever the animated image or visibility (window, superview, hidden, alpha) is changed. 530 // Just update our cached value whenever the animated image or visibility (window, superview, hidden, alpha) is changed.
417 - (void)updateShouldAnimate 531 - (void)updateShouldAnimate
@@ -421,7 +535,7 @@ @@ -421,7 +535,7 @@
421 #else 535 #else
422 BOOL isVisible = self.window && self.superview && ![self isHidden] && self.alpha > 0.0; 536 BOOL isVisible = self.window && self.superview && ![self isHidden] && self.alpha > 0.0;
423 #endif 537 #endif
424 - self.shouldAnimate = self.player && isVisible; 538 + self.shouldAnimate = self.animatedImage && self.totalFrameCount > 1 && isVisible;
425 } 539 }
426 540
427 // Update progressive status only after `setImage:` call. 541 // Update progressive status only after `setImage:` call.
@@ -434,32 +548,170 @@ @@ -434,32 +548,170 @@
434 } 548 }
435 // We must use `image.class conformsToProtocol:` instead of `image conformsToProtocol:` here 549 // We must use `image.class conformsToProtocol:` instead of `image conformsToProtocol:` here
436 // Because UIKit on macOS, using internal hard-coded override method, which returns NO 550 // Because UIKit on macOS, using internal hard-coded override method, which returns NO
437 - id<SDAnimatedImageCoder> currentAnimatedCoder = [self progressiveAnimatedCoderForImage:image];  
438 - if (currentAnimatedCoder) { 551 + if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)] && image.sd_isIncremental) {
439 UIImage *previousImage = self.image; 552 UIImage *previousImage = self.image;
440 - if (!previousImage) {  
441 - // If current animated coder supports progressive, and no previous image to check, start progressive loading  
442 - self.isProgressive = YES;  
443 - } else {  
444 - id<SDAnimatedImageCoder> previousAnimatedCoder = [self progressiveAnimatedCoderForImage:previousImage];  
445 - if (previousAnimatedCoder == currentAnimatedCoder) {  
446 - // If current animated coder is the same as previous, start progressive loading 553 + if ([previousImage.class conformsToProtocol:@protocol(SDAnimatedImage)] && previousImage.sd_isIncremental) {
  554 + NSData *previousData = [((UIImage<SDAnimatedImage> *)previousImage) animatedImageData];
  555 + NSData *currentData = [((UIImage<SDAnimatedImage> *)image) animatedImageData];
  556 + // Check whether to use progressive rendering or not
  557 + if (!previousData || !currentData) {
  558 + // Early return
  559 + return;
  560 + }
  561 +
  562 + // Warning: normally the `previousData` is same instance as `currentData` because our `SDAnimatedImage` class share the same `coder` instance internally. But there may be a race condition, that later retrived `currentData` is already been updated and it's not the same instance as `previousData`.
  563 + // And for protocol extensible design, we should not assume `SDAnimatedImage` protocol implementations always share same instance. So both of two reasons, we need that `rangeOfData` check.
  564 + if ([currentData isEqualToData:previousData]) {
  565 + // If current data is the same data (or instance) as previous data
447 self.isProgressive = YES; 566 self.isProgressive = YES;
  567 + } else if (currentData.length > previousData.length) {
  568 + // If current data is appended by previous data, use `NSDataSearchAnchored`, search is limited to start of currentData
  569 + NSRange range = [currentData rangeOfData:previousData options:NSDataSearchAnchored range:NSMakeRange(0, previousData.length)];
  570 + if (range.location != NSNotFound) {
  571 + // Contains hole previous data and they start with the same beginning
  572 + self.isProgressive = YES;
  573 + }
448 } 574 }
  575 + } else {
  576 + // Previous image is not progressive, so start progressive rendering
  577 + self.isProgressive = YES;
449 } 578 }
450 } 579 }
451 } 580 }
452 581
453 -// Check if image can represent a `Progressive Animated Image` during loading  
454 -- (id<SDAnimatedImageCoder, SDProgressiveImageCoder>)progressiveAnimatedCoderForImage:(UIImage *)image 582 +#if SD_MAC
  583 +- (void)displayDidRefresh:(CVDisplayLinkRef)displayLink duration:(NSTimeInterval)duration
  584 +#else
  585 +- (void)displayDidRefresh:(CADisplayLink *)displayLink
  586 +#endif
455 { 587 {
456 - if ([image.class conformsToProtocol:@protocol(SDAnimatedImage)] && image.sd_isIncremental && [image respondsToSelector:@selector(animatedCoder)]) {  
457 - id<SDAnimatedImageCoder> animatedCoder = [(id<SDAnimatedImage>)image animatedCoder];  
458 - if ([animatedCoder conformsToProtocol:@protocol(SDProgressiveImageCoder)]) {  
459 - return (id<SDAnimatedImageCoder, SDProgressiveImageCoder>)animatedCoder; 588 + // If for some reason a wild call makes it through when we shouldn't be animating, bail.
  589 + // Early return!
  590 + if (!self.shouldAnimate) {
  591 + return;
  592 + }
  593 + // Calculate refresh duration
  594 +#if SD_UIKIT
  595 +#pragma clang diagnostic push
  596 +#pragma clang diagnostic ignored "-Wdeprecated-declarations"
  597 + NSTimeInterval duration = displayLink.duration * displayLink.frameInterval;
  598 +#pragma clang diagnostic pop
  599 +#endif
  600 + NSUInteger totalFrameCount = self.totalFrameCount;
  601 + NSUInteger currentFrameIndex = self.currentFrameIndex;
  602 + NSUInteger nextFrameIndex = (currentFrameIndex + 1) % totalFrameCount;
  603 +
  604 + // Check if we have the frame buffer firstly to improve performance
  605 + if (!self.bufferMiss) {
  606 + // Then check if timestamp is reached
  607 + self.currentTime += duration;
  608 + NSTimeInterval currentDuration = [self.animatedImage animatedImageDurationAtIndex:currentFrameIndex];
  609 + if (self.currentTime < currentDuration) {
  610 + // Current frame timestamp not reached, return
  611 + return;
  612 + }
  613 + self.currentTime -= currentDuration;
  614 + NSTimeInterval nextDuration = [self.animatedImage animatedImageDurationAtIndex:nextFrameIndex];
  615 + if (self.currentTime > nextDuration) {
  616 + // Do not skip frame
  617 + self.currentTime = nextDuration;
  618 + }
  619 + }
  620 +
  621 + // Update the current frame
  622 + UIImage *currentFrame;
  623 + UIImage *fetchFrame;
  624 + SD_LOCK(self.lock);
  625 + currentFrame = self.frameBuffer[@(currentFrameIndex)];
  626 + fetchFrame = currentFrame ? self.frameBuffer[@(nextFrameIndex)] : nil;
  627 + SD_UNLOCK(self.lock);
  628 + BOOL bufferFull = NO;
  629 + if (currentFrame) {
  630 + SD_LOCK(self.lock);
  631 + // Remove the frame buffer if need
  632 + if (self.frameBuffer.count > self.maxBufferCount) {
  633 + self.frameBuffer[@(currentFrameIndex)] = nil;
  634 + }
  635 + // Check whether we can stop fetch
  636 + if (self.frameBuffer.count == totalFrameCount) {
  637 + bufferFull = YES;
  638 + }
  639 + SD_UNLOCK(self.lock);
  640 + self.currentFrame = currentFrame;
  641 + self.currentFrameIndex = nextFrameIndex;
  642 + self.bufferMiss = NO;
  643 + [self.imageViewLayer setNeedsDisplay];
  644 + } else {
  645 + self.bufferMiss = YES;
  646 + }
  647 +
  648 + // Update the loop count when last frame rendered
  649 + if (nextFrameIndex == 0 && !self.bufferMiss) {
  650 + // Progressive image reach the current last frame index. Keep the state and stop animating. Wait for later restart
  651 + if (self.isProgressive) {
  652 + // Recovery the current frame index and removed frame buffer (See above)
  653 + self.currentFrameIndex = currentFrameIndex;
  654 + SD_LOCK(self.lock);
  655 + self.frameBuffer[@(currentFrameIndex)] = self.currentFrame;
  656 + SD_UNLOCK(self.lock);
  657 + [self stopAnimating];
  658 + return;
  659 + }
  660 + // Update the loop count
  661 + self.currentLoopCount++;
  662 + // if reached the max loop count, stop animating, 0 means loop indefinitely
  663 + NSUInteger maxLoopCount = self.shouldCustomLoopCount ? self.animationRepeatCount : self.totalLoopCount;
  664 + if (maxLoopCount != 0 && (self.currentLoopCount >= maxLoopCount)) {
  665 + [self stopAnimating];
  666 + return;
460 } 667 }
461 } 668 }
462 - return nil; 669 +
  670 + // Check if we should prefetch next frame or current frame
  671 + NSUInteger fetchFrameIndex;
  672 + if (self.bufferMiss) {
  673 + // When buffer miss, means the decode speed is slower than render speed, we fetch current miss frame
  674 + fetchFrameIndex = currentFrameIndex;
  675 + } else {
  676 + // Or, most cases, the decode speed is faster than render speed, we fetch next frame
  677 + fetchFrameIndex = nextFrameIndex;
  678 + }
  679 +
  680 + if (!fetchFrame && !bufferFull && self.fetchQueue.operationCount == 0) {
  681 + // Prefetch next frame in background queue
  682 + UIImage<SDAnimatedImage> *animatedImage = self.animatedImage;
  683 + @weakify(self);
  684 + NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
  685 + @strongify(self);
  686 + if (!self) {
  687 + return;
  688 + }
  689 + UIImage *frame = [animatedImage animatedImageFrameAtIndex:fetchFrameIndex];
  690 +
  691 + BOOL isAnimating = NO;
  692 +#if SD_MAC
  693 + isAnimating = CVDisplayLinkIsRunning(self.displayLink);
  694 +#else
  695 + isAnimating = !self.displayLink.isPaused;
  696 +#endif
  697 + if (isAnimating) {
  698 + SD_LOCK(self.lock);
  699 + self.frameBuffer[@(fetchFrameIndex)] = frame;
  700 + SD_UNLOCK(self.lock);
  701 + }
  702 + // Ensure when self dealloc, it dealloced on the main queue (UIKit/AppKit rule)
  703 + dispatch_async(dispatch_get_main_queue(), ^{
  704 + [self class];
  705 + });
  706 + }];
  707 + [self.fetchQueue addOperation:operation];
  708 + }
  709 +}
  710 +
  711 ++ (NSString *)defaultRunLoopMode
  712 +{
  713 + // Key off `activeProcessorCount` (as opposed to `processorCount`) since the system could shut down cores in certain situations.
  714 + return [NSProcessInfo processInfo].activeProcessorCount > 1 ? NSRunLoopCommonModes : NSDefaultRunLoopMode;
463 } 715 }
464 716
465 717
@@ -468,15 +720,9 @@ @@ -468,15 +720,9 @@
468 720
469 - (void)displayLayer:(CALayer *)layer 721 - (void)displayLayer:(CALayer *)layer
470 { 722 {
471 - UIImage *currentFrame = self.currentFrame;  
472 - if (currentFrame) {  
473 - layer.contentsScale = currentFrame.scale;  
474 - layer.contents = (__bridge id)currentFrame.CGImage;  
475 - } else {  
476 - // If we have no animation frames, call super implementation. iOS 14+ UIImageView use this delegate method for rendering.  
477 - if ([UIImageView instancesRespondToSelector:@selector(displayLayer:)]) {  
478 - [super displayLayer:layer];  
479 - } 723 + if (self.currentFrame) {
  724 + layer.contentsScale = self.animatedImageScale;
  725 + layer.contents = (__bridge id)self.currentFrame.CGImage;
480 } 726 }
481 } 727 }
482 728
@@ -484,10 +730,10 @@ @@ -484,10 +730,10 @@
484 // NSImageView use a subview. We need this subview's layer for actual rendering. 730 // NSImageView use a subview. We need this subview's layer for actual rendering.
485 // Why using this design may because of properties like `imageAlignment` and `imageScaling`, which it's not available for UIImageView.contentMode (it's impossible to align left and keep aspect ratio at the same time) 731 // Why using this design may because of properties like `imageAlignment` and `imageScaling`, which it's not available for UIImageView.contentMode (it's impossible to align left and keep aspect ratio at the same time)
486 - (NSView *)imageView { 732 - (NSView *)imageView {
487 - NSImageView *imageView = objc_getAssociatedObject(self, SD_SEL_SPI(imageView)); 733 + NSImageView *imageView = imageView = objc_getAssociatedObject(self, NSSelectorFromString(@"_imageView"));
488 if (!imageView) { 734 if (!imageView) {
489 // macOS 10.14 735 // macOS 10.14
490 - imageView = objc_getAssociatedObject(self, SD_SEL_SPI(imageSubview)); 736 + imageView = objc_getAssociatedObject(self, NSSelectorFromString(@"_imageSubview"));
491 } 737 }
492 return imageView; 738 return imageView;
493 } 739 }
@@ -514,6 +760,45 @@ @@ -514,6 +760,45 @@
514 760
515 #endif 761 #endif
516 762
  763 +
  764 +#pragma mark - Util
  765 +- (void)calculateMaxBufferCount {
  766 + NSUInteger bytes = CGImageGetBytesPerRow(self.currentFrame.CGImage) * CGImageGetHeight(self.currentFrame.CGImage);
  767 + if (bytes == 0) bytes = 1024;
  768 +
  769 + NSUInteger max = 0;
  770 + if (self.maxBufferSize > 0) {
  771 + max = self.maxBufferSize;
  772 + } else {
  773 + // Calculate based on current memory, these factors are by experience
  774 + NSUInteger total = SDDeviceTotalMemory();
  775 + NSUInteger free = SDDeviceFreeMemory();
  776 + max = MIN(total * 0.2, free * 0.6);
  777 + }
  778 +
  779 + NSUInteger maxBufferCount = (double)max / (double)bytes;
  780 + if (!maxBufferCount) {
  781 + // At least 1 frame
  782 + maxBufferCount = 1;
  783 + }
  784 +
  785 + self.maxBufferCount = maxBufferCount;
  786 +}
  787 +
517 @end 788 @end
518 789
  790 +#if SD_MAC
  791 +static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) {
  792 + // Calculate refresh duration
  793 + NSTimeInterval duration = (double)inOutputTime->videoRefreshPeriod / ((double)inOutputTime->videoTimeScale * inOutputTime->rateScalar);
  794 + // CVDisplayLink callback is not on main queue
  795 + SDAnimatedImageView *imageView = (__bridge SDAnimatedImageView *)displayLinkContext;
  796 + __weak SDAnimatedImageView *weakImageView = imageView;
  797 + dispatch_async(dispatch_get_main_queue(), ^{
  798 + [weakImageView displayDidRefresh:displayLink duration:duration];
  799 + });
  800 + return kCVReturnSuccess;
  801 +}
  802 +#endif
  803 +
519 #endif 804 #endif
Example/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.h
@@ -55,26 +55,6 @@ @@ -55,26 +55,6 @@
55 - (void)setData:(nullable NSData *)data forKey:(nonnull NSString *)key; 55 - (void)setData:(nullable NSData *)data forKey:(nonnull NSString *)key;
56 56
57 /** 57 /**
58 - Returns the extended data associated with a given key.  
59 - This method may blocks the calling thread until file read finished.  
60 -  
61 - @param key A string identifying the data. If nil, just return nil.  
62 - @return The value associated with key, or nil if no value is associated with key.  
63 - */  
64 -- (nullable NSData *)extendedDataForKey:(nonnull NSString *)key;  
65 -  
66 -/**  
67 - Set extended data with a given key.  
68 -  
69 - @discussion You can set any extended data to exist cache key. Without override the exist disk file data.  
70 - on UNIX, the common way for this is to use the Extended file attributes (xattr)  
71 -  
72 - @param extendedData The extended data (pass nil to remove).  
73 - @param key The key with which to associate the value. If nil, this method has no effect.  
74 -*/  
75 -- (void)setExtendedData:(nullable NSData *)extendedData forKey:(nonnull NSString *)key;  
76 -  
77 -/**  
78 Removes the value of the specified key in the cache. 58 Removes the value of the specified key in the cache.
79 This method may blocks the calling thread until file delete finished. 59 This method may blocks the calling thread until file delete finished.
80 60
Example/Pods/SDWebImage/SDWebImage/Core/SDDiskCache.m
@@ -8,11 +8,8 @@ @@ -8,11 +8,8 @@
8 8
9 #import "SDDiskCache.h" 9 #import "SDDiskCache.h"
10 #import "SDImageCacheConfig.h" 10 #import "SDImageCacheConfig.h"
11 -#import "SDFileAttributeHelper.h"  
12 #import <CommonCrypto/CommonDigest.h> 11 #import <CommonCrypto/CommonDigest.h>
13 12
14 -static NSString * const SDDiskCacheExtendedAttributeName = @"com.hackemist.SDDiskCache";  
15 -  
16 @interface SDDiskCache () 13 @interface SDDiskCache ()
17 14
18 @property (nonatomic, copy) NSString *diskCachePath; 15 @property (nonatomic, copy) NSString *diskCachePath;
@@ -86,7 +83,7 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis @@ -86,7 +83,7 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis
86 83
87 // get cache Path for image key 84 // get cache Path for image key
88 NSString *cachePathForKey = [self cachePathForKey:key]; 85 NSString *cachePathForKey = [self cachePathForKey:key];
89 - // transform to NSURL 86 + // transform to NSUrl
90 NSURL *fileURL = [NSURL fileURLWithPath:cachePathForKey]; 87 NSURL *fileURL = [NSURL fileURLWithPath:cachePathForKey];
91 88
92 [data writeToURL:fileURL options:self.config.diskCacheWritingOptions error:nil]; 89 [data writeToURL:fileURL options:self.config.diskCacheWritingOptions error:nil];
@@ -98,31 +95,6 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis @@ -98,31 +95,6 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis
98 } 95 }
99 } 96 }
100 97
101 -- (NSData *)extendedDataForKey:(NSString *)key {  
102 - NSParameterAssert(key);  
103 -  
104 - // get cache Path for image key  
105 - NSString *cachePathForKey = [self cachePathForKey:key];  
106 -  
107 - NSData *extendedData = [SDFileAttributeHelper extendedAttribute:SDDiskCacheExtendedAttributeName atPath:cachePathForKey traverseLink:NO error:nil];  
108 -  
109 - return extendedData;  
110 -}  
111 -  
112 -- (void)setExtendedData:(NSData *)extendedData forKey:(NSString *)key {  
113 - NSParameterAssert(key);  
114 - // get cache Path for image key  
115 - NSString *cachePathForKey = [self cachePathForKey:key];  
116 -  
117 - if (!extendedData) {  
118 - // Remove  
119 - [SDFileAttributeHelper removeExtendedAttribute:SDDiskCacheExtendedAttributeName atPath:cachePathForKey traverseLink:NO error:nil];  
120 - } else {  
121 - // Override  
122 - [SDFileAttributeHelper setExtendedAttribute:SDDiskCacheExtendedAttributeName value:extendedData atPath:cachePathForKey traverseLink:NO overwrite:YES error:nil];  
123 - }  
124 -}  
125 -  
126 - (void)removeDataForKey:(NSString *)key { 98 - (void)removeDataForKey:(NSString *)key {
127 NSParameterAssert(key); 99 NSParameterAssert(key);
128 NSString *filePath = [self cachePathForKey:key]; 100 NSString *filePath = [self cachePathForKey:key];
@@ -146,15 +118,11 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis @@ -146,15 +118,11 @@ static NSString * const SDDiskCacheExtendedAttributeName = @&quot;com.hackemist.SDDis
146 case SDImageCacheConfigExpireTypeAccessDate: 118 case SDImageCacheConfigExpireTypeAccessDate:
147 cacheContentDateKey = NSURLContentAccessDateKey; 119 cacheContentDateKey = NSURLContentAccessDateKey;
148 break; 120 break;
  121 +
149 case SDImageCacheConfigExpireTypeModificationDate: 122 case SDImageCacheConfigExpireTypeModificationDate:
150 cacheContentDateKey = NSURLContentModificationDateKey; 123 cacheContentDateKey = NSURLContentModificationDateKey;
151 break; 124 break;
152 - case SDImageCacheConfigExpireTypeCreationDate:  
153 - cacheContentDateKey = NSURLCreationDateKey;  
154 - break;  
155 - case SDImageCacheConfigExpireTypeChangeDate:  
156 - cacheContentDateKey = NSURLAttributeModificationDateKey;  
157 - break; 125 +
158 default: 126 default:
159 break; 127 break;
160 } 128 }
Example/Pods/SDWebImage/SDWebImage/Core/SDImageAPNGCoder.m
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 #import <MobileCoreServices/MobileCoreServices.h> 13 #import <MobileCoreServices/MobileCoreServices.h>
14 #endif 14 #endif
15 15
16 -// iOS 8 Image/IO framework binary does not contains these APNG constants, so we define them. Thanks Apple :) 16 +// iOS 8 Image/IO framework binary does not contains these APNG contants, so we define them. Thanks Apple :)
17 // We can not use runtime @available check for this issue, because it's a global symbol and should be loaded during launch time by dyld. So hack if the min deployment target version < iOS 9.0, whatever it running on iOS 9+ or not. 17 // We can not use runtime @available check for this issue, because it's a global symbol and should be loaded during launch time by dyld. So hack if the min deployment target version < iOS 9.0, whatever it running on iOS 9+ or not.
18 #if (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0) 18 #if (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0)
19 const CFStringRef kCGImagePropertyAPNGLoopCount = (__bridge CFStringRef)@"LoopCount"; 19 const CFStringRef kCGImagePropertyAPNGLoopCount = (__bridge CFStringRef)@"LoopCount";
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCache.h
@@ -40,7 +40,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -40,7 +40,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
40 */ 40 */
41 SDImageCacheAvoidDecodeImage = 1 << 4, 41 SDImageCacheAvoidDecodeImage = 1 << 4,
42 /** 42 /**
43 - * By default, we decode the animated image. This flag can force decode the first frame only and produce the static image. 43 + * By default, we decode the animated image. This flag can force decode the first frame only and produece the static image.
44 */ 44 */
45 SDImageCacheDecodeFirstFrameOnly = 1 << 5, 45 SDImageCacheDecodeFirstFrameOnly = 1 << 5,
46 /** 46 /**
@@ -49,7 +49,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -49,7 +49,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
49 SDImageCachePreloadAllFrames = 1 << 6, 49 SDImageCachePreloadAllFrames = 1 << 6,
50 /** 50 /**
51 * By default, when you use `SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution. 51 * By default, when you use `SDWebImageContextAnimatedImageClass` context option (like using `SDAnimatedImageView` which designed to use `SDAnimatedImage`), we may still use `UIImage` when the memory cache hit, or image decoder is not available, to behave as a fallback solution.
52 - * Using this option, can ensure we always produce image with your provided class. If failed, an error with code `SDWebImageErrorBadImageData` will be used. 52 + * Using this option, can ensure we always produce image with your provided class. If failed, a error with code `SDWebImageErrorBadImageData` will been used.
53 * Note this options is not compatible with `SDImageCacheDecodeFirstFrameOnly`, which always produce a UIImage/NSImage. 53 * Note this options is not compatible with `SDImageCacheDecodeFirstFrameOnly`, which always produce a UIImage/NSImage.
54 */ 54 */
55 SDImageCacheMatchAnimatedImageClass = 1 << 7, 55 SDImageCacheMatchAnimatedImageClass = 1 << 7,
@@ -65,7 +65,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -65,7 +65,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
65 65
66 /** 66 /**
67 * Cache Config object - storing all kind of settings. 67 * Cache Config object - storing all kind of settings.
68 - * The property is copy so change of current config will not accidentally affect other cache's config. 68 + * The property is copy so change of currrent config will not accidentally affect other cache's config.
69 */ 69 */
70 @property (nonatomic, copy, nonnull, readonly) SDImageCacheConfig *config; 70 @property (nonatomic, copy, nonnull, readonly) SDImageCacheConfig *config;
71 71
@@ -162,7 +162,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -162,7 +162,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
162 * @param key The unique image cache key, usually it's image absolute URL 162 * @param key The unique image cache key, usually it's image absolute URL
163 * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously 163 * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously
164 * @param completionBlock A block executed after the operation is finished 164 * @param completionBlock A block executed after the operation is finished
165 - * @note If no image data is provided and encode to disk, we will try to detect the image format (using either `sd_imageFormat` or `SDAnimatedImage` protocol method) and animation status, to choose the best matched format, including GIF, JPEG or PNG.  
166 */ 165 */
167 - (void)storeImage:(nullable UIImage *)image 166 - (void)storeImage:(nullable UIImage *)image
168 forKey:(nullable NSString *)key 167 forKey:(nullable NSString *)key
@@ -179,7 +178,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -179,7 +178,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
179 * @param key The unique image cache key, usually it's image absolute URL 178 * @param key The unique image cache key, usually it's image absolute URL
180 * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously 179 * @param toDisk Store the image to disk cache if YES. If NO, the completion block is called synchronously
181 * @param completionBlock A block executed after the operation is finished 180 * @param completionBlock A block executed after the operation is finished
182 - * @note If no image data is provided and encode to disk, we will try to detect the image format (using either `sd_imageFormat` or `SDAnimatedImage` protocol method) and animation status, to choose the best matched format, including GIF, JPEG or PNG.  
183 */ 181 */
184 - (void)storeImage:(nullable UIImage *)image 182 - (void)storeImage:(nullable UIImage *)image
185 imageData:(nullable NSData *)imageData 183 imageData:(nullable NSData *)imageData
@@ -227,7 +225,8 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -227,7 +225,8 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
227 #pragma mark - Query and Retrieve Ops 225 #pragma mark - Query and Retrieve Ops
228 226
229 /** 227 /**
230 - * Synchronously query the image data for the given key in disk cache. You can decode the image data to image after loaded. 228 + * Asynchronously queries the cache with operation and call the completion when done.
  229 + * Query the image data for the given key synchronously.
231 * 230 *
232 * @param key The unique key used to store the wanted image 231 * @param key The unique key used to store the wanted image
233 * @return The image data for the given key, or nil if not found. 232 * @return The image data for the given key, or nil if not found.
@@ -235,18 +234,9 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -235,18 +234,9 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
235 - (nullable NSData *)diskImageDataForKey:(nullable NSString *)key; 234 - (nullable NSData *)diskImageDataForKey:(nullable NSString *)key;
236 235
237 /** 236 /**
238 - * Asynchronously query the image data for the given key in disk cache. You can decode the image data to image after loaded. 237 + * Operation that queries the cache asynchronously and call the completion when done.
239 * 238 *
240 - * @param key The unique key used to store the wanted image  
241 - * @param completionBlock the block to be executed when the query is done.  
242 - * @note the completion block will be always executed on the main queue  
243 - */  
244 -- (void)diskImageDataQueryForKey:(nullable NSString *)key completion:(nullable SDImageCacheQueryDataCompletionBlock)completionBlock;  
245 -  
246 -/**  
247 - * Asynchronously queries the cache with operation and call the completion when done.  
248 - *  
249 - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`. 239 + * @param key The unique key used to store the wanted image
250 * @param doneBlock The completion block. Will not get called if the operation is cancelled 240 * @param doneBlock The completion block. Will not get called if the operation is cancelled
251 * 241 *
252 * @return a NSOperation instance containing the cache op 242 * @return a NSOperation instance containing the cache op
@@ -256,7 +246,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -256,7 +246,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
256 /** 246 /**
257 * Asynchronously queries the cache with operation and call the completion when done. 247 * Asynchronously queries the cache with operation and call the completion when done.
258 * 248 *
259 - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`. 249 + * @param key The unique key used to store the wanted image
260 * @param options A mask to specify options to use for this cache query 250 * @param options A mask to specify options to use for this cache query
261 * @param doneBlock The completion block. Will not get called if the operation is cancelled 251 * @param doneBlock The completion block. Will not get called if the operation is cancelled
262 * 252 *
@@ -267,7 +257,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -267,7 +257,7 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
267 /** 257 /**
268 * Asynchronously queries the cache with operation and call the completion when done. 258 * Asynchronously queries the cache with operation and call the completion when done.
269 * 259 *
270 - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`. 260 + * @param key The unique key used to store the wanted image
271 * @param options A mask to specify options to use for this cache query 261 * @param options A mask to specify options to use for this cache query
272 * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. 262 * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.
273 * @param doneBlock The completion block. Will not get called if the operation is cancelled 263 * @param doneBlock The completion block. Will not get called if the operation is cancelled
@@ -277,19 +267,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -277,19 +267,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
277 - (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable SDImageCacheQueryCompletionBlock)doneBlock; 267 - (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable SDImageCacheQueryCompletionBlock)doneBlock;
278 268
279 /** 269 /**
280 - * Asynchronously queries the cache with operation and call the completion when done.  
281 - *  
282 - * @param key The unique key used to store the wanted image. If you want transformed or thumbnail image, calculate the key with `SDTransformedKeyForKey`, `SDThumbnailedKeyForKey`, or generate the cache key from url with `cacheKeyForURL:context:`.  
283 - * @param options A mask to specify options to use for this cache query  
284 - * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.  
285 - * @param queryCacheType Specify where to query the cache from. By default we use `.all`, which means both memory cache and disk cache. You can choose to query memory only or disk only as well. Pass `.none` is invalid and callback with nil immediately.  
286 - * @param doneBlock The completion block. Will not get called if the operation is cancelled  
287 - *  
288 - * @return a NSOperation instance containing the cache op  
289 - */  
290 -- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType done:(nullable SDImageCacheQueryCompletionBlock)doneBlock;  
291 -  
292 -/**  
293 * Synchronously query the memory cache. 270 * Synchronously query the memory cache.
294 * 271 *
295 * @param key The unique key used to store the image 272 * @param key The unique key used to store the image
@@ -306,16 +283,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -306,16 +283,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
306 - (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key; 283 - (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key;
307 284
308 /** 285 /**
309 - * Synchronously query the disk cache. With the options and context which may effect the image generation. (Such as transformer, animated image, thumbnail, etc)  
310 - *  
311 - * @param key The unique key used to store the image  
312 - * @param options A mask to specify options to use for this cache query  
313 - * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.  
314 - * @return The image for the given key, or nil if not found.  
315 - */  
316 -- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context;  
317 -  
318 -/**  
319 * Synchronously query the cache (memory and or disk) after checking the memory cache. 286 * Synchronously query the cache (memory and or disk) after checking the memory cache.
320 * 287 *
321 * @param key The unique key used to store the image 288 * @param key The unique key used to store the image
@@ -323,16 +290,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) { @@ -323,16 +290,6 @@ typedef NS_OPTIONS(NSUInteger, SDImageCacheOptions) {
323 */ 290 */
324 - (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key; 291 - (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key;
325 292
326 -/**  
327 - * Synchronously query the cache (memory and or disk) after checking the memory cache. With the options and context which may effect the image generation. (Such as transformer, animated image, thumbnail, etc)  
328 - *  
329 - * @param key The unique key used to store the image  
330 - * @param options A mask to specify options to use for this cache query  
331 - * @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.  
332 - * @return The image for the given key, or nil if not found.  
333 - */  
334 -- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context;;  
335 -  
336 #pragma mark - Remove Ops 293 #pragma mark - Remove Ops
337 294
338 /** 295 /**
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCache.m
@@ -9,11 +9,11 @@ @@ -9,11 +9,11 @@
9 #import "SDImageCache.h" 9 #import "SDImageCache.h"
10 #import "NSImage+Compatibility.h" 10 #import "NSImage+Compatibility.h"
11 #import "SDImageCodersManager.h" 11 #import "SDImageCodersManager.h"
  12 +#import "SDImageTransformer.h"
12 #import "SDImageCoderHelper.h" 13 #import "SDImageCoderHelper.h"
13 #import "SDAnimatedImage.h" 14 #import "SDAnimatedImage.h"
14 #import "UIImage+MemoryCacheCost.h" 15 #import "UIImage+MemoryCacheCost.h"
15 #import "UIImage+Metadata.h" 16 #import "UIImage+Metadata.h"
16 -#import "UIImage+ExtendedCacheData.h"  
17 17
18 @interface SDImageCache () 18 @interface SDImageCache ()
19 19
@@ -186,55 +186,17 @@ @@ -186,55 +186,17 @@
186 dispatch_async(self.ioQueue, ^{ 186 dispatch_async(self.ioQueue, ^{
187 @autoreleasepool { 187 @autoreleasepool {
188 NSData *data = imageData; 188 NSData *data = imageData;
189 - if (!data && [image conformsToProtocol:@protocol(SDAnimatedImage)]) {  
190 - // If image is custom animated image class, prefer its original animated data  
191 - data = [((id<SDAnimatedImage>)image) animatedImageData];  
192 - }  
193 if (!data && image) { 189 if (!data && image) {
194 - // Check image's associated image format, may return .undefined  
195 - SDImageFormat format = image.sd_imageFormat;  
196 - if (format == SDImageFormatUndefined) {  
197 - // If image is animated, use GIF (APNG may be better, but has bugs before macOS 10.14)  
198 - if (image.sd_isAnimated) {  
199 - format = SDImageFormatGIF;  
200 - } else {  
201 - // If we do not have any data to detect image format, check whether it contains alpha channel to use PNG or JPEG format  
202 - if ([SDImageCoderHelper CGImageContainsAlpha:image.CGImage]) {  
203 - format = SDImageFormatPNG;  
204 - } else {  
205 - format = SDImageFormatJPEG;  
206 - }  
207 - } 190 + // If we do not have any data to detect image format, check whether it contains alpha channel to use PNG or JPEG format
  191 + SDImageFormat format;
  192 + if ([SDImageCoderHelper CGImageContainsAlpha:image.CGImage]) {
  193 + format = SDImageFormatPNG;
  194 + } else {
  195 + format = SDImageFormatJPEG;
208 } 196 }
209 data = [[SDImageCodersManager sharedManager] encodedDataWithImage:image format:format options:nil]; 197 data = [[SDImageCodersManager sharedManager] encodedDataWithImage:image format:format options:nil];
210 } 198 }
211 [self _storeImageDataToDisk:data forKey:key]; 199 [self _storeImageDataToDisk:data forKey:key];
212 - if (image) {  
213 - // Check extended data  
214 - id extendedObject = image.sd_extendedObject;  
215 - if ([extendedObject conformsToProtocol:@protocol(NSCoding)]) {  
216 - NSData *extendedData;  
217 - if (@available(iOS 11, tvOS 11, macOS 10.13, watchOS 4, *)) {  
218 - NSError *error;  
219 - extendedData = [NSKeyedArchiver archivedDataWithRootObject:extendedObject requiringSecureCoding:NO error:&error];  
220 - if (error) {  
221 - NSLog(@"NSKeyedArchiver archive failed with error: %@", error);  
222 - }  
223 - } else {  
224 - @try {  
225 -#pragma clang diagnostic push  
226 -#pragma clang diagnostic ignored "-Wdeprecated-declarations"  
227 - extendedData = [NSKeyedArchiver archivedDataWithRootObject:extendedObject];  
228 -#pragma clang diagnostic pop  
229 - } @catch (NSException *exception) {  
230 - NSLog(@"NSKeyedArchiver archive failed with exception: %@", exception);  
231 - }  
232 - }  
233 - if (extendedData) {  
234 - [self.diskCache setExtendedData:extendedData forKey:key];  
235 - }  
236 - }  
237 - }  
238 } 200 }
239 201
240 if (completionBlock) { 202 if (completionBlock) {
@@ -313,17 +275,6 @@ @@ -313,17 +275,6 @@
313 return [self.diskCache containsDataForKey:key]; 275 return [self.diskCache containsDataForKey:key];
314 } 276 }
315 277
316 -- (void)diskImageDataQueryForKey:(NSString *)key completion:(SDImageCacheQueryDataCompletionBlock)completionBlock {  
317 - dispatch_async(self.ioQueue, ^{  
318 - NSData *imageData = [self diskImageDataBySearchingAllPathsForKey:key];  
319 - if (completionBlock) {  
320 - dispatch_async(dispatch_get_main_queue(), ^{  
321 - completionBlock(imageData);  
322 - });  
323 - }  
324 - });  
325 -}  
326 -  
327 - (nullable NSData *)diskImageDataForKey:(nullable NSString *)key { 278 - (nullable NSData *)diskImageDataForKey:(nullable NSString *)key {
328 if (!key) { 279 if (!key) {
329 return nil; 280 return nil;
@@ -341,12 +292,7 @@ @@ -341,12 +292,7 @@
341 } 292 }
342 293
343 - (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key { 294 - (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key {
344 - return [self imageFromDiskCacheForKey:key options:0 context:nil];  
345 -}  
346 -  
347 -- (nullable UIImage *)imageFromDiskCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context {  
348 - NSData *data = [self diskImageDataForKey:key];  
349 - UIImage *diskImage = [self diskImageForKey:key data:data options:options context:context]; 295 + UIImage *diskImage = [self diskImageForKey:key];
350 if (diskImage && self.config.shouldCacheImagesInMemory) { 296 if (diskImage && self.config.shouldCacheImagesInMemory) {
351 NSUInteger cost = diskImage.sd_memoryCost; 297 NSUInteger cost = diskImage.sd_memoryCost;
352 [self.memoryCache setObject:diskImage forKey:key cost:cost]; 298 [self.memoryCache setObject:diskImage forKey:key cost:cost];
@@ -356,10 +302,6 @@ @@ -356,10 +302,6 @@
356 } 302 }
357 303
358 - (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key { 304 - (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key {
359 - return [self imageFromCacheForKey:key options:0 context:nil];  
360 -}  
361 -  
362 -- (nullable UIImage *)imageFromCacheForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context {  
363 // First check the in-memory cache... 305 // First check the in-memory cache...
364 UIImage *image = [self imageFromMemoryCacheForKey:key]; 306 UIImage *image = [self imageFromMemoryCacheForKey:key];
365 if (image) { 307 if (image) {
@@ -367,7 +309,7 @@ @@ -367,7 +309,7 @@
367 } 309 }
368 310
369 // Second check the disk cache... 311 // Second check the disk cache...
370 - image = [self imageFromDiskCacheForKey:key options:options context:context]; 312 + image = [self imageFromDiskCacheForKey:key];
371 return image; 313 return image;
372 } 314 }
373 315
@@ -404,32 +346,6 @@ @@ -404,32 +346,6 @@
404 - (nullable UIImage *)diskImageForKey:(nullable NSString *)key data:(nullable NSData *)data options:(SDImageCacheOptions)options context:(SDWebImageContext *)context { 346 - (nullable UIImage *)diskImageForKey:(nullable NSString *)key data:(nullable NSData *)data options:(SDImageCacheOptions)options context:(SDWebImageContext *)context {
405 if (data) { 347 if (data) {
406 UIImage *image = SDImageCacheDecodeImageData(data, key, [[self class] imageOptionsFromCacheOptions:options], context); 348 UIImage *image = SDImageCacheDecodeImageData(data, key, [[self class] imageOptionsFromCacheOptions:options], context);
407 - if (image) {  
408 - // Check extended data  
409 - NSData *extendedData = [self.diskCache extendedDataForKey:key];  
410 - if (extendedData) {  
411 - id extendedObject;  
412 - if (@available(iOS 11, tvOS 11, macOS 10.13, watchOS 4, *)) {  
413 - NSError *error;  
414 - NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:extendedData error:&error];  
415 - unarchiver.requiresSecureCoding = NO;  
416 - extendedObject = [unarchiver decodeTopLevelObjectForKey:NSKeyedArchiveRootObjectKey error:&error];  
417 - if (error) {  
418 - NSLog(@"NSKeyedUnarchiver unarchive failed with error: %@", error);  
419 - }  
420 - } else {  
421 - @try {  
422 -#pragma clang diagnostic push  
423 -#pragma clang diagnostic ignored "-Wdeprecated-declarations"  
424 - extendedObject = [NSKeyedUnarchiver unarchiveObjectWithData:extendedData];  
425 -#pragma clang diagnostic pop  
426 - } @catch (NSException *exception) {  
427 - NSLog(@"NSKeyedUnarchiver unarchive failed with exception: %@", exception);  
428 - }  
429 - }  
430 - image.sd_extendedObject = extendedObject;  
431 - }  
432 - }  
433 return image; 349 return image;
434 } else { 350 } else {
435 return nil; 351 return nil;
@@ -445,29 +361,22 @@ @@ -445,29 +361,22 @@
445 } 361 }
446 362
447 - (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable SDImageCacheQueryCompletionBlock)doneBlock { 363 - (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context done:(nullable SDImageCacheQueryCompletionBlock)doneBlock {
448 - return [self queryCacheOperationForKey:key options:options context:context cacheType:SDImageCacheTypeAll done:doneBlock];  
449 -}  
450 -  
451 -- (nullable NSOperation *)queryCacheOperationForKey:(nullable NSString *)key options:(SDImageCacheOptions)options context:(nullable SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType done:(nullable SDImageCacheQueryCompletionBlock)doneBlock {  
452 if (!key) { 364 if (!key) {
453 if (doneBlock) { 365 if (doneBlock) {
454 doneBlock(nil, nil, SDImageCacheTypeNone); 366 doneBlock(nil, nil, SDImageCacheTypeNone);
455 } 367 }
456 return nil; 368 return nil;
457 } 369 }
458 - // Invalid cache type  
459 - if (queryCacheType == SDImageCacheTypeNone) {  
460 - if (doneBlock) {  
461 - doneBlock(nil, nil, SDImageCacheTypeNone);  
462 - }  
463 - return nil; 370 +
  371 + id<SDImageTransformer> transformer = context[SDWebImageContextImageTransformer];
  372 + if (transformer) {
  373 + // grab the transformed disk image if transformer provided
  374 + NSString *transformerKey = [transformer transformerKey];
  375 + key = SDTransformedKeyForKey(key, transformerKey);
464 } 376 }
465 377
466 // First check the in-memory cache... 378 // First check the in-memory cache...
467 - UIImage *image;  
468 - if (queryCacheType != SDImageCacheTypeDisk) {  
469 - image = [self imageFromMemoryCacheForKey:key];  
470 - } 379 + UIImage *image = [self imageFromMemoryCacheForKey:key];
471 380
472 if (image) { 381 if (image) {
473 if (options & SDImageCacheDecodeFirstFrameOnly) { 382 if (options & SDImageCacheDecodeFirstFrameOnly) {
@@ -490,7 +399,7 @@ @@ -490,7 +399,7 @@
490 } 399 }
491 } 400 }
492 401
493 - BOOL shouldQueryMemoryOnly = (queryCacheType == SDImageCacheTypeMemory) || (image && !(options & SDImageCacheQueryMemoryData)); 402 + BOOL shouldQueryMemoryOnly = (image && !(options & SDImageCacheQueryMemoryData));
494 if (shouldQueryMemoryOnly) { 403 if (shouldQueryMemoryOnly) {
495 if (doneBlock) { 404 if (doneBlock) {
496 doneBlock(image, nil, SDImageCacheTypeMemory); 405 doneBlock(image, nil, SDImageCacheTypeMemory);
@@ -604,7 +513,7 @@ @@ -604,7 +513,7 @@
604 }); 513 });
605 } 514 }
606 515
607 -// Make sure to call from io queue by caller 516 +// Make sure to call form io queue by caller
608 - (void)_removeImageFromDiskForKey:(NSString *)key { 517 - (void)_removeImageFromDiskForKey:(NSString *)key {
609 if (!key) { 518 if (!key) {
610 return; 519 return;
@@ -725,10 +634,6 @@ @@ -725,10 +634,6 @@
725 #pragma mark - SDImageCache 634 #pragma mark - SDImageCache
726 635
727 - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(nullable SDWebImageContext *)context completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock { 636 - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(nullable SDWebImageContext *)context completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock {
728 - return [self queryImageForKey:key options:options context:context cacheType:SDImageCacheTypeAll completion:completionBlock];  
729 -}  
730 -  
731 -- (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(nullable SDWebImageContext *)context cacheType:(SDImageCacheType)cacheType completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock {  
732 SDImageCacheOptions cacheOptions = 0; 637 SDImageCacheOptions cacheOptions = 0;
733 if (options & SDWebImageQueryMemoryData) cacheOptions |= SDImageCacheQueryMemoryData; 638 if (options & SDWebImageQueryMemoryData) cacheOptions |= SDImageCacheQueryMemoryData;
734 if (options & SDWebImageQueryMemoryDataSync) cacheOptions |= SDImageCacheQueryMemoryDataSync; 639 if (options & SDWebImageQueryMemoryDataSync) cacheOptions |= SDImageCacheQueryMemoryDataSync;
@@ -739,7 +644,7 @@ @@ -739,7 +644,7 @@
739 if (options & SDWebImagePreloadAllFrames) cacheOptions |= SDImageCachePreloadAllFrames; 644 if (options & SDWebImagePreloadAllFrames) cacheOptions |= SDImageCachePreloadAllFrames;
740 if (options & SDWebImageMatchAnimatedImageClass) cacheOptions |= SDImageCacheMatchAnimatedImageClass; 645 if (options & SDWebImageMatchAnimatedImageClass) cacheOptions |= SDImageCacheMatchAnimatedImageClass;
741 646
742 - return [self queryCacheOperationForKey:key options:cacheOptions context:context cacheType:cacheType done:completionBlock]; 647 + return [self queryCacheOperationForKey:key options:cacheOptions context:context done:completionBlock];
743 } 648 }
744 649
745 - (void)storeImage:(UIImage *)image imageData:(NSData *)imageData forKey:(nullable NSString *)key cacheType:(SDImageCacheType)cacheType completion:(nullable SDWebImageNoParamsBlock)completionBlock { 650 - (void)storeImage:(UIImage *)image imageData:(NSData *)imageData forKey:(nullable NSString *)key cacheType:(SDImageCacheType)cacheType completion:(nullable SDWebImageNoParamsBlock)completionBlock {
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCacheConfig.h
@@ -12,21 +12,13 @@ @@ -12,21 +12,13 @@
12 /// Image Cache Expire Type 12 /// Image Cache Expire Type
13 typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) { 13 typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
14 /** 14 /**
15 - * When the image cache is accessed it will update this value 15 + * When the image is accessed it will update this value
16 */ 16 */
17 SDImageCacheConfigExpireTypeAccessDate, 17 SDImageCacheConfigExpireTypeAccessDate,
18 /** 18 /**
19 - * When the image cache is created or modified it will update this value (Default) 19 + * The image was obtained from the disk cache (Default)
20 */ 20 */
21 - SDImageCacheConfigExpireTypeModificationDate,  
22 - /**  
23 - * When the image cache is created it will update this value  
24 - */  
25 - SDImageCacheConfigExpireTypeCreationDate,  
26 - /**  
27 - * When the image cache is created, modified, renamed, file attribute updated (like permission, xattr) it will update this value  
28 - */  
29 - SDImageCacheConfigExpireTypeChangeDate, 21 + SDImageCacheConfigExpireTypeModificationDate
30 }; 22 };
31 23
32 /** 24 /**
@@ -57,7 +49,7 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) { @@ -57,7 +49,7 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
57 /* 49 /*
58 * The option to control weak memory cache for images. When enable, `SDImageCache`'s memory cache will use a weak maptable to store the image at the same time when it stored to memory, and get removed at the same time. 50 * The option to control weak memory cache for images. When enable, `SDImageCache`'s memory cache will use a weak maptable to store the image at the same time when it stored to memory, and get removed at the same time.
59 * However when memory warning is triggered, since the weak maptable does not hold a strong reference to image instance, even when the memory cache itself is purged, some images which are held strongly by UIImageViews or other live instances can be recovered again, to avoid later re-query from disk cache or network. This may be helpful for the case, for example, when app enter background and memory is purged, cause cell flashing after re-enter foreground. 51 * However when memory warning is triggered, since the weak maptable does not hold a strong reference to image instance, even when the memory cache itself is purged, some images which are held strongly by UIImageViews or other live instances can be recovered again, to avoid later re-query from disk cache or network. This may be helpful for the case, for example, when app enter background and memory is purged, cause cell flashing after re-enter foreground.
60 - * Defaults to YES. You can change this option dynamically. 52 + * Defautls to YES. You can change this option dynamically.
61 */ 53 */
62 @property (assign, nonatomic) BOOL shouldUseWeakMemoryCache; 54 @property (assign, nonatomic) BOOL shouldUseWeakMemoryCache;
63 55
@@ -115,7 +107,7 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) { @@ -115,7 +107,7 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
115 /** 107 /**
116 * The custom file manager for disk cache. Pass nil to let disk cache choose the proper file manager. 108 * The custom file manager for disk cache. Pass nil to let disk cache choose the proper file manager.
117 * Defaults to nil. 109 * Defaults to nil.
118 - * @note This value does not support dynamic changes. Which means further modification on this value after cache initialized has no effect. 110 + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect.
119 * @note Since `NSFileManager` does not support `NSCopying`. We just pass this by reference during copying. So it's not recommend to set this value on `defaultCacheConfig`. 111 * @note Since `NSFileManager` does not support `NSCopying`. We just pass this by reference during copying. So it's not recommend to set this value on `defaultCacheConfig`.
120 */ 112 */
121 @property (strong, nonatomic, nullable) NSFileManager *fileManager; 113 @property (strong, nonatomic, nullable) NSFileManager *fileManager;
@@ -123,14 +115,14 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) { @@ -123,14 +115,14 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) {
123 /** 115 /**
124 * The custom memory cache class. Provided class instance must conform to `SDMemoryCache` protocol to allow usage. 116 * The custom memory cache class. Provided class instance must conform to `SDMemoryCache` protocol to allow usage.
125 * Defaults to built-in `SDMemoryCache` class. 117 * Defaults to built-in `SDMemoryCache` class.
126 - * @note This value does not support dynamic changes. Which means further modification on this value after cache initialized has no effect. 118 + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect.
127 */ 119 */
128 @property (assign, nonatomic, nonnull) Class memoryCacheClass; 120 @property (assign, nonatomic, nonnull) Class memoryCacheClass;
129 121
130 /** 122 /**
131 * The custom disk cache class. Provided class instance must conform to `SDDiskCache` protocol to allow usage. 123 * The custom disk cache class. Provided class instance must conform to `SDDiskCache` protocol to allow usage.
132 * Defaults to built-in `SDDiskCache` class. 124 * Defaults to built-in `SDDiskCache` class.
133 - * @note This value does not support dynamic changes. Which means further modification on this value after cache initialized has no effect. 125 + * @note This value does not support dynamic changes. Which means further modification on this value after cache initlized has no effect.
134 */ 126 */
135 @property (assign ,nonatomic, nonnull) Class diskCacheClass; 127 @property (assign ,nonatomic, nonnull) Class diskCacheClass;
136 128
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.h
@@ -36,7 +36,6 @@ typedef NS_ENUM(NSInteger, SDImageCacheType) { @@ -36,7 +36,6 @@ typedef NS_ENUM(NSInteger, SDImageCacheType) {
36 }; 36 };
37 37
38 typedef void(^SDImageCacheCheckCompletionBlock)(BOOL isInCache); 38 typedef void(^SDImageCacheCheckCompletionBlock)(BOOL isInCache);
39 -typedef void(^SDImageCacheQueryDataCompletionBlock)(NSData * _Nullable data);  
40 typedef void(^SDImageCacheCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize); 39 typedef void(^SDImageCacheCalculateSizeBlock)(NSUInteger fileCount, NSUInteger totalSize);
41 typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nonnull key); 40 typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nonnull key);
42 typedef void(^SDImageCacheQueryCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType); 41 typedef void(^SDImageCacheQueryCompletionBlock)(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType);
@@ -64,7 +63,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn @@ -64,7 +63,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
64 @required 63 @required
65 /** 64 /**
66 Query the cached image from image cache for given key. The operation can be used to cancel the query. 65 Query the cached image from image cache for given key. The operation can be used to cancel the query.
67 - If image is cached in memory, completion is called synchronously, else asynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`) 66 + If image is cached in memory, completion is called synchronously, else aynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`)
68 67
69 @param key The image cache key 68 @param key The image cache key
70 @param options A mask to specify options to use for this query 69 @param options A mask to specify options to use for this query
@@ -78,24 +77,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn @@ -78,24 +77,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
78 completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock; 77 completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock;
79 78
80 /** 79 /**
81 - Query the cached image from image cache for given key. The operation can be used to cancel the query.  
82 - If image is cached in memory, completion is called synchronously, else asynchronously and depends on the options arg (See `SDWebImageQueryDiskSync`)  
83 -  
84 - @param key The image cache key  
85 - @param options A mask to specify options to use for this query  
86 - @param context A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold.  
87 - @param cacheType Specify where to query the cache from. By default we use `.all`, which means both memory cache and disk cache. You can choose to query memory only or disk only as well. Pass `.none` is invalid and callback with nil immediately.  
88 - @param completionBlock The completion block. Will not get called if the operation is cancelled  
89 - @return The operation for this query  
90 - */  
91 -- (nullable id<SDWebImageOperation>)queryImageForKey:(nullable NSString *)key  
92 - options:(SDWebImageOptions)options  
93 - context:(nullable SDWebImageContext *)context  
94 - cacheType:(SDImageCacheType)cacheType  
95 - completion:(nullable SDImageCacheQueryCompletionBlock)completionBlock;  
96 -  
97 -/**  
98 - Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else asynchronously. 80 + Store the image into image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously.
99 81
100 @param image The image to store 82 @param image The image to store
101 @param imageData The image data to be used for disk storage 83 @param imageData The image data to be used for disk storage
@@ -110,7 +92,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn @@ -110,7 +92,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
110 completion:(nullable SDWebImageNoParamsBlock)completionBlock; 92 completion:(nullable SDWebImageNoParamsBlock)completionBlock;
111 93
112 /** 94 /**
113 - Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else asynchronously. 95 + Remove the image from image cache for the given key. If cache type is memory only, completion is called synchronously, else aynchronously.
114 96
115 @param key The image cache key 97 @param key The image cache key
116 @param cacheType The image remove op cache type 98 @param cacheType The image remove op cache type
@@ -121,7 +103,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn @@ -121,7 +103,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
121 completion:(nullable SDWebImageNoParamsBlock)completionBlock; 103 completion:(nullable SDWebImageNoParamsBlock)completionBlock;
122 104
123 /** 105 /**
124 - Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else asynchronously. 106 + Check if image cache contains the image for the given key (does not load the image). If image is cached in memory, completion is called synchronously, else aynchronously.
125 107
126 @param key The image cache key 108 @param key The image cache key
127 @param cacheType The image contains op cache type 109 @param cacheType The image contains op cache type
@@ -132,7 +114,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn @@ -132,7 +114,7 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonn
132 completion:(nullable SDImageCacheContainsCompletionBlock)completionBlock; 114 completion:(nullable SDImageCacheContainsCompletionBlock)completionBlock;
133 115
134 /** 116 /**
135 - Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else asynchronously. 117 + Clear all the cached images for image cache. If cache type is memory only, completion is called synchronously, else aynchronously.
136 118
137 @param cacheType The image clear op cache type 119 @param cacheType The image clear op cache type
138 @param completionBlock A block executed after the operation is finished 120 @param completionBlock A block executed after the operation is finished
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.m
@@ -18,32 +18,11 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS @@ -18,32 +18,11 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
18 BOOL decodeFirstFrame = SD_OPTIONS_CONTAINS(options, SDWebImageDecodeFirstFrameOnly); 18 BOOL decodeFirstFrame = SD_OPTIONS_CONTAINS(options, SDWebImageDecodeFirstFrameOnly);
19 NSNumber *scaleValue = context[SDWebImageContextImageScaleFactor]; 19 NSNumber *scaleValue = context[SDWebImageContextImageScaleFactor];
20 CGFloat scale = scaleValue.doubleValue >= 1 ? scaleValue.doubleValue : SDImageScaleFactorForKey(cacheKey); 20 CGFloat scale = scaleValue.doubleValue >= 1 ? scaleValue.doubleValue : SDImageScaleFactorForKey(cacheKey);
21 - NSNumber *preserveAspectRatioValue = context[SDWebImageContextImagePreserveAspectRatio];  
22 - NSValue *thumbnailSizeValue;  
23 - BOOL shouldScaleDown = SD_OPTIONS_CONTAINS(options, SDWebImageScaleDownLargeImages);  
24 - if (shouldScaleDown) {  
25 - CGFloat thumbnailPixels = SDImageCoderHelper.defaultScaleDownLimitBytes / 4;  
26 - CGFloat dimension = ceil(sqrt(thumbnailPixels));  
27 - thumbnailSizeValue = @(CGSizeMake(dimension, dimension));  
28 - }  
29 - if (context[SDWebImageContextImageThumbnailPixelSize]) {  
30 - thumbnailSizeValue = context[SDWebImageContextImageThumbnailPixelSize];  
31 - }  
32 -  
33 - SDImageCoderMutableOptions *mutableCoderOptions = [NSMutableDictionary dictionaryWithCapacity:2];  
34 - mutableCoderOptions[SDImageCoderDecodeFirstFrameOnly] = @(decodeFirstFrame);  
35 - mutableCoderOptions[SDImageCoderDecodeScaleFactor] = @(scale);  
36 - mutableCoderOptions[SDImageCoderDecodePreserveAspectRatio] = preserveAspectRatioValue;  
37 - mutableCoderOptions[SDImageCoderDecodeThumbnailPixelSize] = thumbnailSizeValue;  
38 - mutableCoderOptions[SDImageCoderWebImageContext] = context;  
39 - SDImageCoderOptions *coderOptions = [mutableCoderOptions copy];  
40 -  
41 - // Grab the image coder  
42 - id<SDImageCoder> imageCoder;  
43 - if ([context[SDWebImageContextImageCoder] conformsToProtocol:@protocol(SDImageCoder)]) {  
44 - imageCoder = context[SDWebImageContextImageCoder];  
45 - } else {  
46 - imageCoder = [SDImageCodersManager sharedManager]; 21 + SDImageCoderOptions *coderOptions = @{SDImageCoderDecodeFirstFrameOnly : @(decodeFirstFrame), SDImageCoderDecodeScaleFactor : @(scale)};
  22 + if (context) {
  23 + SDImageCoderMutableOptions *mutableCoderOptions = [coderOptions mutableCopy];
  24 + [mutableCoderOptions setValue:context forKey:SDImageCoderWebImageContext];
  25 + coderOptions = [mutableCoderOptions copy];
47 } 26 }
48 27
49 if (!decodeFirstFrame) { 28 if (!decodeFirstFrame) {
@@ -65,7 +44,7 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS @@ -65,7 +44,7 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
65 } 44 }
66 } 45 }
67 if (!image) { 46 if (!image) {
68 - image = [imageCoder decodedImageWithData:imageData options:coderOptions]; 47 + image = [[SDImageCodersManager sharedManager] decodedImageWithData:imageData options:coderOptions];
69 } 48 }
70 if (image) { 49 if (image) {
71 BOOL shouldDecode = !SD_OPTIONS_CONTAINS(options, SDWebImageAvoidDecodeImage); 50 BOOL shouldDecode = !SD_OPTIONS_CONTAINS(options, SDWebImageAvoidDecodeImage);
@@ -77,7 +56,12 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS @@ -77,7 +56,12 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
77 shouldDecode = NO; 56 shouldDecode = NO;
78 } 57 }
79 if (shouldDecode) { 58 if (shouldDecode) {
80 - image = [SDImageCoderHelper decodedImageWithImage:image]; 59 + BOOL shouldScaleDown = SD_OPTIONS_CONTAINS(options, SDWebImageScaleDownLargeImages);
  60 + if (shouldScaleDown) {
  61 + image = [SDImageCoderHelper decodedAndScaledDownImageWithImage:image limitBytes:0];
  62 + } else {
  63 + image = [SDImageCoderHelper decodedImageWithImage:image];
  64 + }
81 } 65 }
82 } 66 }
83 67
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCachesManager.m
@@ -85,10 +85,6 @@ @@ -85,10 +85,6 @@
85 #pragma mark - SDImageCache 85 #pragma mark - SDImageCache
86 86
87 - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock { 87 - (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock {
88 - return [self queryImageForKey:key options:options context:context cacheType:SDImageCacheTypeAll completion:completionBlock];  
89 -}  
90 -  
91 -- (id<SDWebImageOperation>)queryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)cacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock {  
92 if (!key) { 88 if (!key) {
93 return nil; 89 return nil;
94 } 90 }
@@ -97,30 +93,30 @@ @@ -97,30 +93,30 @@
97 if (count == 0) { 93 if (count == 0) {
98 return nil; 94 return nil;
99 } else if (count == 1) { 95 } else if (count == 1) {
100 - return [caches.firstObject queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock]; 96 + return [caches.firstObject queryImageForKey:key options:options context:context completion:completionBlock];
101 } 97 }
102 switch (self.queryOperationPolicy) { 98 switch (self.queryOperationPolicy) {
103 case SDImageCachesManagerOperationPolicyHighestOnly: { 99 case SDImageCachesManagerOperationPolicyHighestOnly: {
104 id<SDImageCache> cache = caches.lastObject; 100 id<SDImageCache> cache = caches.lastObject;
105 - return [cache queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock]; 101 + return [cache queryImageForKey:key options:options context:context completion:completionBlock];
106 } 102 }
107 break; 103 break;
108 case SDImageCachesManagerOperationPolicyLowestOnly: { 104 case SDImageCachesManagerOperationPolicyLowestOnly: {
109 id<SDImageCache> cache = caches.firstObject; 105 id<SDImageCache> cache = caches.firstObject;
110 - return [cache queryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock]; 106 + return [cache queryImageForKey:key options:options context:context completion:completionBlock];
111 } 107 }
112 break; 108 break;
113 case SDImageCachesManagerOperationPolicyConcurrent: { 109 case SDImageCachesManagerOperationPolicyConcurrent: {
114 SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new]; 110 SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
115 [operation beginWithTotalCount:caches.count]; 111 [operation beginWithTotalCount:caches.count];
116 - [self concurrentQueryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation]; 112 + [self concurrentQueryImageForKey:key options:options context:context completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
117 return operation; 113 return operation;
118 } 114 }
119 break; 115 break;
120 case SDImageCachesManagerOperationPolicySerial: { 116 case SDImageCachesManagerOperationPolicySerial: {
121 SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new]; 117 SDImageCachesManagerOperation *operation = [SDImageCachesManagerOperation new];
122 [operation beginWithTotalCount:caches.count]; 118 [operation beginWithTotalCount:caches.count];
123 - [self serialQueryImageForKey:key options:options context:context cacheType:cacheType completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation]; 119 + [self serialQueryImageForKey:key options:options context:context completion:completionBlock enumerator:caches.reverseObjectEnumerator operation:operation];
124 return operation; 120 return operation;
125 } 121 }
126 break; 122 break;
@@ -283,11 +279,11 @@ @@ -283,11 +279,11 @@
283 279
284 #pragma mark - Concurrent Operation 280 #pragma mark - Concurrent Operation
285 281
286 -- (void)concurrentQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation { 282 +- (void)concurrentQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
287 NSParameterAssert(enumerator); 283 NSParameterAssert(enumerator);
288 NSParameterAssert(operation); 284 NSParameterAssert(operation);
289 for (id<SDImageCache> cache in enumerator) { 285 for (id<SDImageCache> cache in enumerator) {
290 - [cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) { 286 + [cache queryImageForKey:key options:options context:context completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
291 if (operation.isCancelled) { 287 if (operation.isCancelled) {
292 // Cancelled 288 // Cancelled
293 return; 289 return;
@@ -426,7 +422,7 @@ @@ -426,7 +422,7 @@
426 422
427 #pragma mark - Serial Operation 423 #pragma mark - Serial Operation
428 424
429 -- (void)serialQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context cacheType:(SDImageCacheType)queryCacheType completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation { 425 +- (void)serialQueryImageForKey:(NSString *)key options:(SDWebImageOptions)options context:(SDWebImageContext *)context completion:(SDImageCacheQueryCompletionBlock)completionBlock enumerator:(NSEnumerator<id<SDImageCache>> *)enumerator operation:(SDImageCachesManagerOperation *)operation {
430 NSParameterAssert(enumerator); 426 NSParameterAssert(enumerator);
431 NSParameterAssert(operation); 427 NSParameterAssert(operation);
432 id<SDImageCache> cache = enumerator.nextObject; 428 id<SDImageCache> cache = enumerator.nextObject;
@@ -439,7 +435,7 @@ @@ -439,7 +435,7 @@
439 return; 435 return;
440 } 436 }
441 @weakify(self); 437 @weakify(self);
442 - [cache queryImageForKey:key options:options context:context cacheType:queryCacheType completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) { 438 + [cache queryImageForKey:key options:options context:context completion:^(UIImage * _Nullable image, NSData * _Nullable data, SDImageCacheType cacheType) {
443 @strongify(self); 439 @strongify(self);
444 if (operation.isCancelled) { 440 if (operation.isCancelled) {
445 // Cancelled 441 // Cancelled
@@ -459,7 +455,7 @@ @@ -459,7 +455,7 @@
459 return; 455 return;
460 } 456 }
461 // Next 457 // Next
462 - [self serialQueryImageForKey:key options:options context:context cacheType:queryCacheType completion:completionBlock enumerator:enumerator operation:operation]; 458 + [self serialQueryImageForKey:key options:options context:context completion:completionBlock enumerator:enumerator operation:operation];
463 }]; 459 }];
464 } 460 }
465 461
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.h
@@ -21,30 +21,12 @@ typedef NSMutableDictionary&lt;SDImageCoderOption, id&gt; SDImageCoderMutableOptions; @@ -21,30 +21,12 @@ typedef NSMutableDictionary&lt;SDImageCoderOption, id&gt; SDImageCoderMutableOptions;
21 @note works for `SDImageCoder`. 21 @note works for `SDImageCoder`.
22 */ 22 */
23 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeFirstFrameOnly; 23 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeFirstFrameOnly;
24 -  
25 /** 24 /**
26 A CGFloat value which is greater than or equal to 1.0. This value specify the image scale factor for decoding. If not provide, use 1.0. (NSNumber) 25 A CGFloat value which is greater than or equal to 1.0. This value specify the image scale factor for decoding. If not provide, use 1.0. (NSNumber)
27 @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`. 26 @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`.
28 */ 27 */
29 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeScaleFactor; 28 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeScaleFactor;
30 29
31 -/**  
32 - A Boolean value indicating whether to keep the original aspect ratio when generating thumbnail images (or bitmap images from vector format).  
33 - Defaults to YES.  
34 - @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`.  
35 - */  
36 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodePreserveAspectRatio;  
37 -  
38 -/**  
39 - A CGSize value indicating whether or not to generate the thumbnail images (or bitmap images from vector format). When this value is provided, the decoder will generate a thumbnail image which pixel size is smaller than or equal to (depends the `.preserveAspectRatio`) the value size.  
40 - Defaults to CGSizeZero, which means no thumbnail generation at all.  
41 - @note Supports for animated image as well.  
42 - @note When you pass `.preserveAspectRatio == NO`, the thumbnail image is stretched to match each dimension. When `.preserveAspectRatio == YES`, the thumbnail image's width is limited to pixel size's width, the thumbnail image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both.  
43 - @note works for `SDImageCoder`, `SDProgressiveImageCoder`, `SDAnimatedImageCoder`.  
44 - */  
45 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodeThumbnailPixelSize;  
46 -  
47 -  
48 // These options are for image encoding 30 // These options are for image encoding
49 /** 31 /**
50 A Boolean value indicating whether to encode the first frame only for animated image during encoding. (NSNumber). If not provide, encode animated image if need. 32 A Boolean value indicating whether to encode the first frame only for animated image during encoding. (NSNumber). If not provide, encode animated image if need.
@@ -58,42 +40,12 @@ FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeFirstFrame @@ -58,42 +40,12 @@ FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeFirstFrame
58 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeCompressionQuality; 40 FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeCompressionQuality;
59 41
60 /** 42 /**
61 - A UIColor(NSColor) value to used for non-alpha image encoding when the input image has alpha channel, the background color will be used to compose the alpha one. If not provide, use white color.  
62 - @note works for `SDImageCoder`  
63 - */  
64 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeBackgroundColor;  
65 -  
66 -/**  
67 - A CGSize value indicating the max image resolution in pixels during encoding. For vector image, this also effect the output vector data information about width and height. The encoder will not generate the encoded image larger than this limit. Note it always use the aspect ratio of input image..  
68 - Defaults to CGSizeZero, which means no max size limit at all.  
69 - @note Supports for animated image as well.  
70 - @note The output image's width is limited to pixel size's width, the output image's height is limited to pixel size's height. For common cases, you can just pass a square size to limit both.  
71 - @note works for `SDImageCoder`  
72 - */  
73 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeMaxPixelSize;  
74 -  
75 -/**  
76 - A NSUInteger value specify the max output data bytes size after encoding. Some lossy format like JPEG/HEIF supports the hint for codec to automatically reduce the quality and match the file size you want. Note this option will override the `SDImageCoderEncodeCompressionQuality`, because now the quality is decided by the encoder. (NSNumber)  
77 - @note This is a hint, no guarantee for output size because of compression algorithm limit. And this options does not works for vector images.  
78 - @note works for `SDImageCoder`  
79 - */  
80 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeMaxFileSize;  
81 -  
82 -/**  
83 - A Boolean value indicating the encoding format should contains a thumbnail image into the output data. Only some of image format (like JPEG/HEIF/AVIF) support this behavior. The embed thumbnail will be used during next time thumbnail decoding (provided `.thumbnailPixelSize`), which is faster than full image thumbnail decoding. (NSNumber)  
84 - Defaults to NO, which does not embed any thumbnail.  
85 - @note The thumbnail image's pixel size is not defined, the encoder can choose the proper pixel size which is suitable for encoding quality.  
86 - @note works for `SDImageCoder`  
87 - */  
88 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderEncodeEmbedThumbnail;  
89 -  
90 -/**  
91 A SDWebImageContext object which hold the original context options from top-level API. (SDWebImageContext) 43 A SDWebImageContext object which hold the original context options from top-level API. (SDWebImageContext)
92 This option is ignored for all built-in coders and take no effect. 44 This option is ignored for all built-in coders and take no effect.
93 - But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data information only. 45 + But this may be useful for some custom coders, because some business logic may dependent on things other than image or image data inforamtion only.
94 See `SDWebImageContext` for more detailed information. 46 See `SDWebImageContext` for more detailed information.
95 */ 47 */
96 -FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderWebImageContext API_DEPRECATED("The coder component will be seperated from Core subspec in the future. Update your code to not rely on this context option.", macos(10.10, API_TO_BE_DEPRECATED), ios(8.0, API_TO_BE_DEPRECATED), tvos(9.0, API_TO_BE_DEPRECATED), watchos(2.0, API_TO_BE_DEPRECATED));; 48 +FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderWebImageContext;
97 49
98 #pragma mark - Coder 50 #pragma mark - Coder
99 /** 51 /**
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoder.m
@@ -10,14 +10,8 @@ @@ -10,14 +10,8 @@
10 10
11 SDImageCoderOption const SDImageCoderDecodeFirstFrameOnly = @"decodeFirstFrameOnly"; 11 SDImageCoderOption const SDImageCoderDecodeFirstFrameOnly = @"decodeFirstFrameOnly";
12 SDImageCoderOption const SDImageCoderDecodeScaleFactor = @"decodeScaleFactor"; 12 SDImageCoderOption const SDImageCoderDecodeScaleFactor = @"decodeScaleFactor";
13 -SDImageCoderOption const SDImageCoderDecodePreserveAspectRatio = @"decodePreserveAspectRatio";  
14 -SDImageCoderOption const SDImageCoderDecodeThumbnailPixelSize = @"decodeThumbnailPixelSize";  
15 13
16 SDImageCoderOption const SDImageCoderEncodeFirstFrameOnly = @"encodeFirstFrameOnly"; 14 SDImageCoderOption const SDImageCoderEncodeFirstFrameOnly = @"encodeFirstFrameOnly";
17 SDImageCoderOption const SDImageCoderEncodeCompressionQuality = @"encodeCompressionQuality"; 15 SDImageCoderOption const SDImageCoderEncodeCompressionQuality = @"encodeCompressionQuality";
18 -SDImageCoderOption const SDImageCoderEncodeBackgroundColor = @"encodeBackgroundColor";  
19 -SDImageCoderOption const SDImageCoderEncodeMaxPixelSize = @"encodeMaxPixelSize";  
20 -SDImageCoderOption const SDImageCoderEncodeMaxFileSize = @"encodeMaxFileSize";  
21 -SDImageCoderOption const SDImageCoderEncodeEmbedThumbnail = @"encodeEmbedThumbnail";  
22 16
23 SDImageCoderOption const SDImageCoderWebImageContext = @"webImageContext"; 17 SDImageCoderOption const SDImageCoderWebImageContext = @"webImageContext";
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.h
@@ -74,16 +74,6 @@ @@ -74,16 +74,6 @@
74 + (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage orientation:(CGImagePropertyOrientation)orientation CF_RETURNS_RETAINED; 74 + (CGImageRef _Nullable)CGImageCreateDecoded:(_Nonnull CGImageRef)cgImage orientation:(CGImagePropertyOrientation)orientation CF_RETURNS_RETAINED;
75 75
76 /** 76 /**
77 - Create a scaled CGImage by the provided CGImage and size. This follows The Create Rule and you are response to call release after usage.  
78 - It will detect whether the image size matching the scale size, if not, stretch the image to the target size.  
79 -  
80 - @param cgImage The CGImage  
81 - @param size The scale size in pixel.  
82 - @return A new created scaled image  
83 - */  
84 -+ (CGImageRef _Nullable)CGImageCreateScaled:(_Nonnull CGImageRef)cgImage size:(CGSize)size CF_RETURNS_RETAINED;  
85 -  
86 -/**  
87 Return the decoded image by the provided image. This one unlike `CGImageCreateDecoded:`, will not decode the image which contains alpha channel or animated image 77 Return the decoded image by the provided image. This one unlike `CGImageCreateDecoded:`, will not decode the image which contains alpha channel or animated image
88 @param image The image to be decoded 78 @param image The image to be decoded
89 @return The decoded image 79 @return The decoded image
@@ -99,12 +89,6 @@ @@ -99,12 +89,6 @@
99 */ 89 */
100 + (UIImage * _Nullable)decodedAndScaledDownImageWithImage:(UIImage * _Nullable)image limitBytes:(NSUInteger)bytes; 90 + (UIImage * _Nullable)decodedAndScaledDownImageWithImage:(UIImage * _Nullable)image limitBytes:(NSUInteger)bytes;
101 91
102 -/**  
103 - Control the default limit bytes to scale down largest images.  
104 - This value must be larger than or equal to 1MB. Defaults to 60MB on iOS/tvOS, 90MB on macOS, 30MB on watchOS.  
105 - */  
106 -@property (class, readwrite) NSUInteger defaultScaleDownLimitBytes;  
107 -  
108 #if SD_UIKIT || SD_WATCH 92 #if SD_UIKIT || SD_WATCH
109 /** 93 /**
110 Convert an EXIF image orientation to an iOS one. 94 Convert an EXIF image orientation to an iOS one.
Example/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.m
@@ -12,35 +12,35 @@ @@ -12,35 +12,35 @@
12 #import "NSData+ImageContentType.h" 12 #import "NSData+ImageContentType.h"
13 #import "SDAnimatedImageRep.h" 13 #import "SDAnimatedImageRep.h"
14 #import "UIImage+ForceDecode.h" 14 #import "UIImage+ForceDecode.h"
15 -#import "SDAssociatedObject.h"  
16 #import "UIImage+Metadata.h" 15 #import "UIImage+Metadata.h"
17 -#import "SDInternalMacros.h"  
18 -#import <Accelerate/Accelerate.h>  
19 -  
20 -static inline size_t SDByteAlign(size_t size, size_t alignment) {  
21 - return ((size + (alignment - 1)) / alignment) * alignment;  
22 -}  
23 16
  17 +#if SD_UIKIT || SD_WATCH
24 static const size_t kBytesPerPixel = 4; 18 static const size_t kBytesPerPixel = 4;
25 static const size_t kBitsPerComponent = 8; 19 static const size_t kBitsPerComponent = 8;
26 20
27 -static const CGFloat kBytesPerMB = 1024.0f * 1024.0f;  
28 -static const CGFloat kPixelsPerMB = kBytesPerMB / kBytesPerPixel;  
29 /* 21 /*
30 * Defines the maximum size in MB of the decoded image when the flag `SDWebImageScaleDownLargeImages` is set 22 * Defines the maximum size in MB of the decoded image when the flag `SDWebImageScaleDownLargeImages` is set
31 * Suggested value for iPad1 and iPhone 3GS: 60. 23 * Suggested value for iPad1 and iPhone 3GS: 60.
32 * Suggested value for iPad2 and iPhone 4: 120. 24 * Suggested value for iPad2 and iPhone 4: 120.
33 * Suggested value for iPhone 3G and iPod 2 and earlier devices: 30. 25 * Suggested value for iPhone 3G and iPod 2 and earlier devices: 30.
34 */ 26 */
35 -#if SD_MAC  
36 -static CGFloat kDestImageLimitBytes = 90.f * kBytesPerMB;  
37 -#elif SD_UIKIT  
38 -static CGFloat kDestImageLimitBytes = 60.f * kBytesPerMB;  
39 -#elif SD_WATCH  
40 -static CGFloat kDestImageLimitBytes = 30.f * kBytesPerMB;  
41 -#endif 27 +static const CGFloat kDestImageSizeMB = 60.f;
  28 +
  29 +/*
  30 + * Defines the maximum size in MB of a tile used to decode image when the flag `SDWebImageScaleDownLargeImages` is set
  31 + * Suggested value for iPad1 and iPhone 3GS: 20.
  32 + * Suggested value for iPad2 and iPhone 4: 40.
  33 + * Suggested value for iPhone 3G and iPod 2 and earlier devices: 10.
  34 + */
  35 +static const CGFloat kSourceImageTileSizeMB = 20.f;
  36 +
  37 +static const CGFloat kBytesPerMB = 1024.0f * 1024.0f;
  38 +static const CGFloat kPixelsPerMB = kBytesPerMB / kBytesPerPixel;
  39 +static const CGFloat kDestTotalPixels = kDestImageSizeMB * kPixelsPerMB;
  40 +static const CGFloat kTileTotalPixels = kSourceImageTileSizeMB * kPixelsPerMB;
42 41
43 static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to overlap the seems where tiles meet. 42 static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to overlap the seems where tiles meet.
  43 +#endif
44 44
45 @implementation SDImageCoderHelper 45 @implementation SDImageCoderHelper
46 46
@@ -277,57 +277,10 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -277,57 +277,10 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
277 return newImageRef; 277 return newImageRef;
278 } 278 }
279 279
280 -+ (CGImageRef)CGImageCreateScaled:(CGImageRef)cgImage size:(CGSize)size {  
281 - if (!cgImage) {  
282 - return NULL;  
283 - }  
284 - size_t width = CGImageGetWidth(cgImage);  
285 - size_t height = CGImageGetHeight(cgImage);  
286 - if (width == size.width && height == size.height) {  
287 - CGImageRetain(cgImage);  
288 - return cgImage;  
289 - }  
290 -  
291 - __block vImage_Buffer input_buffer = {}, output_buffer = {};  
292 - @onExit {  
293 - if (input_buffer.data) free(input_buffer.data);  
294 - if (output_buffer.data) free(output_buffer.data);  
295 - };  
296 - BOOL hasAlpha = [self CGImageContainsAlpha:cgImage];  
297 - // iOS display alpha info (BGRA8888/BGRX8888)  
298 - CGBitmapInfo bitmapInfo = kCGBitmapByteOrder32Host;  
299 - bitmapInfo |= hasAlpha ? kCGImageAlphaPremultipliedFirst : kCGImageAlphaNoneSkipFirst;  
300 - vImage_CGImageFormat format = (vImage_CGImageFormat) {  
301 - .bitsPerComponent = 8,  
302 - .bitsPerPixel = 32,  
303 - .colorSpace = NULL,  
304 - .bitmapInfo = bitmapInfo,  
305 - .version = 0,  
306 - .decode = NULL,  
307 - .renderingIntent = kCGRenderingIntentDefault,  
308 - };  
309 -  
310 - vImage_Error a_ret = vImageBuffer_InitWithCGImage(&input_buffer, &format, NULL, cgImage, kvImageNoFlags);  
311 - if (a_ret != kvImageNoError) return NULL;  
312 - output_buffer.width = MAX(size.width, 0);  
313 - output_buffer.height = MAX(size.height, 0);  
314 - output_buffer.rowBytes = SDByteAlign(output_buffer.width * 4, 64);  
315 - output_buffer.data = malloc(output_buffer.rowBytes * output_buffer.height);  
316 - if (!output_buffer.data) return NULL;  
317 -  
318 - vImage_Error ret = vImageScale_ARGB8888(&input_buffer, &output_buffer, NULL, kvImageHighQualityResampling);  
319 - if (ret != kvImageNoError) return NULL;  
320 -  
321 - CGImageRef outputImage = vImageCreateCGImageFromBuffer(&output_buffer, &format, NULL, NULL, kvImageNoFlags, &ret);  
322 - if (ret != kvImageNoError) {  
323 - CGImageRelease(outputImage);  
324 - return NULL;  
325 - }  
326 -  
327 - return outputImage;  
328 -}  
329 -  
330 + (UIImage *)decodedImageWithImage:(UIImage *)image { 280 + (UIImage *)decodedImageWithImage:(UIImage *)image {
  281 +#if SD_MAC
  282 + return image;
  283 +#else
331 if (![self shouldDecodeImage:image]) { 284 if (![self shouldDecodeImage:image]) {
332 return image; 285 return image;
333 } 286 }
@@ -336,18 +289,18 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -336,18 +289,18 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
336 if (!imageRef) { 289 if (!imageRef) {
337 return image; 290 return image;
338 } 291 }
339 -#if SD_MAC  
340 - UIImage *decodedImage = [[UIImage alloc] initWithCGImage:imageRef scale:image.scale orientation:kCGImagePropertyOrientationUp];  
341 -#else  
342 UIImage *decodedImage = [[UIImage alloc] initWithCGImage:imageRef scale:image.scale orientation:image.imageOrientation]; 292 UIImage *decodedImage = [[UIImage alloc] initWithCGImage:imageRef scale:image.scale orientation:image.imageOrientation];
343 -#endif  
344 CGImageRelease(imageRef); 293 CGImageRelease(imageRef);
345 - SDImageCopyAssociatedObject(image, decodedImage);  
346 decodedImage.sd_isDecoded = YES; 294 decodedImage.sd_isDecoded = YES;
  295 + decodedImage.sd_imageFormat = image.sd_imageFormat;
347 return decodedImage; 296 return decodedImage;
  297 +#endif
348 } 298 }
349 299
350 + (UIImage *)decodedAndScaledDownImageWithImage:(UIImage *)image limitBytes:(NSUInteger)bytes { 300 + (UIImage *)decodedAndScaledDownImageWithImage:(UIImage *)image limitBytes:(NSUInteger)bytes {
  301 +#if SD_MAC
  302 + return image;
  303 +#else
351 if (![self shouldDecodeImage:image]) { 304 if (![self shouldDecodeImage:image]) {
352 return image; 305 return image;
353 } 306 }
@@ -358,11 +311,13 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -358,11 +311,13 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
358 311
359 CGFloat destTotalPixels; 312 CGFloat destTotalPixels;
360 CGFloat tileTotalPixels; 313 CGFloat tileTotalPixels;
361 - if (bytes == 0) {  
362 - bytes = kDestImageLimitBytes; 314 + if (bytes > 0) {
  315 + destTotalPixels = bytes / kBytesPerPixel;
  316 + tileTotalPixels = destTotalPixels / 3;
  317 + } else {
  318 + destTotalPixels = kDestTotalPixels;
  319 + tileTotalPixels = kTileTotalPixels;
363 } 320 }
364 - destTotalPixels = bytes / kBytesPerPixel;  
365 - tileTotalPixels = destTotalPixels / 3;  
366 CGContextRef destContext; 321 CGContextRef destContext;
367 322
368 // autorelease the bitmap context and all vars to help system to free memory when there are memory warning. 323 // autorelease the bitmap context and all vars to help system to free memory when there are memory warning.
@@ -406,13 +361,13 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -406,13 +361,13 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
406 CGContextSetInterpolationQuality(destContext, kCGInterpolationHigh); 361 CGContextSetInterpolationQuality(destContext, kCGInterpolationHigh);
407 362
408 // Now define the size of the rectangle to be used for the 363 // Now define the size of the rectangle to be used for the
409 - // incremental bits from the input image to the output image. 364 + // incremental blits from the input image to the output image.
410 // we use a source tile width equal to the width of the source 365 // we use a source tile width equal to the width of the source
411 // image due to the way that iOS retrieves image data from disk. 366 // image due to the way that iOS retrieves image data from disk.
412 // iOS must decode an image from disk in full width 'bands', even 367 // iOS must decode an image from disk in full width 'bands', even
413 // if current graphics context is clipped to a subrect within that 368 // if current graphics context is clipped to a subrect within that
414 // band. Therefore we fully utilize all of the pixel data that results 369 // band. Therefore we fully utilize all of the pixel data that results
415 - // from a decoding operation by anchoring our tile size to the full 370 + // from a decoding opertion by achnoring our tile size to the full
416 // width of the input image. 371 // width of the input image.
417 CGRect sourceTile = CGRectZero; 372 CGRect sourceTile = CGRectZero;
418 sourceTile.size.width = sourceResolution.width; 373 sourceTile.size.width = sourceResolution.width;
@@ -428,7 +383,7 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -428,7 +383,7 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
428 destTile.size.height = sourceTile.size.height * imageScale; 383 destTile.size.height = sourceTile.size.height * imageScale;
429 destTile.origin.x = 0.0f; 384 destTile.origin.x = 0.0f;
430 // The source seem overlap is proportionate to the destination seem overlap. 385 // The source seem overlap is proportionate to the destination seem overlap.
431 - // this is the amount of pixels to overlap each tile as we assemble the output image. 386 + // this is the amount of pixels to overlap each tile as we assemble the ouput image.
432 float sourceSeemOverlap = (int)((kDestSeemOverlap/destResolution.height)*sourceResolution.height); 387 float sourceSeemOverlap = (int)((kDestSeemOverlap/destResolution.height)*sourceResolution.height);
433 CGImageRef sourceTileImageRef; 388 CGImageRef sourceTileImageRef;
434 // calculate the number of read/write operations required to assemble the 389 // calculate the number of read/write operations required to assemble the
@@ -465,30 +420,16 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -465,30 +420,16 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
465 if (destImageRef == NULL) { 420 if (destImageRef == NULL) {
466 return image; 421 return image;
467 } 422 }
468 -#if SD_MAC  
469 - UIImage *destImage = [[UIImage alloc] initWithCGImage:destImageRef scale:image.scale orientation:kCGImagePropertyOrientationUp];  
470 -#else  
471 UIImage *destImage = [[UIImage alloc] initWithCGImage:destImageRef scale:image.scale orientation:image.imageOrientation]; 423 UIImage *destImage = [[UIImage alloc] initWithCGImage:destImageRef scale:image.scale orientation:image.imageOrientation];
472 -#endif  
473 CGImageRelease(destImageRef); 424 CGImageRelease(destImageRef);
474 if (destImage == nil) { 425 if (destImage == nil) {
475 return image; 426 return image;
476 } 427 }
477 - SDImageCopyAssociatedObject(image, destImage);  
478 destImage.sd_isDecoded = YES; 428 destImage.sd_isDecoded = YES;
  429 + destImage.sd_imageFormat = image.sd_imageFormat;
479 return destImage; 430 return destImage;
480 } 431 }
481 -}  
482 -  
483 -+ (NSUInteger)defaultScaleDownLimitBytes {  
484 - return kDestImageLimitBytes;  
485 -}  
486 -  
487 -+ (void)setDefaultScaleDownLimitBytes:(NSUInteger)defaultScaleDownLimitBytes {  
488 - if (defaultScaleDownLimitBytes < kBytesPerMB) {  
489 - return;  
490 - }  
491 - kDestImageLimitBytes = defaultScaleDownLimitBytes; 432 +#endif
492 } 433 }
493 434
494 #if SD_UIKIT || SD_WATCH 435 #if SD_UIKIT || SD_WATCH
@@ -561,22 +502,19 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -561,22 +502,19 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
561 } 502 }
562 #endif 503 #endif
563 504
564 -#pragma mark - Helper Function 505 +#pragma mark - Helper Fuction
  506 +#if SD_UIKIT || SD_WATCH
565 + (BOOL)shouldDecodeImage:(nullable UIImage *)image { 507 + (BOOL)shouldDecodeImage:(nullable UIImage *)image {
566 - // Prevent "CGBitmapContextCreateImage: invalid context 0x0" error  
567 - if (image == nil) {  
568 - return NO;  
569 - }  
570 // Avoid extra decode 508 // Avoid extra decode
571 if (image.sd_isDecoded) { 509 if (image.sd_isDecoded) {
572 return NO; 510 return NO;
573 } 511 }
574 - // do not decode animated images  
575 - if (image.sd_isAnimated) { 512 + // Prevent "CGBitmapContextCreateImage: invalid context 0x0" error
  513 + if (image == nil) {
576 return NO; 514 return NO;
577 } 515 }
578 - // do not decode vector images  
579 - if (image.sd_isVector) { 516 + // do not decode animated images
  517 + if (image.images != nil) {
580 return NO; 518 return NO;
581 } 519 }
582 520
@@ -595,10 +533,11 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -595,10 +533,11 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
595 return NO; 533 return NO;
596 } 534 }
597 CGFloat destTotalPixels; 535 CGFloat destTotalPixels;
598 - if (bytes == 0) {  
599 - bytes = kDestImageLimitBytes; 536 + if (bytes > 0) {
  537 + destTotalPixels = bytes / kBytesPerPixel;
  538 + } else {
  539 + destTotalPixels = kDestTotalPixels;
600 } 540 }
601 - destTotalPixels = bytes / kBytesPerPixel;  
602 if (destTotalPixels <= kPixelsPerMB) { 541 if (destTotalPixels <= kPixelsPerMB) {
603 // Too small to scale down 542 // Too small to scale down
604 return NO; 543 return NO;
@@ -612,6 +551,7 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over @@ -612,6 +551,7 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over
612 551
613 return shouldScaleDown; 552 return shouldScaleDown;
614 } 553 }
  554 +#endif
615 555
616 static inline CGAffineTransform SDCGContextTransformFromOrientation(CGImagePropertyOrientation orientation, CGSize size) { 556 static inline CGAffineTransform SDCGContextTransformFromOrientation(CGImagePropertyOrientation orientation, CGSize size) {
617 // Inspiration from @libfeihu 557 // Inspiration from @libfeihu
Example/Pods/SDWebImage/SDWebImage/Core/SDImageGraphics.h
@@ -13,7 +13,6 @@ @@ -13,7 +13,6 @@
13 These following graphics context method are provided to easily write cross-platform(AppKit/UIKit) code. 13 These following graphics context method are provided to easily write cross-platform(AppKit/UIKit) code.
14 For UIKit, these methods just call the same method in `UIGraphics.h`. See the documentation for usage. 14 For UIKit, these methods just call the same method in `UIGraphics.h`. See the documentation for usage.
15 For AppKit, these methods use `NSGraphicsContext` to create image context and match the behavior like UIKit. 15 For AppKit, these methods use `NSGraphicsContext` to create image context and match the behavior like UIKit.
16 - @note If you don't care bitmap format (ARGB8888) and just draw image, use `SDGraphicsImageRenderer` instead. It's more performant on RAM usage.`  
17 */ 16 */
18 17
19 /// Returns the current graphics context. 18 /// Returns the current graphics context.
Example/Pods/SDWebImage/SDWebImage/Core/SDImageHEICCoder.m
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 #import "SDImageHEICCoder.h" 9 #import "SDImageHEICCoder.h"
10 #import "SDImageHEICCoderInternal.h" 10 #import "SDImageHEICCoderInternal.h"
11 11
12 -// These constants are available from iOS 13+ and Xcode 11. This raw value is used for toolchain and firmware compatibility 12 +// These constantce are available from iOS 13+ and Xcode 11. This raw value is used for toolchain and firmware compatiblitiy
13 static NSString * kSDCGImagePropertyHEICSDictionary = @"{HEICS}"; 13 static NSString * kSDCGImagePropertyHEICSDictionary = @"{HEICS}";
14 static NSString * kSDCGImagePropertyHEICSLoopCount = @"LoopCount"; 14 static NSString * kSDCGImagePropertyHEICSLoopCount = @"LoopCount";
15 static NSString * kSDCGImagePropertyHEICSDelayTime = @"DelayTime"; 15 static NSString * kSDCGImagePropertyHEICSDelayTime = @"DelayTime";
Example/Pods/SDWebImage/SDWebImage/Core/SDImageIOAnimatedCoder.h
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 12
13 /** 13 /**
14 This is the abstract class for all animated coder, which use the Image/IO API. You can not use this directly as real coders. A exception will be raised if you use this class. 14 This is the abstract class for all animated coder, which use the Image/IO API. You can not use this directly as real coders. A exception will be raised if you use this class.
15 - All of the properties need the subclass to implement and works as expected. 15 + All of the properties need the subclass to implment and works as expceted.
16 For Image/IO, See Apple's documentation: https://developer.apple.com/documentation/imageio 16 For Image/IO, See Apple's documentation: https://developer.apple.com/documentation/imageio
17 */ 17 */
18 @interface SDImageIOAnimatedCoder : NSObject <SDProgressiveImageCoder, SDAnimatedImageCoder> 18 @interface SDImageIOAnimatedCoder : NSObject <SDProgressiveImageCoder, SDAnimatedImageCoder>
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 */ 35 */
36 @property (class, readonly, nonnull) NSString *dictionaryProperty; 36 @property (class, readonly, nonnull) NSString *dictionaryProperty;
37 /** 37 /**
38 - The image unclamped delay time property key used in Image/IO API. Such as `kCGImagePropertyGIFUnclampedDelayTime` 38 + The image unclamped deply time property key used in Image/IO API. Such as `kCGImagePropertyGIFUnclampedDelayTime`
39 @note Subclass override. 39 @note Subclass override.
40 */ 40 */
41 @property (class, readonly, nonnull) NSString *unclampedDelayTimeProperty; 41 @property (class, readonly, nonnull) NSString *unclampedDelayTimeProperty;