From 5f01b57c2133b12135d243ad1bd40c4425654c3f Mon Sep 17 00:00:00 2001 From: Renmin <33521539+wrmswindmill@users.noreply.github.com> Date: Tue, 16 Jul 2019 10:28:30 +0800 Subject: [PATCH] iOS playground seperation (#2709) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * merge * delete ios/playground * update The playground submodule when clone the ‘incubator-weex’ repo and build it * add README.md --- ios/README.md | 13 + ios/playground/Podfile | 24 - ios/playground/README.md | 0 .../WeexDemo.xcodeproj/project.pbxproj | 979 ----- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/xcschemes/WeexDemo.xcscheme | 124 - .../xcschemes/WeexUITestDemo.xcscheme | 91 - .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - ios/playground/WeexDemo/AppDelegate.h | 29 - ios/playground/WeexDemo/AppDelegate.m | 290 -- .../AppIcon.appiconset/AppStoreIcon1024.png | Bin 150730 -> 0 bytes .../AppIcon.appiconset/Contents.json | 112 - .../AppIcon.appiconset/Icon-29.png | Bin 1614 -> 0 bytes .../AppIcon.appiconset/Icon-29@2x-1.png | Bin 2421 -> 0 bytes .../AppIcon.appiconset/Icon-29@2x.png | Bin 2421 -> 0 bytes .../AppIcon.appiconset/Icon-29@3x.png | Bin 3236 -> 0 bytes .../AppIcon.appiconset/Icon-40.png | Bin 1946 -> 0 bytes .../AppIcon.appiconset/Icon-40@2x-1.png | Bin 3016 -> 0 bytes .../AppIcon.appiconset/Icon-40@2x.png | Bin 3016 -> 0 bytes .../AppIcon.appiconset/Icon-40@3x.png | Bin 4172 -> 0 bytes .../AppIcon.appiconset/Icon-60@2x.png | Bin 4172 -> 0 bytes .../AppIcon.appiconset/Icon-60@3x.png | Bin 6017 -> 0 bytes .../AppIcon.appiconset/Icon-76.png | Bin 2918 -> 0 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 5088 -> 0 bytes .../AppIcon.appiconset/Icon-83.5@2x.png | Bin 5537 -> 0 bytes .../WeexDemo/Assets.xcassets/Contents.json | 6 - .../LaunchImage.launchimage/Contents.json | 88 - .../Default-568h@2x.png | Bin 22184 -> 0 bytes .../LaunchImage.launchimage/Default@2x.png | Bin 19694 -> 0 bytes .../Retinal HD 4.7.png | Bin 33603 -> 0 bytes .../Retinal HD 5.5.png | Bin 72798 -> 0 bytes .../iPhone5.5-landscape.png | Bin 66768 -> 0 bytes .../iPhoneX-landscape.png | Bin 68749 -> 0 bytes .../LaunchImage.launchimage/iPhoneX@3x.png | Bin 68622 -> 0 bytes .../LaunchImage.launchimage/iPhoneXMax@3x.png | Bin 85516 -> 0 bytes .../LaunchImage.launchimage/iPhoneXR@2x.png | Bin 41740 -> 0 bytes .../back.imageset/Contents.json | 23 - .../Assets.xcassets/back.imageset/back.png | Bin 1244 -> 0 bytes .../Assets.xcassets/back.imageset/back@2x.png | Bin 1646 -> 0 bytes .../Assets.xcassets/back.imageset/back@3x.png | Bin 2179 -> 0 bytes .../delete.imageset/Contents.json | 23 - .../delete.imageset/delete.png | Bin 289 -> 0 bytes .../delete.imageset/delete@2x.png | Bin 504 -> 0 bytes .../delete.imageset/delete@3x.png | Bin 690 -> 0 bytes .../reload.imageset/Contents.json | 23 - .../reload.imageset/reload.png | Bin 542 -> 0 bytes .../reload.imageset/reload@2x.png | Bin 1037 -> 0 bytes .../reload.imageset/reload@3x.png | Bin 1516 -> 0 bytes .../scan.imageset/Contents.json | 23 - .../Assets.xcassets/scan.imageset/scan.png | Bin 1344 -> 0 bytes .../Assets.xcassets/scan.imageset/scan@2x.png | Bin 2458 -> 0 bytes .../Assets.xcassets/scan.imageset/scan@3x.png | Bin 3723 -> 0 bytes .../scan_history.imageset/Contents.json | 23 - .../scan_history.imageset/history.png | Bin 546 -> 0 bytes .../scan_history.imageset/history@2x.png | Bin 1037 -> 0 bytes .../scan_history.imageset/history@3x.png | Bin 1628 -> 0 bytes .../WeexDemo/DemoBaseViewController.h | 24 - .../WeexDemo/DemoBaseViewController.m | 45 - ios/playground/WeexDemo/DemoDefine.h | 41 - .../Brand Assets.launchimage/Contents.json | 21 - ios/playground/WeexDemo/Info.plist | 94 - .../WeexDemo/Scanner/WXScannerHistoryVC.h | 24 - .../WeexDemo/Scanner/WXScannerHistoryVC.m | 225 -- ios/playground/WeexDemo/Scanner/WXScannerVC.h | 25 - ios/playground/WeexDemo/Scanner/WXScannerVC.m | 242 -- .../WeexDemo/UIView+UIThreadCheck.h | 26 - .../WeexDemo/UIView+UIThreadCheck.m | 53 - .../WeexDemo/UIViewController+WXDemoNaviBar.h | 34 - .../WeexDemo/UIViewController+WXDemoNaviBar.m | 138 - .../WeexDemo/WXConfigCenterDefaultImpl.h | 25 - .../WeexDemo/WXConfigCenterDefaultImpl.m | 45 - .../WeexDemo/WXDemoViewController.h | 32 - .../WeexDemo/WXDemoViewController.m | 348 -- ios/playground/WeexDemo/WXExtModule.h | 26 - ios/playground/WeexDemo/WXExtModule.m | 57 - .../WeexDemo/WXExtendCallNativeTest.h | 25 - .../WeexDemo/WXExtendCallNativeTest.m | 47 - .../WeexDemo/WXNavigationHandlerImpl.h | 25 - .../WeexDemo/WXNavigationHandlerImpl.m | 74 - ios/playground/WeexDemo/WXSyncTestModule.h | 25 - ios/playground/WeexDemo/WXSyncTestModule.m | 49 - .../WeexDemo/Websocket/SRWebSocket+Weex.h | 29 - .../WeexDemo/Websocket/SRWebSocket+Weex.m | 47 - .../Websocket/WXWebSocketDefaultImpl.h | 25 - .../Websocket/WXWebSocketDefaultImpl.m | 120 - ios/playground/WeexDemo/debug/DebugAnalyzer.h | 24 - ios/playground/WeexDemo/debug/DebugAnzlyzer.m | 30 - .../WeexDemo/debug/WXATLoggerPlugin.h | 25 - .../WeexDemo/debug/WXATLoggerPlugin.m | 65 - .../WeexDemo/debug/WXATViewHierarchyPlugin.h | 25 - .../WeexDemo/debug/WXATViewHierarchyPlugin.m | 54 - .../extend/component/WXSelectComponent.h | 25 - .../extend/component/WXSelectComponent.m | 149 - .../extend/handler/WXApmGeneratorImpl.h | 25 - .../extend/handler/WXApmGeneratorImpl.m | 31 - .../WeexDemo/extend/handler/WXApmImpl.h | 25 - .../WeexDemo/extend/handler/WXApmImpl.m | 149 - .../extend/handler/WXImgLoaderDefaultImpl.h | 24 - .../extend/handler/WXImgLoaderDefaultImpl.m | 119 - .../WeexDemo/extend/module/WXEventModule.h | 26 - .../WeexDemo/extend/module/WXEventModule.m | 68 - .../WeexDemo/extend/module/WXTitleBarModule.h | 14 - .../WeexDemo/extend/module/WXTitleBarModule.m | 48 - ios/playground/WeexDemo/main.m | 27 - ios/playground/WeexDemo/weex-icon.png | Bin 53574 -> 0 bytes ios/playground/WeexDemoTests/Info.plist | 28 - ios/playground/WeexDemoTests/WeexDemoTests.m | 50 - ios/playground/WeexUITestDemo-Info.plist | 52 - .../WeexUITestDemoUITests/Info.plist | 24 - .../WeexUITestDemoUITests.m | 51 - ios/playground/bundlejs/about.weex.js | 3309 ----------------- ios/playground/bundlejs/examples.weex.js | 2598 ------------- ios/playground/bundlejs/guide.weex.js | 3191 ---------------- ios/playground/bundlejs/landing.weex.js | 2319 ------------ ios/playground/bundlejs/news.weex.js | 2266 ----------- ios/playground/weex.png | Bin 3187 -> 0 bytes ios/playground/weex@2x.png | Bin 7294 -> 0 bytes ios/sdk/buildScripts.sh | 4 + 120 files changed, 17 insertions(+), 18723 deletions(-) create mode 100644 ios/README.md delete mode 100644 ios/playground/Podfile delete mode 100644 ios/playground/README.md delete mode 100644 ios/playground/WeexDemo.xcodeproj/project.pbxproj delete mode 100644 ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme delete mode 100644 ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme delete mode 100644 ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata delete mode 100644 ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 ios/playground/WeexDemo/AppDelegate.h delete mode 100644 ios/playground/WeexDemo/AppDelegate.m delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/AppStoreIcon1024.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 4.7.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 5.5.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhone5.5-landscape.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX-landscape.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneX@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXMax@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhoneXR@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/back.imageset/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/back.imageset/back.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png delete mode 100644 ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png delete mode 100644 ios/playground/WeexDemo/DemoBaseViewController.h delete mode 100644 ios/playground/WeexDemo/DemoBaseViewController.m delete mode 100644 ios/playground/WeexDemo/DemoDefine.h delete mode 100644 ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json delete mode 100644 ios/playground/WeexDemo/Info.plist delete mode 100644 ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h delete mode 100644 ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m delete mode 100644 ios/playground/WeexDemo/Scanner/WXScannerVC.h delete mode 100644 ios/playground/WeexDemo/Scanner/WXScannerVC.m delete mode 100644 ios/playground/WeexDemo/UIView+UIThreadCheck.h delete mode 100644 ios/playground/WeexDemo/UIView+UIThreadCheck.m delete mode 100644 ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h delete mode 100644 ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m delete mode 100644 ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h delete mode 100644 ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m delete mode 100644 ios/playground/WeexDemo/WXDemoViewController.h delete mode 100644 ios/playground/WeexDemo/WXDemoViewController.m delete mode 100644 ios/playground/WeexDemo/WXExtModule.h delete mode 100644 ios/playground/WeexDemo/WXExtModule.m delete mode 100644 ios/playground/WeexDemo/WXExtendCallNativeTest.h delete mode 100644 ios/playground/WeexDemo/WXExtendCallNativeTest.m delete mode 100644 ios/playground/WeexDemo/WXNavigationHandlerImpl.h delete mode 100644 ios/playground/WeexDemo/WXNavigationHandlerImpl.m delete mode 100644 ios/playground/WeexDemo/WXSyncTestModule.h delete mode 100644 ios/playground/WeexDemo/WXSyncTestModule.m delete mode 100644 ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h delete mode 100644 ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m delete mode 100644 ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h delete mode 100644 ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m delete mode 100644 ios/playground/WeexDemo/debug/DebugAnalyzer.h delete mode 100644 ios/playground/WeexDemo/debug/DebugAnzlyzer.m delete mode 100644 ios/playground/WeexDemo/debug/WXATLoggerPlugin.h delete mode 100644 ios/playground/WeexDemo/debug/WXATLoggerPlugin.m delete mode 100644 ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h delete mode 100644 ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m delete mode 100644 ios/playground/WeexDemo/extend/component/WXSelectComponent.h delete mode 100644 ios/playground/WeexDemo/extend/component/WXSelectComponent.m delete mode 100644 ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h delete mode 100644 ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m delete mode 100644 ios/playground/WeexDemo/extend/handler/WXApmImpl.h delete mode 100644 ios/playground/WeexDemo/extend/handler/WXApmImpl.m delete mode 100644 ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h delete mode 100644 ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m delete mode 100644 ios/playground/WeexDemo/extend/module/WXEventModule.h delete mode 100644 ios/playground/WeexDemo/extend/module/WXEventModule.m delete mode 100644 ios/playground/WeexDemo/extend/module/WXTitleBarModule.h delete mode 100644 ios/playground/WeexDemo/extend/module/WXTitleBarModule.m delete mode 100644 ios/playground/WeexDemo/main.m delete mode 100644 ios/playground/WeexDemo/weex-icon.png delete mode 100644 ios/playground/WeexDemoTests/Info.plist delete mode 100644 ios/playground/WeexDemoTests/WeexDemoTests.m delete mode 100644 ios/playground/WeexUITestDemo-Info.plist delete mode 100644 ios/playground/WeexUITestDemoUITests/Info.plist delete mode 100644 ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m delete mode 100644 ios/playground/bundlejs/about.weex.js delete mode 100644 ios/playground/bundlejs/examples.weex.js delete mode 100644 ios/playground/bundlejs/guide.weex.js delete mode 100644 ios/playground/bundlejs/landing.weex.js delete mode 100644 ios/playground/bundlejs/news.weex.js delete mode 100644 ios/playground/weex.png delete mode 100644 ios/playground/weex@2x.png diff --git a/ios/README.md b/ios/README.md new file mode 100644 index 0000000000..837a5b57b0 --- /dev/null +++ b/ios/README.md @@ -0,0 +1,13 @@ +## The submodule weex-playground + +[Weex Playground](https://github.com/apache/incubator-weex-playground/tree/master/ios) can be used to test and preview weex pages on iOS and it has been added as a submodule. + +### Relationship between weex and playground + +- The playground submodule will be cloned and updated automatically when developers clone the ‘incubator-weex’ repo and build it. In this case, playground project will use the current incubator-weex project as it's pod source. + +- When developer directly clone the 'weex-playground' repo and run it separately, the playground project will use the lastest incubator-weex project in master branch as it's pod source. + + + + \ No newline at end of file diff --git a/ios/playground/Podfile b/ios/playground/Podfile deleted file mode 100644 index 5dca1b58f8..0000000000 --- a/ios/playground/Podfile +++ /dev/null @@ -1,24 +0,0 @@ -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '9.0' -#inhibit_all_warnings! - -def common - pod 'WeexSDK', :path=>'../../' - pod 'WXDevtool','0.20.0' - pod 'SDWebImage', '3.7.5' - pod 'SDWebImage/WebP' - pod 'SocketRocket', '0.4.2' - pod 'ATSDK-Weex', '0.0.1',:configurations => ['Debug'] - pod 'BindingX', '1.0.3' - - # WeexGcanvas is added by Weex Plugin, more info at https://market.dotwe.org/ext/list.htm - #pod 'WeexGcanvas' -end - -target 'WeexDemo' do - common -end - -target 'WeexUITestDemo' do - common -end diff --git a/ios/playground/README.md b/ios/playground/README.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ios/playground/WeexDemo.xcodeproj/project.pbxproj b/ios/playground/WeexDemo.xcodeproj/project.pbxproj deleted file mode 100644 index 06a0db7ec1..0000000000 --- a/ios/playground/WeexDemo.xcodeproj/project.pbxproj +++ /dev/null @@ -1,979 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 17036A5720FDF9AA0029AE3D /* WXApmGeneratorImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */; }; - 17036A5A20FDF9DF0029AE3D /* WXApmImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */; }; - 17C1DB57206B675D000E0CEB /* DebugAnzlyzer.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */; }; - 2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */; }; - 3375BEE821C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 3375BEE521C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m */; }; - 3375BEE921C74C5C003CAAB8 /* SRWebSocket+Weex.m in Sources */ = {isa = PBXBuildFile; fileRef = 3375BEE721C74C5C003CAAB8 /* SRWebSocket+Weex.m */; }; - 564B94671DD9C65000441C8D /* WeexUITestDemo-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */; }; - 59EA0DA71D2E7D19004F904A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 59EA0DA61D2E7D19004F904A /* Images.xcassets */; }; - 7478481E1E0CD4910044500D /* WXSyncTestModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 7478481D1E0CD4910044500D /* WXSyncTestModule.m */; }; - 747DF6681E2F176A005C53A8 /* UIView+UIThreadCheck.m in Sources */ = {isa = PBXBuildFile; fileRef = 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */; }; - 74CC79EB1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */; }; - 775BEE801C1E8ECC008D1629 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE7F1C1E8ECC008D1629 /* main.m */; }; - 775BEE831C1E8ECC008D1629 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE821C1E8ECC008D1629 /* AppDelegate.m */; }; - 775BEE861C1E8ECC008D1629 /* WXDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */; }; - 775BEE8B1C1E8ECC008D1629 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */; }; - 775BEE991C1E8ECC008D1629 /* WeexDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE981C1E8ECC008D1629 /* WeexDemoTests.m */; }; - 84361D2F1CA10F8E00F43825 /* WXScannerVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */; }; - 84361D331CA10F8E00F43825 /* WXDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */; }; - 84361D371CA10F8E00F43825 /* UIViewController+WXDemoNaviBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */; }; - 84361D381CA10F8E00F43825 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE821C1E8ECC008D1629 /* AppDelegate.m */; }; - 84361D3B1CA10F8E00F43825 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 775BEE7F1C1E8ECC008D1629 /* main.m */; }; - 84361D421CA10F8E00F43825 /* libPods-WeexDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */; }; - 84361D5B1CA10F8E00F43825 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */; }; - 846FC8DA1E1B853100949E7D /* WXSyncTestModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 7478481D1E0CD4910044500D /* WXSyncTestModule.m */; }; - 846FC8DB1E1B853600949E7D /* WXATViewHierarchyPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */; }; - 847CAF2B1F39BB6B00551725 /* UIView+UIThreadCheck.m in Sources */ = {isa = PBXBuildFile; fileRef = 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */; }; - 847CAF2C1F39BB8A00551725 /* WXATLoggerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */; }; - 847CAF2D1F39BBB900551725 /* WXScannerHistoryVC.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */; }; - 847CAF2E1F39BBFB00551725 /* WXConfigCenterDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */; }; - 847CAF311F39E3F100551725 /* WXExtModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 847CAF301F39E3F100551725 /* WXExtModule.m */; }; - 84D7CAC71CE3266C00D48D46 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */; }; - 8A0B5EFFF75BF82EA481983D /* libPods-WeexUITestDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */; }; - B83A6C5220FF16D50053BCEF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B83A6C5120FF16D50053BCEF /* libc++.tbd */; }; - C43CDA031F1C6E01005A6B03 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C43CDA021F1C6E01005A6B03 /* libz.tbd */; }; - C47B78D21F299E27001D3B0C /* WXExtendCallNativeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C47B78D11F299E27001D3B0C /* WXExtendCallNativeTest.m */; }; - DC15A3C7200C505C009C8977 /* WXTitleBarModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DC15A3C6200C505C009C8977 /* WXTitleBarModule.m */; }; - DC15A3D0200E30FC009C8977 /* WXNavigationHandlerImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DC15A3CE200E30FC009C8977 /* WXNavigationHandlerImpl.m */; }; - DC20B8E61ECADA2500845F39 /* WXConfigCenterDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */; }; - DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */; }; - DC5E503E1D0D97130059F0EB /* weex.png in Resources */ = {isa = PBXBuildFile; fileRef = DC5E503C1D0D97130059F0EB /* weex.png */; }; - DC5E503F1D0D97130059F0EB /* weex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DC5E503D1D0D97130059F0EB /* weex@2x.png */; }; - DC65C4FA1CEB032F00B2F84F /* bundlejs in Resources */ = {isa = PBXBuildFile; fileRef = DC65C4F91CEB032F00B2F84F /* bundlejs */; }; - DC6DD9D21CFE9BC400549297 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */; }; - DCA812FA1D0401500029BF62 /* WXEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABB0001D02975E001C8592 /* WXEventModule.m */; }; - DCA812FB1D0401570029BF62 /* WXImgLoaderDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */; }; - DCABAFF31D029685001C8592 /* WXATLoggerPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */; }; - DCABAFF41D029685001C8592 /* WXATViewHierarchyPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */; }; - DCABAFFE1D029753001C8592 /* WXImgLoaderDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */; }; - DCABB0011D02975E001C8592 /* WXEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABB0001D02975E001C8592 /* WXEventModule.m */; }; - DCD286E01CF491AC00C601CA /* weex-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = DCD286DF1CF491AC00C601CA /* weex-icon.png */; }; - EAEC716BE3E43DBC8494EC51 /* libPods-WeexDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 775BEE951C1E8ECC008D1629 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 775BEE731C1E8ECC008D1629 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 775BEE7A1C1E8ECC008D1629; - remoteInfo = WeexDemo; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 17036A5520FDF9AA0029AE3D /* WXApmGeneratorImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXApmGeneratorImpl.h; path = extend/handler/WXApmGeneratorImpl.h; sourceTree = ""; }; - 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXApmGeneratorImpl.m; path = extend/handler/WXApmGeneratorImpl.m; sourceTree = ""; }; - 17036A5820FDF9DF0029AE3D /* WXApmImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXApmImpl.h; path = extend/handler/WXApmImpl.h; sourceTree = ""; }; - 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXApmImpl.m; path = extend/handler/WXApmImpl.m; sourceTree = ""; }; - 17C1DB55206B6729000E0CEB /* DebugAnalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DebugAnalyzer.h; path = debug/DebugAnalyzer.h; sourceTree = ""; }; - 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DebugAnzlyzer.m; path = debug/DebugAnzlyzer.m; sourceTree = ""; }; - 1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexUITestDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo.release.xcconfig"; sourceTree = ""; }; - 2278B1B1FCE894EDAF9F0171 /* Pods-WeexUITestDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexUITestDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo.debug.xcconfig"; sourceTree = ""; }; - 22E4D2883CC56188A2CA9C13 /* Pods-WeexDemo.uitest.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.uitest.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.uitest.xcconfig"; sourceTree = ""; }; - 2AE88A2A1C8544E6003329DE /* WXScannerVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXScannerVC.h; path = Scanner/WXScannerVC.h; sourceTree = ""; }; - 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXScannerVC.m; path = Scanner/WXScannerVC.m; sourceTree = ""; }; - 3375BEE421C74C5C003CAAB8 /* SRWebSocket+Weex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SRWebSocket+Weex.h"; sourceTree = ""; }; - 3375BEE521C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXWebSocketDefaultImpl.m; sourceTree = ""; }; - 3375BEE621C74C5C003CAAB8 /* WXWebSocketDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXWebSocketDefaultImpl.h; sourceTree = ""; }; - 3375BEE721C74C5C003CAAB8 /* SRWebSocket+Weex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SRWebSocket+Weex.m"; sourceTree = ""; }; - 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "WeexUITestDemo-Info.plist"; sourceTree = ""; }; - 59EA0DA61D2E7D19004F904A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - 5AF8846546DAC65CAC038806 /* Pods-WeexDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.debug.xcconfig"; sourceTree = ""; }; - 741DFE081DDDD519009B020F /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; }; - 7453E3641C9FA971001EB427 /* DemoDefine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoDefine.h; sourceTree = ""; }; - 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; - 7478481C1E0CD4910044500D /* WXSyncTestModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXSyncTestModule.h; sourceTree = ""; }; - 7478481D1E0CD4910044500D /* WXSyncTestModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXSyncTestModule.m; sourceTree = ""; }; - 747DF6661E2F176A005C53A8 /* UIView+UIThreadCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+UIThreadCheck.h"; sourceTree = ""; }; - 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+UIThreadCheck.m"; sourceTree = ""; }; - 74CC79E91C2B9E4700829368 /* UIViewController+WXDemoNaviBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+WXDemoNaviBar.h"; sourceTree = ""; }; - 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+WXDemoNaviBar.m"; sourceTree = ""; }; - 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WeexDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 775BEE7B1C1E8ECC008D1629 /* WeexDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WeexDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 775BEE7F1C1E8ECC008D1629 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 775BEE811C1E8ECC008D1629 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 775BEE821C1E8ECC008D1629 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 775BEE841C1E8ECC008D1629 /* WXDemoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WXDemoViewController.h; sourceTree = ""; }; - 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WXDemoViewController.m; sourceTree = ""; }; - 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 775BEE8F1C1E8ECC008D1629 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 775BEE941C1E8ECC008D1629 /* WeexDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WeexDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 775BEE981C1E8ECC008D1629 /* WeexDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WeexDemoTests.m; sourceTree = ""; }; - 775BEE9A1C1E8ECC008D1629 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 84361D751CA10F8E00F43825 /* WeexUITestDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WeexUITestDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 847CAF2F1F39E3F100551725 /* WXExtModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXExtModule.h; sourceTree = ""; }; - 847CAF301F39E3F100551725 /* WXExtModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXExtModule.m; sourceTree = ""; }; - 9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.release.xcconfig"; sourceTree = ""; }; - B83A6C5120FF16D50053BCEF /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - C43CDA021F1C6E01005A6B03 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - C47B78D01F299E27001D3B0C /* WXExtendCallNativeTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXExtendCallNativeTest.h; sourceTree = ""; }; - C47B78D11F299E27001D3B0C /* WXExtendCallNativeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXExtendCallNativeTest.m; sourceTree = ""; }; - DC15A3C5200C505C009C8977 /* WXTitleBarModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXTitleBarModule.h; path = extend/module/WXTitleBarModule.h; sourceTree = ""; }; - DC15A3C6200C505C009C8977 /* WXTitleBarModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXTitleBarModule.m; path = extend/module/WXTitleBarModule.m; sourceTree = ""; }; - DC15A3CE200E30FC009C8977 /* WXNavigationHandlerImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXNavigationHandlerImpl.m; sourceTree = ""; }; - DC15A3CF200E30FC009C8977 /* WXNavigationHandlerImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXNavigationHandlerImpl.h; sourceTree = ""; }; - DC20B8E41ECADA2500845F39 /* WXConfigCenterDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXConfigCenterDefaultImpl.h; sourceTree = ""; }; - DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXConfigCenterDefaultImpl.m; sourceTree = ""; }; - DC5B53671E8CED9400E02125 /* WXScannerHistoryVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXScannerHistoryVC.h; path = Scanner/WXScannerHistoryVC.h; sourceTree = ""; }; - DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXScannerHistoryVC.m; path = Scanner/WXScannerHistoryVC.m; sourceTree = ""; }; - DC5E503C1D0D97130059F0EB /* weex.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = weex.png; sourceTree = ""; }; - DC5E503D1D0D97130059F0EB /* weex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "weex@2x.png"; sourceTree = ""; }; - DC65C4F91CEB032F00B2F84F /* bundlejs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = bundlejs; sourceTree = ""; }; - DCABAFEF1D029685001C8592 /* WXATLoggerPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXATLoggerPlugin.h; path = debug/WXATLoggerPlugin.h; sourceTree = ""; }; - DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXATLoggerPlugin.m; path = debug/WXATLoggerPlugin.m; sourceTree = ""; }; - DCABAFF11D029685001C8592 /* WXATViewHierarchyPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXATViewHierarchyPlugin.h; path = debug/WXATViewHierarchyPlugin.h; sourceTree = ""; }; - DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXATViewHierarchyPlugin.m; path = debug/WXATViewHierarchyPlugin.m; sourceTree = ""; }; - DCABAFF91D029748001C8592 /* WXSelectComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXSelectComponent.h; path = extend/component/WXSelectComponent.h; sourceTree = ""; }; - DCABAFFA1D029748001C8592 /* WXSelectComponent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXSelectComponent.m; path = extend/component/WXSelectComponent.m; sourceTree = ""; }; - DCABAFFC1D029753001C8592 /* WXImgLoaderDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXImgLoaderDefaultImpl.h; path = extend/handler/WXImgLoaderDefaultImpl.h; sourceTree = ""; }; - DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXImgLoaderDefaultImpl.m; path = extend/handler/WXImgLoaderDefaultImpl.m; sourceTree = ""; }; - DCABAFFF1D02975E001C8592 /* WXEventModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXEventModule.h; path = extend/module/WXEventModule.h; sourceTree = ""; }; - DCABB0001D02975E001C8592 /* WXEventModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXEventModule.m; path = extend/module/WXEventModule.m; sourceTree = ""; }; - DCD286DF1CF491AC00C601CA /* weex-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "weex-icon.png"; path = "WeexDemo/weex-icon.png"; sourceTree = ""; }; - E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WeexUITestDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 775BEE781C1E8ECC008D1629 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B83A6C5220FF16D50053BCEF /* libc++.tbd in Frameworks */, - C43CDA031F1C6E01005A6B03 /* libz.tbd in Frameworks */, - DC6DD9D21CFE9BC400549297 /* libsqlite3.0.tbd in Frameworks */, - EAEC716BE3E43DBC8494EC51 /* libPods-WeexDemo.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 775BEE911C1E8ECC008D1629 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84361D3C1CA10F8E00F43825 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 84D7CAC71CE3266C00D48D46 /* libsqlite3.0.tbd in Frameworks */, - 84361D421CA10F8E00F43825 /* libPods-WeexDemo.a in Frameworks */, - 8A0B5EFFF75BF82EA481983D /* libPods-WeexUITestDemo.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 2AE88A291C8544D7003329DE /* scanner */ = { - isa = PBXGroup; - children = ( - 2AE88A2A1C8544E6003329DE /* WXScannerVC.h */, - 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */, - DC5B53671E8CED9400E02125 /* WXScannerHistoryVC.h */, - DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */, - ); - name = scanner; - sourceTree = ""; - }; - 327BB19797F63D5309FB91BF /* Frameworks */ = { - isa = PBXGroup; - children = ( - B83A6C5120FF16D50053BCEF /* libc++.tbd */, - C43CDA021F1C6E01005A6B03 /* libz.tbd */, - 741DFE081DDDD519009B020F /* libstdc++.tbd */, - 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */, - 7601607D735D7F8D88971230 /* libPods-WeexDemo.a */, - E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 3375BEE321C74C5C003CAAB8 /* Websocket */ = { - isa = PBXGroup; - children = ( - 3375BEE421C74C5C003CAAB8 /* SRWebSocket+Weex.h */, - 3375BEE521C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m */, - 3375BEE621C74C5C003CAAB8 /* WXWebSocketDefaultImpl.h */, - 3375BEE721C74C5C003CAAB8 /* SRWebSocket+Weex.m */, - ); - path = Websocket; - sourceTree = ""; - }; - 74CC79EC1C2B9FC600829368 /* Demo */ = { - isa = PBXGroup; - children = ( - DCABAFF51D0296DB001C8592 /* extend */, - D5ADF0861C77133B00597CA6 /* Source */, - ); - name = Demo; - sourceTree = ""; - }; - 775BEE721C1E8ECC008D1629 = { - isa = PBXGroup; - children = ( - 775BEE7D1C1E8ECC008D1629 /* WeexDemo */, - 775BEE971C1E8ECC008D1629 /* WeexDemoTests */, - 775BEE7C1C1E8ECC008D1629 /* Products */, - A9E45DD060512F73B9F51C03 /* Pods */, - 327BB19797F63D5309FB91BF /* Frameworks */, - DC65C4421CEB006C00B2F84F /* resource */, - 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */, - ); - sourceTree = ""; - }; - 775BEE7C1C1E8ECC008D1629 /* Products */ = { - isa = PBXGroup; - children = ( - 775BEE7B1C1E8ECC008D1629 /* WeexDemo.app */, - 775BEE941C1E8ECC008D1629 /* WeexDemoTests.xctest */, - 84361D751CA10F8E00F43825 /* WeexUITestDemo.app */, - ); - name = Products; - sourceTree = ""; - }; - 775BEE7D1C1E8ECC008D1629 /* WeexDemo */ = { - isa = PBXGroup; - children = ( - 74CC79EC1C2B9FC600829368 /* Demo */, - 775BEE8A1C1E8ECC008D1629 /* Assets.xcassets */, - 775BEE8F1C1E8ECC008D1629 /* Info.plist */, - 59EA0DA61D2E7D19004F904A /* Images.xcassets */, - 775BEE7E1C1E8ECC008D1629 /* Supporting Files */, - ); - path = WeexDemo; - sourceTree = ""; - }; - 775BEE7E1C1E8ECC008D1629 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 775BEE7F1C1E8ECC008D1629 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 775BEE971C1E8ECC008D1629 /* WeexDemoTests */ = { - isa = PBXGroup; - children = ( - 775BEE981C1E8ECC008D1629 /* WeexDemoTests.m */, - 775BEE9A1C1E8ECC008D1629 /* Info.plist */, - ); - path = WeexDemoTests; - sourceTree = ""; - }; - A9E45DD060512F73B9F51C03 /* Pods */ = { - isa = PBXGroup; - children = ( - 5AF8846546DAC65CAC038806 /* Pods-WeexDemo.debug.xcconfig */, - 9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */, - 22E4D2883CC56188A2CA9C13 /* Pods-WeexDemo.uitest.xcconfig */, - 2278B1B1FCE894EDAF9F0171 /* Pods-WeexUITestDemo.debug.xcconfig */, - 1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - D5ADF0861C77133B00597CA6 /* Source */ = { - isa = PBXGroup; - children = ( - 2AE88A291C8544D7003329DE /* scanner */, - DCABAFED1D029642001C8592 /* debug */, - 74CC79E91C2B9E4700829368 /* UIViewController+WXDemoNaviBar.h */, - 74CC79EA1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m */, - 775BEE811C1E8ECC008D1629 /* AppDelegate.h */, - 775BEE821C1E8ECC008D1629 /* AppDelegate.m */, - 775BEE841C1E8ECC008D1629 /* WXDemoViewController.h */, - 775BEE851C1E8ECC008D1629 /* WXDemoViewController.m */, - 747DF6661E2F176A005C53A8 /* UIView+UIThreadCheck.h */, - 747DF6671E2F176A005C53A8 /* UIView+UIThreadCheck.m */, - 7453E3641C9FA971001EB427 /* DemoDefine.h */, - C47B78D01F299E27001D3B0C /* WXExtendCallNativeTest.h */, - C47B78D11F299E27001D3B0C /* WXExtendCallNativeTest.m */, - ); - name = Source; - sourceTree = ""; - }; - DC65C4421CEB006C00B2F84F /* resource */ = { - isa = PBXGroup; - children = ( - DCD286DF1CF491AC00C601CA /* weex-icon.png */, - DC5E503C1D0D97130059F0EB /* weex.png */, - DC5E503D1D0D97130059F0EB /* weex@2x.png */, - DC65C4F91CEB032F00B2F84F /* bundlejs */, - ); - name = resource; - sourceTree = ""; - }; - DCABAFED1D029642001C8592 /* debug */ = { - isa = PBXGroup; - children = ( - DCABAFEF1D029685001C8592 /* WXATLoggerPlugin.h */, - DCABAFF01D029685001C8592 /* WXATLoggerPlugin.m */, - DCABAFF11D029685001C8592 /* WXATViewHierarchyPlugin.h */, - DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */, - 17C1DB55206B6729000E0CEB /* DebugAnalyzer.h */, - 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */, - ); - name = debug; - sourceTree = ""; - }; - DCABAFF51D0296DB001C8592 /* extend */ = { - isa = PBXGroup; - children = ( - DCABAFF81D029716001C8592 /* component */, - DCABAFF71D0296E8001C8592 /* handler */, - DCABAFF61D0296E2001C8592 /* module */, - ); - name = extend; - sourceTree = ""; - }; - DCABAFF61D0296E2001C8592 /* module */ = { - isa = PBXGroup; - children = ( - DCABAFFF1D02975E001C8592 /* WXEventModule.h */, - DCABB0001D02975E001C8592 /* WXEventModule.m */, - DC15A3C5200C505C009C8977 /* WXTitleBarModule.h */, - DC15A3C6200C505C009C8977 /* WXTitleBarModule.m */, - 7478481C1E0CD4910044500D /* WXSyncTestModule.h */, - 7478481D1E0CD4910044500D /* WXSyncTestModule.m */, - 847CAF2F1F39E3F100551725 /* WXExtModule.h */, - 847CAF301F39E3F100551725 /* WXExtModule.m */, - ); - name = module; - sourceTree = ""; - }; - DCABAFF71D0296E8001C8592 /* handler */ = { - isa = PBXGroup; - children = ( - 3375BEE321C74C5C003CAAB8 /* Websocket */, - DC15A3CF200E30FC009C8977 /* WXNavigationHandlerImpl.h */, - DC15A3CE200E30FC009C8977 /* WXNavigationHandlerImpl.m */, - DC20B8E41ECADA2500845F39 /* WXConfigCenterDefaultImpl.h */, - DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */, - DCABAFFC1D029753001C8592 /* WXImgLoaderDefaultImpl.h */, - DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */, - 17036A5520FDF9AA0029AE3D /* WXApmGeneratorImpl.h */, - 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */, - 17036A5820FDF9DF0029AE3D /* WXApmImpl.h */, - 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */, - ); - name = handler; - sourceTree = ""; - }; - DCABAFF81D029716001C8592 /* component */ = { - isa = PBXGroup; - children = ( - DCABAFF91D029748001C8592 /* WXSelectComponent.h */, - DCABAFFA1D029748001C8592 /* WXSelectComponent.m */, - ); - name = component; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 775BEE7A1C1E8ECC008D1629 /* WeexDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 775BEEA81C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemo" */; - buildPhases = ( - B5825066F03BDD65A25F2701 /* [CP] Check Pods Manifest.lock */, - 74CC7A221C2C13BF00829368 /* Start Samples */, - 775BEE771C1E8ECC008D1629 /* Sources */, - 775BEE781C1E8ECC008D1629 /* Frameworks */, - 775BEE791C1E8ECC008D1629 /* Resources */, - C715566148067A7FFAB7797D /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WeexDemo; - productName = WeexDemo; - productReference = 775BEE7B1C1E8ECC008D1629 /* WeexDemo.app */; - productType = "com.apple.product-type.application"; - }; - 775BEE931C1E8ECC008D1629 /* WeexDemoTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 775BEEAB1C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemoTests" */; - buildPhases = ( - 775BEE901C1E8ECC008D1629 /* Sources */, - 775BEE911C1E8ECC008D1629 /* Frameworks */, - 775BEE921C1E8ECC008D1629 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 775BEE961C1E8ECC008D1629 /* PBXTargetDependency */, - ); - name = WeexDemoTests; - productName = WeexDemoTests; - productReference = 775BEE941C1E8ECC008D1629 /* WeexDemoTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 84361D261CA10F8E00F43825 /* WeexUITestDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 84361D711CA10F8E00F43825 /* Build configuration list for PBXNativeTarget "WeexUITestDemo" */; - buildPhases = ( - 84361D271CA10F8E00F43825 /* [CP] Check Pods Manifest.lock */, - 84361D291CA10F8E00F43825 /* Sources */, - 84361D3C1CA10F8E00F43825 /* Frameworks */, - 84361D431CA10F8E00F43825 /* Resources */, - 84361D6F1CA10F8E00F43825 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WeexUITestDemo; - productName = WeexDemo; - productReference = 84361D751CA10F8E00F43825 /* WeexUITestDemo.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 775BEE731C1E8ECC008D1629 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0710; - ORGANIZATIONNAME = taobao; - TargetAttributes = { - 775BEE7A1C1E8ECC008D1629 = { - CreatedOnToolsVersion = 7.1.1; - }; - 775BEE931C1E8ECC008D1629 = { - CreatedOnToolsVersion = 7.1.1; - DevelopmentTeam = 445VCMGQD2; - TestTargetID = 775BEE7A1C1E8ECC008D1629; - }; - }; - }; - buildConfigurationList = 775BEE761C1E8ECC008D1629 /* Build configuration list for PBXProject "WeexDemo" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - Base, - ); - mainGroup = 775BEE721C1E8ECC008D1629; - productRefGroup = 775BEE7C1C1E8ECC008D1629 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 775BEE7A1C1E8ECC008D1629 /* WeexDemo */, - 775BEE931C1E8ECC008D1629 /* WeexDemoTests */, - 84361D261CA10F8E00F43825 /* WeexUITestDemo */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 775BEE791C1E8ECC008D1629 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DC5E503E1D0D97130059F0EB /* weex.png in Resources */, - DC5E503F1D0D97130059F0EB /* weex@2x.png in Resources */, - DCD286E01CF491AC00C601CA /* weex-icon.png in Resources */, - 59EA0DA71D2E7D19004F904A /* Images.xcassets in Resources */, - 564B94671DD9C65000441C8D /* WeexUITestDemo-Info.plist in Resources */, - DC65C4FA1CEB032F00B2F84F /* bundlejs in Resources */, - 775BEE8B1C1E8ECC008D1629 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 775BEE921C1E8ECC008D1629 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84361D431CA10F8E00F43825 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 84361D5B1CA10F8E00F43825 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 74CC7A221C2C13BF00829368 /* Start Samples */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Start Samples"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "DEST=$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\n\nif [[ \"$CONFIGURATION\" = \"Debug\" && \"$PLATFORM_NAME\" != \"iphonesimulator\" ]]; then\nipconfig getifaddr en0 | awk '{printf(\"%s\",$0)}' > \"$DEST/localServer-ip.txt\"\nfi"; - }; - 84361D271CA10F8E00F43825 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WeexUITestDemo-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 84361D6F1CA10F8E00F43825 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo-resources.sh", - "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/ATSDK.bundle", - "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/en.lproj", - "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/zh-Hans.lproj", - "${PODS_ROOT}/../../../pre-build/native-bundle-main.js", - "${PODS_ROOT}/../../../pre-build/weex-main-jsfm.js", - "${PODS_ROOT}/../../../pre-build/weex-polyfill.js", - "${PODS_ROOT}/../../../pre-build/weex-rax-api.js", - "${PODS_ROOT}/../../sdk/WeexSDK/Resources/wx_load_error@3x.png", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ATSDK.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/en.lproj", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/zh-Hans.lproj", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B5825066F03BDD65A25F2701 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WeexDemo-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C715566148067A7FFAB7797D /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo-resources.sh", - "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/ATSDK.bundle", - "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/en.lproj", - "${PODS_ROOT}/ATSDK-Weex/ATSDK.framework/Versions/A/Resources/zh-Hans.lproj", - "${PODS_ROOT}/../../../pre-build/native-bundle-main.js", - "${PODS_ROOT}/../../../pre-build/weex-main-jsfm.js", - "${PODS_ROOT}/../../../pre-build/weex-polyfill.js", - "${PODS_ROOT}/../../../pre-build/weex-rax-api.js", - "${PODS_ROOT}/../../sdk/WeexSDK/Resources/wx_load_error@3x.png", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ATSDK.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/en.lproj", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/zh-Hans.lproj", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 775BEE771C1E8ECC008D1629 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 17C1DB57206B675D000E0CEB /* DebugAnzlyzer.m in Sources */, - DCABAFF31D029685001C8592 /* WXATLoggerPlugin.m in Sources */, - DC15A3D0200E30FC009C8977 /* WXNavigationHandlerImpl.m in Sources */, - 3375BEE921C74C5C003CAAB8 /* SRWebSocket+Weex.m in Sources */, - 2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */, - 17036A5720FDF9AA0029AE3D /* WXApmGeneratorImpl.m in Sources */, - 775BEE861C1E8ECC008D1629 /* WXDemoViewController.m in Sources */, - DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */, - 74CC79EB1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m in Sources */, - DCABB0011D02975E001C8592 /* WXEventModule.m in Sources */, - 7478481E1E0CD4910044500D /* WXSyncTestModule.m in Sources */, - 775BEE831C1E8ECC008D1629 /* AppDelegate.m in Sources */, - 847CAF311F39E3F100551725 /* WXExtModule.m in Sources */, - DC15A3C7200C505C009C8977 /* WXTitleBarModule.m in Sources */, - 17036A5A20FDF9DF0029AE3D /* WXApmImpl.m in Sources */, - DC20B8E61ECADA2500845F39 /* WXConfigCenterDefaultImpl.m in Sources */, - DCABAFF41D029685001C8592 /* WXATViewHierarchyPlugin.m in Sources */, - 775BEE801C1E8ECC008D1629 /* main.m in Sources */, - DCABAFFE1D029753001C8592 /* WXImgLoaderDefaultImpl.m in Sources */, - 747DF6681E2F176A005C53A8 /* UIView+UIThreadCheck.m in Sources */, - C47B78D21F299E27001D3B0C /* WXExtendCallNativeTest.m in Sources */, - 3375BEE821C74C5C003CAAB8 /* WXWebSocketDefaultImpl.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 775BEE901C1E8ECC008D1629 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 775BEE991C1E8ECC008D1629 /* WeexDemoTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 84361D291CA10F8E00F43825 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 847CAF2D1F39BBB900551725 /* WXScannerHistoryVC.m in Sources */, - 847CAF2C1F39BB8A00551725 /* WXATLoggerPlugin.m in Sources */, - 84361D2F1CA10F8E00F43825 /* WXScannerVC.m in Sources */, - 84361D331CA10F8E00F43825 /* WXDemoViewController.m in Sources */, - 84361D371CA10F8E00F43825 /* UIViewController+WXDemoNaviBar.m in Sources */, - DCA812FA1D0401500029BF62 /* WXEventModule.m in Sources */, - 846FC8DA1E1B853100949E7D /* WXSyncTestModule.m in Sources */, - 84361D381CA10F8E00F43825 /* AppDelegate.m in Sources */, - 847CAF2E1F39BBFB00551725 /* WXConfigCenterDefaultImpl.m in Sources */, - 846FC8DB1E1B853600949E7D /* WXATViewHierarchyPlugin.m in Sources */, - 84361D3B1CA10F8E00F43825 /* main.m in Sources */, - DCA812FB1D0401570029BF62 /* WXImgLoaderDefaultImpl.m in Sources */, - 847CAF2B1F39BB6B00551725 /* UIView+UIThreadCheck.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 775BEE961C1E8ECC008D1629 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 775BEE7A1C1E8ECC008D1629 /* WeexDemo */; - targetProxy = 775BEE951C1E8ECC008D1629 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 775BEEA61C1E8ECC008D1629 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 775BEEA71C1E8ECC008D1629 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 775BEEA91C1E8ECC008D1629 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5AF8846546DAC65CAC038806 /* Pods-WeexDemo.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = ""; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/WeexDemo", - "$(PROJECT_DIR)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - INFOPLIST_FILE = WeexDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-licucore", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexPlayground; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 775BEEAA1C1E8ECC008D1629 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - DEVELOPMENT_TEAM = ""; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/WeexDemo", - "$(PROJECT_DIR)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - INFOPLIST_FILE = WeexDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-licucore", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexPlayground; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 775BEEAC1C1E8ECC008D1629 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - INFOPLIST_FILE = WeexDemoTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemoTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WeexDemo.app/WeexDemo"; - }; - name = Debug; - }; - 775BEEAD1C1E8ECC008D1629 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - INFOPLIST_FILE = WeexDemoTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemoTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WeexDemo.app/WeexDemo"; - }; - name = Release; - }; - 84361D721CA10F8E00F43825 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2278B1B1FCE894EDAF9F0171 /* Pods-WeexUITestDemo.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/WeexDemo", - "$(PROJECT_DIR)", - ); - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "UITEST=1", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - INFOPLIST_FILE = "WeexUITestDemo-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MODULE_NAME = NO; - OTHER_LDFLAGS = ( - "$(inherited)", - "-licucore", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemo.uitest; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - }; - name = Debug; - }; - 84361D741CA10F8E00F43825 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/WeexDemo", - "$(PROJECT_DIR)", - ); - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - INFOPLIST_FILE = "WeexUITestDemo-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MODULE_NAME = NO; - OTHER_LDFLAGS = ( - "$(inherited)", - "-licucore", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.WeexDemo.uitest; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 775BEE761C1E8ECC008D1629 /* Build configuration list for PBXProject "WeexDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 775BEEA61C1E8ECC008D1629 /* Debug */, - 775BEEA71C1E8ECC008D1629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 775BEEA81C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 775BEEA91C1E8ECC008D1629 /* Debug */, - 775BEEAA1C1E8ECC008D1629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 775BEEAB1C1E8ECC008D1629 /* Build configuration list for PBXNativeTarget "WeexDemoTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 775BEEAC1C1E8ECC008D1629 /* Debug */, - 775BEEAD1C1E8ECC008D1629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 84361D711CA10F8E00F43825 /* Build configuration list for PBXNativeTarget "WeexUITestDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 84361D721CA10F8E00F43825 /* Debug */, - 84361D741CA10F8E00F43825 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 775BEE731C1E8ECC008D1629 /* Project object */; -} diff --git a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a625..0000000000 --- a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/ios/playground/WeexDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme b/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme deleted file mode 100644 index a33c31da75..0000000000 --- a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexDemo.xcscheme +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme b/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme deleted file mode 100644 index 6a680911e4..0000000000 --- a/ios/playground/WeexDemo.xcodeproj/xcshareddata/xcschemes/WeexUITestDemo.xcscheme +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata b/ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 599b710366..0000000000 --- a/ios/playground/WeexDemo.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/ios/playground/WeexDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/ios/playground/WeexDemo/AppDelegate.h b/ios/playground/WeexDemo/AppDelegate.h deleted file mode 100644 index 14c0befe07..0000000000 --- a/ios/playground/WeexDemo/AppDelegate.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; -@property (strong, nonatomic) NSString *latestVer; -@property (assign, nonatomic) BOOL allowRotation; - -@end diff --git a/ios/playground/WeexDemo/AppDelegate.m b/ios/playground/WeexDemo/AppDelegate.m deleted file mode 100644 index 64aba4e217..0000000000 --- a/ios/playground/WeexDemo/AppDelegate.m +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "AppDelegate.h" -#import "WXDemoViewController.h" -#import "UIViewController+WXDemoNaviBar.h" -#import "WXEventModule.h" -#import "WXImgLoaderDefaultImpl.h" -#import "DemoDefine.h" -#import "WXScannerVC.h" -#import "WXScannerHistoryVC.h" -#import "WXSyncTestModule.h" -#import "WXExtModule.h" -#import "UIView+UIThreadCheck.h" -#import -#import -#import -#import "WXConfigCenterProtocol.h" -#import "WXConfigCenterDefaultImpl.h" -#import "WXNavigationHandlerImpl.h" -//#import "WXAnalyzerCenter.h" -#import "WXApmGeneratorImpl.h" -#import "WXWebSocketDefaultImpl.h" -#import - -#ifdef DEBUG -#import "DebugAnalyzer.h" -#endif - -@interface AppDelegate () -@end - -@implementation AppDelegate - -#pragma mark -#pragma mark application - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - self.window.backgroundColor = [UIColor whiteColor]; - - [self initWeexSDK]; - - self.window.rootViewController = [[WXRootViewController alloc] initWithRootViewController:[self demoController]]; - [self.window makeKeyAndVisible]; - - [self startSplashScreen]; - -#if DEBUG - // check if there are any UI changes on main thread. - [UIView wx_checkUIThread]; -#endif - - return YES; -} - -- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window -{ - if (_allowRotation) { - return UIInterfaceOrientationMaskAllButUpsideDown; - } - else { - return UIInterfaceOrientationMaskPortrait; - } -} - --(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler -{ - if ([shortcutItem.type isEqualToString:QRSCAN]) { - WXScannerVC * scanViewController = [[WXScannerVC alloc] init]; - [(WXRootViewController*)self.window.rootViewController pushViewController:scanViewController animated:YES]; - } - if ([shortcutItem.type isEqualToString:QRSCAN_HISTORY]) { - WXScannerHistoryVC *scannerHistoryVC = [WXScannerHistoryVC new]; - [(WXRootViewController*)self.window.rootViewController pushViewController:scannerHistoryVC animated:YES]; - } -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - -#ifdef UITEST -#if !TARGET_IPHONE_SIMULATOR - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *documentsDirectory = [paths objectAtIndex:0]; - setenv("GCOV_PREFIX", [documentsDirectory cStringUsingEncoding:NSUTF8StringEncoding], 1); - setenv("GCOV_PREFIX_STRIP", "6", 1); -#endif - extern void __gcov_flush(void); - __gcov_flush(); -#endif -} - -- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url -{ - NSString *newUrlStr = url.absoluteString; - if([url.scheme isEqualToString:@"wxpage"]) { - newUrlStr = [newUrlStr stringByReplacingOccurrencesOfString:@"wxpage://" withString:@"http://"]; - } - UIViewController * viewController = [self demoController]; - ((WXDemoViewController*)viewController).url = [NSURL URLWithString:newUrlStr]; - [(WXRootViewController*)self.window.rootViewController pushViewController:viewController animated:YES]; - return YES; -} - -#pragma mark weex -- (void)initWeexSDK -{ - [WXAppConfiguration setAppGroup:@"AliApp"]; - [WXAppConfiguration setAppName:@"WeexDemo"]; - [WXAppConfiguration setExternalUserAgent:@"ExternalUA"]; - - [WXSDKEngine initSDKEnvironment]; - - [WXSDKEngine registerHandler:[WXImgLoaderDefaultImpl new] withProtocol:@protocol(WXImgLoaderProtocol)]; - [WXSDKEngine registerHandler:[WXEventModule new] withProtocol:@protocol(WXEventModuleProtocol)]; - [WXSDKEngine registerHandler:[WXConfigCenterDefaultImpl new] withProtocol:@protocol(WXConfigCenterProtocol)]; - [WXSDKEngine registerHandler:[WXNavigationHandlerImpl new] withProtocol:@protocol(WXNavigationProtocol)]; - [WXSDKEngine registerHandler:[WXApmGeneratorImpl new] withProtocol:@protocol(WXApmGeneratorProtocol)]; - [WXSDKEngine registerHandler:[WXWebSocketDefaultImpl new] withProtocol:@protocol(WXWebSocketHandler)]; - - [WXSDKEngine registerComponent:@"select" withClass:NSClassFromString(@"WXSelectComponent")]; - [WXSDKEngine registerModule:@"event" withClass:[WXEventModule class]]; - [WXSDKEngine registerModule:@"syncTest" withClass:[WXSyncTestModule class]]; - [WXSDKEngine registerModule:@"titleBar" withClass:NSClassFromString(@"WXTitleBarModule")]; - [WXSDKEngine registerExtendCallNative:@"test" withClass:NSClassFromString(@"WXExtendCallNativeTest")]; - [WXSDKEngine registerModule:@"ext" withClass:[WXExtModule class]]; - [WPRegister registerPlugins]; -#ifdef DEBUG - [WXAnalyzerCenter addWxAnalyzer:[DebugAnalyzer new]]; -#endif - -#if !(TARGET_IPHONE_SIMULATOR) - [self checkUpdate]; -#endif - -#ifdef DEBUG - [self atAddPlugin]; - [WXDebugTool setDebug:YES]; - [WXLog setLogLevel:WXLogLevelLog]; - - #ifndef UITEST - [[ATManager shareInstance] show]; - #endif -#else - [WXDebugTool setDebug:NO]; - [WXLog setLogLevel:WXLogLevelError]; -#endif -} - -- (UIViewController *)demoController -{ - UIViewController *demo = [[WXDemoViewController alloc] init]; - ((WXDemoViewController *)demo).url = [NSURL URLWithString:BUNDLE_URL]; - return demo; -} - -#pragma mark -#pragma mark animation when startup - -- (void)startSplashScreen -{ - UIView* splashView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - splashView.backgroundColor = WEEX_COLOR; - - UIImageView *iconImageView = [UIImageView new]; - UIImage *icon = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"weex-icon" ofType:@"png"]]; - if ([icon respondsToSelector:@selector(imageWithRenderingMode:)]) { - iconImageView.image = [icon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; - iconImageView.tintColor = [UIColor whiteColor]; - } else { - iconImageView.image = icon; - } - iconImageView.frame = CGRectMake(0, 0, 320, 320); - iconImageView.contentMode = UIViewContentModeScaleAspectFit; - iconImageView.center = splashView.center; - [splashView addSubview:iconImageView]; - - [self.window addSubview:splashView]; - - float animationDuration = 1.4; - CGFloat shrinkDuration = animationDuration * 0.3; - CGFloat growDuration = animationDuration * 0.7; - - if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { - [UIView animateWithDuration:shrinkDuration delay:1.0 usingSpringWithDamping:0.7f initialSpringVelocity:10 options:UIViewAnimationOptionCurveEaseInOut animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.75, 0.75); - iconImageView.transform = scaleTransform; - } completion:^(BOOL finished) { - [UIView animateWithDuration:growDuration animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(20, 20); - iconImageView.transform = scaleTransform; - splashView.alpha = 0; - } completion:^(BOOL finished) { - [splashView removeFromSuperview]; - }]; - }]; - } else { - [UIView animateWithDuration:shrinkDuration delay:1.0 options:0 animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.75, 0.75); - iconImageView.transform = scaleTransform; - } completion:^(BOOL finished) { - [UIView animateWithDuration:growDuration animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(20, 20); - iconImageView.transform = scaleTransform; - splashView.alpha = 0; - } completion:^(BOOL finished) { - [splashView removeFromSuperview]; - }]; - }]; - } -} - -#pragma mark - -- (void)atAddPlugin { -#if DEBUG - [[ATManager shareInstance] addPluginWithId:@"weex" andName:@"weex" andIconName:@"../weex" andEntry:@"" andArgs:@[@""]]; - [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"logger" andName:@"logger" andIconName:@"log" andEntry:@"WXATLoggerPlugin" andArgs:@[@""]]; -// [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"viewHierarchy" andName:@"hierarchy" andIconName:@"log" andEntry:@"WXATViewHierarchyPlugin" andArgs:@[@""]]; - [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"test2" andName:@"test" andIconName:@"at_arr_refresh" andEntry:@"" andArgs:@[]]; - [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"test3" andName:@"test" andIconName:@"at_arr_refresh" andEntry:@"" andArgs:@[]]; -#endif -} - -- (void)checkUpdate { - __weak typeof(self) weakSelf = self; - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; - NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"]; - NSString *URL = @"http://itunes.apple.com/lookup?id=1130862662"; - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; - [request setURL:[NSURL URLWithString:URL]]; - [request setHTTPMethod:@"POST"]; - - NSHTTPURLResponse *urlResponse = nil; - NSError *error = nil; - NSData *recervedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; - NSString *results = [[NSString alloc] initWithBytes:[recervedData bytes] length:[recervedData length] encoding:NSUTF8StringEncoding]; - - NSDictionary *dic = [WXUtility objectFromJSON:results]; - NSArray *infoArray = [dic objectForKey:@"results"]; - - if ([infoArray count]) { - NSDictionary *releaseInfo = [infoArray objectAtIndex:0]; - weakSelf.latestVer = [releaseInfo objectForKey:@"version"]; - if ([weakSelf.latestVer floatValue] > [currentVersion floatValue]) { - if (![[NSUserDefaults standardUserDefaults] boolForKey: weakSelf.latestVer]) { - [[NSUserDefaults standardUserDefaults] setBool:FALSE forKey:weakSelf.latestVer]; - dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New Version" message:@"Will update to a new version" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"update", nil]; - [alert show]; - }); - } - } - } - }); -} - -- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { - switch (buttonIndex) { - case 0: - [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:self.latestVer]; - break; - case 1: - [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/weex-playground/id1130862662?mt=8"]]; - default: - break; - } - [alertView dismissWithClickedButtonIndex:buttonIndex animated:YES]; -} - -@end diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/AppStoreIcon1024.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/AppStoreIcon1024.png deleted file mode 100644 index 435f57b8d36d410d1c33c9c4a233ba81bc2cf6bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150730 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

T^InJC~Dm{**Pq223KyHY8 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 fSBC#T`BJZyfqtX{( zJaZG%Q-e|yQz{EjrrIztFl%InM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7v4w)UrJkXw zrG=4+j)IYap_#scrM{twu7RPIfu)s!p#l^r0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQ9XZ7`mF9SsEI;nprwJ8@QU8 zSprFC14AbRm|mCsATTyy)D+~U4xJkPayOC$yRMBTim@LzLwbhLF96zp)?JLSCX zmC3F8u6skjD5N+YROo1ui}}`nseoThc&p;hv{xnd?`-cHrzgL?A1Lsv@WH%d%kRbY z&&&7izi-(R)WvHcYIf|%Bx5lZmc<-L1*R?#-4MyUTu!ZU?;TgpW<{Qs2mJ|IlACxm z7?l;YZkT46JzTQ_6?g9=U`AKzoS*AmXb>XY_%2J`kiH&$t%=~Xe@*TJSN=lAdw$1~xE0~_5vLtcKo z!rZSZZ_ar}JyEc*l*gP|Q|aNoI?giNKe{U}K6~NwP~(F1{h)x23?Y7Jg*SDaQEm!g znXCNs%j$x-_KTmlez=udk^91!ZO+5@FZX*{BpkkL`=RpUZgKhNAIv5#Hg;vZyLds7 z;k!WgSvAee7O<`r7dUDu{?2@9{l&b)3%zRQwI81&d;j=l3*#7*Kn*RE40H7w`;+Ti zUYI?O6`tgvaJn! zmONit>0l=Nm8`aP#s^j&&Qq=`XDr+^Ut4pw%gTe~DWM4fh=FRo diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png deleted file mode 100644 index 594350e456e36761271da81a006cf2e91ea6cdfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2421 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 M>6z$O=-iC{A1EtksQ>@~ diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index 2fa64a0b5bcd203ff8b82c7e1e5e0f12aff36db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4172 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 M>6z$O=-iC{A1EtksQ>@~ diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png deleted file mode 100644 index 6160662a2f0a23052677bb52cee69dd6e84ebec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6017 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 AN&o-= diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76.png deleted file mode 100644 index 85ede639e52ebb189e106f10e5b748c0924f1f13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2918 zcmaJ@dpy&7AD^VjwcJ83+sLKEF4)*mY$Ic1nB!WRZ8Gd)8yh()VsXftlWV$Bc61XW zQ46`0Zs+Ktq>^<`C+et>BA)3~=lSF5`MqAh@8$D)zu%whAK!d(;3jPiQw;zBpiS_@ zhbVXA(yzWux%y4_W-2!mflq`WloKxyQh5x3H=Ps501;T!ZHy2Gm7bn*mEi#ZsM;|p z5rPO35kup!pwuM{RK(&c*#LmYMiG}vOJWE>ag1$DwkPE8b~yyZqgN;s{)?E zr}3Cv0h7Z9Eh$ptIH>|ph%(ZDQebhv$+G!h%A_n9Oho0v5K#D1N?(B_(*K9DSl`fm zK?vjDc>kv`pOVgHz(N>&PAZS4Y+St6k}EC-$74_h93F+kN&Z?zaso%d;U{poARKO~ zYOWwV5|zeeFB$DWvq&Tifz20C*)#?L?+H=rK$%QB28V?^JK=CRA6FC_f$%}0y>W0K z6bh|eac~3{{*{a8&{A0pw%{w5{x28*UGCCAu((Rkcm|J|#-RK1I4scT#4*h8$Kw56 zy)Rt)_hZ3+mkUz{16ykEf3^FoNjXDH$8W={ynGvf23tAvJmql932AKr0Pqe0?@bXs zoT&OKSwGddPcD4*@xrO3`>BntGaAFjs~)?q*wa;LY*v-XdJcy03HL^~2N0gyDXNTu8#Ug^WYn zvu=%h(nJUQMxexHPAU~UiC&NIN}v{O3$4q`OlNM2rzT~sV-)wmw5Q3ore^0yvF&R| z%yKCRcs(`5Dq4(Hy;c%jTBv6=Rqw7Ml}se}9#5KWQcJDoo(KH>w(v=NxJWKM8jXBA zEpwsO@4v*GPFdO3ZgK)f9Se(@(1TVRO3Jf#99px*>{G(;RDVqT^Vmx5DAWd!YfPu@ z^w4AcjO=pSTv?B1073>I?aA~{qSyo5rZJ^=E$V}|PD~EpWlf64oC4SImOrJ8}x<#z}^7b?9 zPH$7}#^_Tm&$_|JWj5N12ha{)wr^8UPXjX(xR}s8KQ`NLLJr8kAAKweS-PL5j@S$847}IlK%c{t7entx#2~X7}foUd=ZU)khqsx!QCtu3j zKmDQsxOJ;~p|2ydgJ4uCiEv3s9mNA%BoEI$0510UUB6MJ(b%06+)f@g8r*a1w*y&! zFE=nb{{*$bdwB*o%&VLK1^pm8Xa#2 z!>~w4@e-2af%hAkdV?k$C<>fqh`X<*9PmFC{|LIj&+z8J|8KSax#60$j^l2MoAEsb$5V_7kpx}B z+dg@ep>sdbDNbImu0Yz}d|>G0XVaLMI3>|eYqpP*cu3C~mqIiZYVOMdRML0X1R?`$ zH5Kx}o~V$JiLjLZ#S4Z>_okYj?op}DQ8lPgr^3mwHMJp|cgU^`lcip7HB9Jw+uMt8 zSna$6*GLS7`c)YTEB1KBkAF;%hTHM{foSrYp*TilM~uVW^S?Mr)K)}D=jV&p{#?*d zZ}y}1l`6RqV!g{AH8Uw9Q)lk}HD$kUO)qX{9J)NeyMw-WbH}~IV@{sVDVAk(m0R^4 zsOr;+QQCQJAvz@|`(0<+%(bdL6NCfm>6{Bsx5t!M1oVB#1UiB(#iE8rvjCtt*k<7A z&s0$>Wx^$}Tt%wQ%dSW(A!0hhGsZ#ot9e@9#*fNNiqq5WP+lblF%=e+s25YWLf;?8 zsB(d?bA8(jCDsL!8y~XL&xmcU%_|a&a;9QsCWk2M2P2EYU}9O_;La^SN#D&q-rKa< z39A?BoSkUnWpUM@ja{U%Ri{onNL{zCZrh4oioaBQ#jHzm-`Z!VI(J?37y-lRr4f%q zX}OV4=4Q4x$ZEsKnY{pO=9M%DF@o9uX4q6y^9{Mh(l!9xo^As6$;FpdYRM=1avGa2 zzmYc5JreW>BqHM36__Ju#58iEt}V_TroGu8r&qCmKYSew`!)E2tIGuO9SG^Uz_=zQIS)Ko-BXsCSYE<(F|b7M@Kz2`1=JVUz6z(+=`Fo{2|j`N)7aST{{Wqg)6)O| diff --git a/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/ios/playground/WeexDemo/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png deleted file mode 100644 index c513d8800f55822ffd5bbe9cd7fecfc807d3c92c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5088 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 XLO_AX+9&DPKQ~)T2a7WEi?sg%L|6

pqU>c;YM&hU~2TtaNmA?8ZiV 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 diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default@2x.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Default@2x.png deleted file mode 100644 index 948f7a3dea555b5ef0c04f8daa0e060fc17074a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19694 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 S!YBg%nLc&alhg*J diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 4.7.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/Retinal HD 4.7.png deleted file mode 100644 index 95b95ea3bb53999d80f8fc2564f68b320f9c58b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33603 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 v!_rJPd_2 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

axm)l8T!Lwm0*~ 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 Fe*l8HuFC)b diff --git a/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhone5.5-landscape.png b/ios/playground/WeexDemo/Assets.xcassets/LaunchImage.launchimage/iPhone5.5-landscape.png deleted file mode 100644 index 6eb5283a36797276ff0d4b9ef935e5426d4c39de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66768 zcmb4s2|Sc*`~MJyPC}NFB4I{ZN~Ez)QX1Q!MJQAz31O7TI_+90Gf}cf5>j@RrBa$n zoFr0WP6o-EWRL&-IPZB+@Be)}uHWzT`F%dUhuiZ!_kAtj>w7JCxRs^J0wHN391gdD zyw%tShZ9J`;rQMQ%timjYy4s}`X3A2Hf^#ZZ`vehMe{n~=0U~bHe9;2W6wdE9pVNL zeO*^7)NJ$6JbmQ0;R3}4jGdav`42)req4Vzn!NtK{AZWpzM5;Snhon7{z#^5whCJN z<%W1=c~O`g;rqf52Knk&g%sb{%MlFnM^9RPzHqDiy6(E`ZV&FaQ2Tt(C=WSH}=r_4WA;Ly71NuX2H z+mBO;*+pBHNyz!g?#t`AJ^x%J&p`T)mwr6Q$FIm5ez9LZyzg_-T2iI@@!~)BH$L?> z2)X2TfUEN9%{l%Z+YX(J5s9pRHoE1viM96{oRTaKb>I2ip0e-8(T_>@z5Dl0C3-$S zc>0^?)AZWwi3X?o_wJrpt)KToE;#d%3wKHs_XT zzwz#@5A*JnC8lN

    >rd20PPl~1bYYPCDr+aABmyu)}F_t>wpNXve3P?xVF{DDL4 z*DBhC=eC5w&h{@_u`dGyj3>t*1#BG-rX>=4yMjJ{I~A=uZ!#^0c~YYCoe)0Wef5I`3cw7oGlfy*fmGgg+Q9yD*5hU#!2D18sgdF zOU^qbACOwwS)n(mlYjly2<5jcW-OVQV}jZv+||#1pl7W$>&b@cXz31TNi#>692%qX3S}wP1?RSP%>a~k!x49dzR^nl^znyC23FA|6#pXV-WwFzePC zHf|!@bhjQoIY(AJGFZ|y(Q zU_hGA#JOGyz34#&&ywtd%;T^8m#`@KBX z_PTiOqpJCPdZXXQ;q?4<&_6w?NA}A3dwLx9)$!MtpZN_P^l$7xtINyH{K^q`efeD$ zR&txXXjC~ZHBGfO@&-b3a&me!mjgOB##{ci9Q`kS`GZG}c>V^zWZrz-bdWL4$EPGcke#0qet}R z<*^6-`~UuYPpZG$-%mR1`>)SJAE=J~M18H=8ukCR?1p)c<|N211`h52xdBBplgz<92_Z zo{y}kp)Iy^IbyH*cyuNCdWz>1Cm0q_>+1^4y`X0!tRsErfv4B#U`C-Sk?d!1w|yx- zrhKx!wV`o(vZ_00YNFMtJNMDlh}ZPj?@rSL>N(Ss>7l_ts#>SNb(c@~^*fdS_}==+ zvDaH+uRruiYBaO$ z2%pt>=lWAL-FLFD|LF;TJ^UI)j^C=#pKO+#AE;5X%zX8ce}1z+*L8?(3ZQB zGpDp6yn?mcaNa}3zy9X0pF6qRna}D_L*)uxLz5xCS+{}Ye1M))Huizb>U9n^J~{io zk-{o&ht;VRR+EDYGA)W1{rXM*-q2#9-MobF3JDK1Mux4}-xarjHb7!A5A#JV)BU3c z-pnoGDV}~rd%b!>JmiUw99M?XGJS;OJUYKM-__juYccruhOSAkIE!O1X_whbtnG$8 zqgu&ZFzMX2>fuHAoMsa?v}v-7M!!VHygB+QEWYh+rzT_v1oQ+_g$NGc8BwJ0z&oeJ zGQ?$Pe-JuBZQe#4`&CNZmJ$c&i+~e#-boiHl}PH8L{tk=TW8UmnGGA^T^VLm(`>iU zwf|f~^T{OuxfFSUtr5cqPAQZ%)=6$;Z9fiq(lNA3EKkul_pYcOk!e&C$X-0VOo!p< zt1izWP}ij3zczIz=C>Gh+yLxDScM(Z9sAb|Cei1&+9l?RfHiXSFXBv>NfB8j(C75? ztMM>{11hcFf1lz%Ao#b6{8EiNBuBq|@Jgc;HnRrp8~l_gPS(<%uYJrRAB1#!JCC9~ z{zu-?x~x0VzA<$nF7SpJge8M~r=@n4ek-dtbt4}bZu z9|_RSaMbIhk9FY=5JZ3z}J!(s5bcL?K{d6S1IyPCpvhg700NSM+ zyG_QAL!^|4ceC?$l5%|SyZGMBLQ#-FjLIRCU74YKWux^3_hg(KL>Vm5*U0;b*=C0g z_I&es{O#rez~}IV5b2^MWrq(Mg!b-WVZ{T%kVOJLyiUtfB-h)CZ|G8xhFHf$ej9#f zfw*?~B+I^RSO;H6NEFQe)gJ%!2dh=rAcyP{FOdAGP=nwgPCdNrA^tBV_=okQgv$|} zrd)jcm9)uhhXu@7)3H(M`H*irAhB4&N|@Jr!X+|6AW3GICd5h{=Ci>mMzn?xutvEp ziyJ{k;vQy@RsA#$B^Zx#Wk|%4wPOG9L4W1oY-wIaX=1|KPCzC?pTB2|_Dfn<>XfQ?(;%4}zZYnO8Zi z&O{3$r~*OTI0j*LX36zi`a{2EM?(yY`ATnDQoz+pmUIRqR?kPQR?|>mDF72qZs)8B z6ANFI!ARU^4>7IQ=pgMoxc*W`*S~7-t^G-(e{r64S;31qcJKZ>NzJ*76#yFknKuS^ z{sp-R6xocPAqgdAwbT8A+w9ChoBIeUw4Qv}r%eDsCvhI4mtos1B8+TgPQ31)dYQEn z@CBpa`4Gl>_i3=Ww)1+GiTN*f=08y6WF6+l&)+b9q+nvcU2iOHy8naBfBeS({3{%a z2#Qhso3^!Z-6koc3kQS%0!*K7#UA!DG0Q=axiwD424AAWp6*{Zkpoa=kJoN$6)RVU&Jml?<^;3|C&)hp3JWwlJdb94lcH(N>Q* z5}8w{1UQ6in53Exx_H_W54o1;A5MR^?Lca-D`b0gk>~7sW-)x3d?&1~^LSg|p63wJ zQW8f;kvpb1sOX*%Vq=9nMYeEbha%e$&z$cLJ%BY0`MfX>Ja7lpj$O=N|cS!Cs) zTnYW~K%Envqo>w`j^ZR**b~l()^j`CFB5$T;weOmg^*Lb?qDjACb=;~!s_nA#Skj)33T!{O@Ns73k$#kg+helSm)PUp+_&)Mx4xe-DP(znR!htg1ghGb>!qbh^il z+4A-;&-yJTT@c5~OIwnLtf2ZrwCk+cte8h+{S)bdaTCEt5FW=XI$+P85_4qxpV4|6%hYPS4Pntm5;(! z*4svVrwREi3R9{b~V32-cSjlx3s03DIu97s-d~6Um=kciDM_X>~Wrip|Ub_Lx`&(-F13- zWa7mBEf)asl(Qv@tf?Yd?E~=wH|i_Gn^{S(A@Fo7?+6dGcQQVEIlHVlvFgpzE=3)X zj9?5}V5Lh=sEu&jb=&7P5cpiChybRdS8hXf_-9tpqzd2#&DAj+>_b}+pQUS6YLUbL zm!|%c&F9Eti(F{0uGe32*JvM(#f?VDhA%Yn>xw0V5dN}93aK^O(kd0r1nb0$q^&6IK zu!n4WB7dEzUR8TwHpBPXqOZ)GS0G-iqFZZKlK3Un!%-Sa8EckTEIss>|u=wB$R>dU|59`Lf>|#0}6M4SS{ZUdeCwV)wElP>jzY7 zYy?PxH^xPG$3cJr53ejgpOt}_-9Kr}UymHHD!^xS7Bh&bGbh_LpClr)>e_yrJzQmukajWs8A_Z97? zb@+l$;ZN}ErnmIO&u&Twb|NKfh|&pPZ4lUz>NlJ`7~D4^2=eM=>=YF&qiN47Y)&Y3 z+dNTf0@5AQ>y4<6}#^^9Y~pIKu)@xF5WD#MLS-hZ-<|H&viBV1gZ9y{tjT!H2v_w0 zC<=*l3;{)UzyG_HARAYv^Y}qg^zqifj5jfd{t<=$CF%zed1G2>@m>NyI0{-Ys(@l9 zhtH`>lzM|PW7h=0H_Ks^-dy?6y1SnzK+o{UW8mUwF4L@?acp-7BowT{;_Cx<|6trc z4I~=ukSy-AyAZegDWO(HfZ2K7~RXfR zQq>>~my4psN`F?&&^fXfcis@>^95#Nc0S8OUV@L50a4lw68=6C9sT0l`y&2$tJnWQ zUT*T5E^#|e`PB0M!;^Zq$On)oiTIb=;P?dqb__>P6l$Jp^@$VzV_;btB}C|u{_Lxq z*JI4P9izaJE_Ynx1LbiDK)!rUZ@As^MSevklE`fyav?rDp2}3?)aYJc{u~oUeDk)3RNlcVc+@F}B7x200 zXdlE_&k$`v_-aH@kqTF`fSLTzm<2rLgg;IrDfnKG#Y(W4MK zq_GZNjBkuDNpYKp0Ahp!07T7au^e%VI%fySUc*~LE-as2WWy@*v7m-e{}^r6*}BN~ zu1ju@J>nq7bUqhnn%GTd8l*r_EQw<&H_ytH&NxckNhHda`1ZAy)U{B{ z8g_-{#htY!iLT!vJJ_)Z!R8O8i5Mzq)>s1IpUqWJhA#gFE4V)Om8HsoZiw)ZIhiAe zJ}Dgb36DLp1Oz>_u~^Gtocn6dEy!megNhjCG^RoL7kuDGroCi4oa<8zOW|d2G+_Wv zlXDZflqmNEZc9}WD0)~Ej~Sm5U7tzIW>|tTXdAL~hh;BsDWR@~B!PeDFFT%@P?*;+ zv0R@x&q{{%rW8cutf%khQ5;lK_N58OrIJrUPLa=%7$z3L@a^Ce185A6uFXpftCKQF zvr2eAaS{|>G6cD}^NakHCR)87&i+PpLp2oAlva=xtW&M0Hsojn&`L-!U4}%S=yhX0 zy=}$j*#tTDBmuw4hKq6) z-5;JmbDNcAC^!LN@+Zxa#MIPoR%UKZg@Ho=`(O*smml*~#;Zu*b&LR6B6*A|IP znu1mI_95fn+D#9D$|wjJH1rqqVf?T+(_(HK<^HZ`kOe9JBcYG7A5V=Qn(PIjiIxD7lgJABS~QAVKc6<51)b$ z0R>X6qG)Rc66y!YdY=Un`UmVl;Q=qfG+|T=U^4_Jg%My4KWipH6*V4Pc5yjitE#c1 z@aeI9=qKjJ3<#C>1F#mO35ZOnTx5Vf12*LHHIvi@qmHog|^n z5E*X5WZ2AjAeGM|y137X5S$DlX>s&MTkV5(jN?vi3AJrqX0Uv{Cf$sm*?T!&a*JCg zto96*RbuoFYcr*W%=Df9Bl`?Q)^1@HYgApo&f*co-tXl!8=AX8birI19oCA=E0s#L z(=J;;BBV!{kQTnB;k{m)L!R&(eFDe61}l#l*ojoeu2oGNQffk)sct0txq8~#wTUPE zmSzGmEb0Sq&zg0iSW4wXaPTvy@YEqUmx=biHa>?Dac@kh^A&yuffBUShv;)z|!01nTYD@6YQGt_Kui$jz|s5$)&5 zeV3~8K^StzXUpWiQQJB@_COfGKrj`@Uh7YDno!sY^Sg^N@1Cdl5)o>_D%3}o5PSG% zu&f(7KsGktQqA?0rmkN-0VrG%DHeT!vh5@;cMD4df>>s<<+*rwwNRVoVkQC1b&z=F z9#*>|XgtK_gLyQJVd)pc_jeq2a=#4l>CTdvuJ4egE zZV<0^ye=JPqnZUT3K6J&^W(QBG!vIVvM2r++z`{VJ55=B?Kgp{WJa z`ika(O!WZ?WOMg_MMW#&b@;rgH9Y`ge_#*B3>1?e_PNIkqy|Yf=*;f1DpU|-PHWD; z&9dGEcm#<<#_~3Xa%TqlTp@wFv(%^v>9H}udXhM$SRcaplv^IePP~~vxh72hvc?bf zxd4IZC=4tnHQiKt={8mp8ruL-^lO&LNXk3Z-F+Wt`4r?QLsXC&8iv$^lE8e9ISYBj zP5MT!K%f$8zY!q?Oy9Gc{Y24j@Df5m?-06`lWADmu=61-?Zm@dixoNAG(2mEAVI8( zO*u^L86~2zCG+HmrB_YH)UuAweztTwtc-0ZFE!_s%^ZBGim6xir~QeuuS5Aq46?bH zMHjQ@_+&e%GRO0u;AIy>kVglW=9JcG^7{HQg-}4uxdLmp!2ojZ!As4oXp-G~vR=B$ zh(FuSDh42s&igQ3jm3XRpJ)A^^l(JNvjW0RI@2(Yw<)S1{y|<=TJUW@+Cj@c>I7tS z@Yu>lfx(PTR~eE<#NXl*8bNBX8&RlF_62M%Vb}{%SBKNYZG_ryCqrV*f#Ye2+ccw9 za(9n&n@u3J%bJH3w(|%qhN@$f7@^=z)$yB#w;&F4O%dr%7%lBKo#BXzWAB<>f+*Dt zK27Yt5#+cwEd?SaN?2RPZLcWzIBrXT-#%>zNPv19DM4-;4L=E)p&%r-B~e}5{dd}2iIT9RUd*J)0zT|yXAySxP@WBCf>tHPEhw}hd`XV8gYn9!7sI$Ebx%M%giglM z9gvh;_i!a&$U(qaAo}f+J@~7%m-`^FDQP}R$~0&!i&+Tx<2X76!=++)lqS4IvFTmp z#-v0*V*58(j(x>0)87?N;LS`ED=YF1)&s&^xq*#XE-!l@UbfO4f}0djr9;}QzKu*@ znf7L{%#V;z5H&OKFlp5_(zaK2H5SA@@ReHcBUzheC=OxNFra2?C;BytYRCSb-@E~| zi7H5@C$?`lXi6ajq`_ohDLu!)PtV8IU6!3B(>Xo|#E~L@?9R_r^{^>x*z|>ac{6{$itF7JYcFo7UL( z!T8Hi8f?pBQAd}}7Wu=24yFC+eF90E1W+k#AZ8m)zqmYPzt=yWTV+Mt!JLo+bz)w_ zvH*t~6c)<|~F`zn};X|Q{50(na94uagQR?tIxQW zL)PU4@zsiQW%Qdm`%EHh|Et=-^X2(Hf6W5;Uw^Jz5xGOA2TRPhY5KOWhQ02~5<{uz zj}V31jcsW4=3quaPc|-(+Ep!%Egr)0^kAJ|>VQgzM0Jw*Wc&ture)NXp zt{@}z!MOWFjIS9mG1=%8_!CvIUsqy+AB5UlUP}yn8!N^t!xD@f1M6Ta&%5u*{nHc-q{8#_Kl>9GALK4nPpth=>6dU<*FW&dJ_U6R- zFAqb!FqRKx;}7lodZ;z%`TKC)P+jo@@3ovd^~+^1uV) z2-}~FQBe%0g_OCy@03bU zEZ~HLF`pO6o5rQ2l*-I4o3>mH`6wkZbY{_7O(*c1lfKW{w1OEPB35WRJFpqOj)erB z$NN%cpKenc=hQkL)`F;Gjyfu0;O@gm;mfBe6~cg53^hlV!Y${+O*}E8t^-7k3236d zD5=*i`7OT+wg9UNrDYt;HBA~#hKTJWDI^OcX0ITY7Vy4+k1yutxk z^WE#V{I4(m|Nlw|6$x(mCAD_1oYP`&Ew}3lE`p#t`b@!BG0RKwNbcdaOiAN_kav*Y zARMM9v<XuG97O$K2#UwIfI&Wcv?*>Pp!Hu*+;{HrN|!t=#qrsayH zk*JoNF{nhYA1j$--_2ICm`3v`u#?|B!~qN&=W*8Pr-Z9w3vklK~}R^NDnL6amhJL z3$BKh4(~xHizjvQ<@kwEF5S%U>#>K-eUbCV3M8(5%u`bI&)qVbI@jt;?_fRvFX8B2 zSbe3+Ok%L}EyzoM6KtMmCH#!ivGV?Yz*f)`u`0XX{P+-Y%A;&41GhZGG22~`H0i+V z`Iuc9RQ#~R?~#ecp+Vz5uI@e(1~Em__$P$W^#vn0?iFVF-N<-y&%(b^Ot;A7<@j0)fvU4;Fp;|y0bZX7^~NKc#JVvkpH~%*e;M6 zxsO=Np+(2+d8uZ}=GFT_<0nn zfB=hh?nZrxj)!CTHI)+Wr+?z&Id+@aqS>u45AQaNjc*#h?IpI6vFV+Qx%uh+AXttj zFX7rBJUU|~Y{%@DUI}^By7|Zk5#49ZT&=llKV;1c1mqPRa+l}4>Xg~Q`YQfYDfLuj zY2Zhn?TrmM>C{KlE48bh7n#o?-?23_d8k(>KRUNSZ)ZqI>^~eU3W{A`e^MMPTh_!_ zUzgNDGF^HMlFHk)Lypgi_eq>SQAvH?)BQS-?{F84<0Y6>Dg z?*$>fi86=B3_n99KFbG@kg&HRtzzNoq}^ptL8-YX7y-2AL^eRn1SU%>l*2y#9$#KH zqyRAJo9SpI9E0?5XXQQ6T$aT7dJ`*&0fU3eAKeD1j*!?mj3g-_VHMGK%%(%3b=kAF zc@S!7;8F!KOg>=n(hV($WMRTMyls@LiHn$>Kq7^aL}v7bm>W@IkW?S4C=^DFDb6Uo@6oH2&R^!y2&> zr23UCkGJiDoPX9z5ne*K#|KMD2s3rHBCniqRi7x_LhPHcUhwRS?jD$9+rmK|Eq|?>J5?O7qEi^)>6cNXYE|0V)><{Q0hoOF~1}>(We7Mg>yLy4d0u;$)C0iIAgURJw`Eyy@Dxito)iGNe&nh@`b$L z>iLy8HrWW*ZoCgdddXq4VQOOYSF5}R)PB5ZC%wU?5T0AY3X_ji?q?)A0dL< z+p&uH*e#-_0j>uDs&p@(B#?A*rT=jKBh&cZmsERQzs>&r^mcwD9CiL!RLpTgY17h| zPkH|7Wd1rm0xzOuxRi(-Nlmw7yJvq2GJbc_bJ}-_Y2cF;*x#341fWj=6>KIV(O>Kd z-t6H!03r^nh{4E@u`pw{;)RV62cw3lrMkwqXI2Ir5DlJvLB$u|bew5s0BxC;TV7^f zli}<}J&c5P+{JDPN8>sl4`)GQ0UW(bAnDQS!*!ke^iInH9)UyEBCMt;zqA9axFIh2 zYAmd;ekazUqTmw|Q!PR1nEDa~3Mr96BRb}u7H7+B5M;obpY@Plx|-EpU5W2~a3}l; zq=G!G0%N{X>sg4U89nrRkp#u@KB$NRYc!AQC=@ryIBoTX9lM2S=n7zW5R<(^WDddY zw(Z8Q1vVgY?!(lkUYC^}v}f7lbvr+nH$bS*id9%BU)$33CAgfOAhW7yQRcNKJm82c zE>z?dZQIM({efHS(`wVph&Aq-44-vj3?T&@Cmx}m{BKIFOWI0*Aa#f14EGVuJArT`uWF?}X zO^T8)jvvx6i=z|J34b4rFE);ZppuGGYzyw-dsh`uOqVgg7M~|PHG&lI%gsN9GhP19 z=sBWWjti%0586PubRJ%H9wusl`Ge6rT9j@|AbQxmA?P#fmVW-(G5%$K|I0+nV0{|u zhwDz@(ZYEXGFr3SGPDWUM8Fma?Er15)^tc8$-QexDeEs4?ZYej$_M1W>woMA05*n_ z8xZfe6osj0L6s>g$R^vw6y*}Wy%~q7;!CvQY|m20hw%0vH~@-?mO=uz^Rq&$LtwxP z03XQ1>&34&hcG6%nbPtA6f57xjF4#p_jmF`Q-1NIR+Bc6Lu|p)7LGB4N`WupPSs3k zUx!q|?y^B=Xw$_g-4iZv3vTK|YwFm3la^&M@9}%b-#n~_fLRrS_l-5yJk-ZdCshHz zKV`&OA7<0C<4e-yvp{`Fm~ro1MP7g20gDJWKBH7Nn1|VS6GG8=D|_Dwi#mx9953?B zxKBLSY4Zva$dNEH*xk>)9YEt+)-}HFa)&jJ#PJ~83dqi1w>|E?4`t9fK}&1_XS`I^gVS?#HWCp2hIZy zC~3Z4V5XAgdKSYHG#z8WPHsD?Y14n zm{OI7D!?VusTkozwHW-Wi)s+X^fP$GOBmEpIY^oFr~(RBJgGuAxR1iC$#Z-lf-o~l ziRe!=jjx_lAkTiN9SbPm64_;n+3!NbDzgp}+h*r_NYca`qb;?9>*SRZpAw|J)&ikxJ*wz>*~?86fB!GA^1tL)1Pk7&7Q=Dc zL=8MKBx>oZBtF$;kRxMYm?T4n$ZEW@DWf$#{kQ-1=l{z}-{!4VyJCYkL1uX#^Cuo3xnWK` z02)QCf|b4~yW|$FrZcO_=aN%jmz3X&1M#Oa2uO*MXum7$S(V5q0TPFq$mJ2s50$Zr z8?xH1I_4?ZKx6w_VXOHGmFHN>^tu>#kQlw-P3C1M?jA~&G*I5iTx_xtROso9RV*sI z+Z;+XKM4l8$j_u4^kD?4dzuWWOwZ@}FOmLl`5l!*fIzn4mK&W}yJaWfgBrw&7bI;s z;hHUb0#fZewG$a4#|t-7{d6PnWuwP6@4kkJ_bxJ8Hh9-pAdTNTBCtElcwY|0)f$Q- z!!qomc7!IbD@t-x0M+O;A_=N9!do_#L~8)*3+23(k+8arqfAQV?y_eP99faeTU+++ z$a_m&@AQv3^2))bkemaKt{}21sV9TO5=ewil^wt`eKw;Cvc=o(N^Z&+X^^0dsT|^; z9Tz&UMXr#%wDu3i@Sa1-^<46G|LeMvv1T1BR1T#8>1|@;@o{ zw%~2r4)q*$gtQbp+tC+FSRHz{=rkqz2mKwOEr`QF7Se-wQ0$3PGDGRA5iIX}534*& z%_5(RiF-o0en2=i>p2xv=AT!Qw=jQ*T-ra@^4#*mco;NC_1 zqO8UpSO*vC=0~J_T&jEd%LExOf8Br)?TZkwGPw`ajT;{PR)c%$xl+?kMF8fc!Vtsn zGCFQCPyMEnb8P|8I^;g)I)k6H@%sqnqtm6?fHhO$C^i#YiC-HrNSR8B0hn)r$yIdM zRtt*+j}>(Ju)1I5f8RT<^5OPw5vWwL~&3^#%GC=6Lkkh5Sup5XBB%6Lb;=U z4FNRdj$Ec2))`R^&~!vlV<#Fesi%ClKi@IXrLV{bRMEKuOP`DBWo%@63diL)?I?i^ zP#`%=ViKo4#<;7mwcd`=WD2Gv&zxJ>Yy-M^01vp#~S-bgOYOSdma330 zXa(nXK7@54sbk@v{_mEptYbu`I=?Ca&8T44RK>XVol91knz#qaA(>z%$E--)h>jMT2 zjkfcy4U0OV6u969)0FV7Pth6*qSuDe(qF$Jl=>9af%Iq}hR`fO3NB&%Zg=rHgiz)y z!^RtU?Q{Sox}7mh+f(&qP+$KhBvK|NAxekM)Ixf_;Y7Nb8^rGJM&(p&YJ-bunqJ3L zyDn%xy9&k^e7ofIriLE16;V-SGrrAK@dc;=~3K zb7+xjaKS1G2=ITSYKU;L9Wu1eepX1ph;jxt&YCw zUx` zd;R>4Q@2@~MM4q5pe@8GjmsO{7CH(Sk|98dhc^i+a9?gJQ2&92HQ+qjA z+D(^h0JfR46TzS1ZM9`ks7vr z-{lfiw^$jJR)MNjQZRHI(d71)B3W<`R1jH?)n5$_Bp4CW2FMX98;*6V>p^mByDZUO z4E8znD7ad0>Hje&-$YOYaM6JFsAOE(lFqUCbk{@RK4GkLbq!H4EU^TY-|fn{ZTvbFO{U&zy!J z?LHMbm)q_4Cx%q-M z^^PXpK4i@UtLD2`j39M=4_Th2x|i`RbZH?Vsu(pzx>Tb@>9|rd{kHWUTy? zFM(AcZE{8gb0PO!Opo&M+|Hd33irEY-M!C@0bK%2e};t$8@Z2I(I@Z@%ArvjgzWpp zQM~|*EYOT~qtwK5KjBT#eN)@@N=}1@ky@dg;c192;ppWe2zf>D61p~bX(mhsYl0G2 zBE<+7-k(9or3#cU-o2;pPo09w}Mnr?s z*K=XrS$s&!m35+VMP>XWWOo(-g#BE-&`vG5gPOfStfFAkrM1y%CHJ4URhp3MDy5_ z-vLmlq7EgKCZe_6M)u1e0e8<~RTA$HmM5BwGhyP1Q4h-Qxt*v|AzT)+q+%hTS|o=x zuYb2}nXmr%$#Pd^$UdnrLRZY!J$F2bPZK#`!BU@?_SBtSt< z{Si9V+ID*Og*?2|`>_L^dTKV8YBus?6z?@?I2`&W6i_|Incm20nm(ZK>DubM@~oAO z4Au5)>I5hn+%1IsO~B?0arJua_D!(j8BNRu@KdI^Pw;MqeAbm#(o8VV%H^_lu0zA} z8=bd6GBGI#;^em-8!Rnoqv?a}gf&NoRAQPiL?e`nwx&QF^}Q?vL{mAe5TV3+xqQb)ExTd? zA(sl4d{zy>W@|1pv$LtW1vy^qt^)E$8Fe>XR&uo)vxEY=xbG+?e~Z(elZ9jR-H*yo zKv1?n-diY%DUEknkW#<$n7Bazuqy?#%$lecO^I?yIPI;;68C%%Nr!bO$Y{9P9x5~? zh;CJ8eolr+BHBULCmHpwG|HX&=6R69x_b|hf;XmzcCx4nY>ZaepTyYCR4vU}yRjOG4Bd9$x1^?_Zk9vyN3bXNY zDt!%#=hCo_J4G*=x?DKTYyX+qG0nYO$bM&)gg*R-=H!3Z7mY@uP0)zo1n8Mg9OW8L zDMms-{-i0&P48gG%FOGjuO@HsFcD5$2THCO)2(_hXoaiw#0ypBQ~+>bE?KmB7yc4Sz$3%$GX03VK&Kzhq?qJ_0esyRd1YbyFiV#gf@;=UJjU(Aa~1pqa{;(*D+3fL46e zX@eNL8A6mD-P5Zh+$Or-uHD2LF!G!}ja@(<<0WcT;sU(ZY^K`Xp6g;5&Fn85UprED zQ4*rNu^8aXQ~WNykxBHf`=so?uL(2}4y&fBYbH94KDwE;LcDu%b#!2UvfkMCj1TByByI+?yFH4`SfDY9tVLs zSiuUdUN>Vig^k9_GOhvS9!JNn!p!E7A4EPqW+bhscN@eF&D=wtLKI@{11>Ji{c;T%Oezu4CncQ6(8V*PNEV zfJ-_Lt6Z9o#dCBAD)-#3FldoJ%#j=oNDb1xl!`nr z9YxECVzNaN^K&@Pbma9vK!tz*2=#ACSk?G2b}nomv^xnwcYMoNgvlTNBn8SgZbN95 z)lT_x^&~;@BJFPY;2T3{!2RE075!LhCBIfwPuY$sxoPYppC2TYA8^9J>Z8wE=cBfm z5t(bVAyFx6lS7_o!)aHu>x|}1)*}4Z(Z|0uYCr8zvw+@&eK}`HuFf6^4`?GSmYe>F zTn1|$4Z?1?)AEm6oyav4Zg(*12Aq>SR$yo=-0qx^6KxM_#5;vSusitdLDo@p3%AKuO?Bl*7E?-F^xPm_tzjfg(&Q0Eqj=t?FAg98d;-lF)Xfa6lP8Qs zUWYVbAYK9m$P3#C!eMy83lSh`%O0&;E@`qv5>z&Ci+#IPzR3B{EQy%4klnK5G|fBo zDV3i>6G^MI9zS1yFfV8Sdx&JNo{usnsC~f2+{l%R4}@T%VyxR(RGXFkdg&`0srHUN zpz=#eEWr?`>ehHrJSssqKrl_^9Q7sS4PB9|Bi1ef9nAnXN8^2luGfXQAsd3MlLrq( z&7_f<(MnpSHv}v-EeZNv4zflbE6V<+l>CBhk#Oq%W)~00$T!3yE+)BE4GfuFH2`w~ zC?G|RcFRkGU~`nHe@??$l1-&TE|Ve6Fq_1Lt(z&9_^(5@g13$cLHrec6Us~x&lFXC z|3kO&rV7L^HAo=2S?L&cKJMZ**1>Eumrls>&&(2=X-B?74Ctf+hHsIav3e&rBS2jk znl_}3C55~6mct4&y!Z_GtUB=g;6_%%-;z8s13}}dDilysC;wcyJ)Xe?q)Efju*AH` zhDx$PLcXS{Qz`^ElH{-ismZ89@OKeYugbHa8f|o$0vd+sxGI6!@sbqy1ab!J7Gr(e9X4x7t6aCyf^sq%t7^KS~~7JP_l z75a5*Awh_X2BtQgz>gGA-uJv2x&Cj={SW`RhTS32G%QPGe8|FX0M=Od0RojaV3Uzm z_vLm{rkY|}&R7e3y@pI^y|xq0*Oqq`yTT|)wTg~57L47mJ8l4xcD_64>JQ`3=-w)B z@N33|bu47jH=$IVX{u#3bFKBbOH1OJcmM`AShSUg`63~8GCc2?!M1#WcU^NIy_$z` z+Gp}9t3LO{=19vPSHKKjG`|`RgOyfieYdLlZhfn94y36&A+uz~|BFg!A4TB>UJ;VYSpXjcY04!QFQ#hN&3ei=xv>{NXmo9}U<|qj{dL$qF@V(<4J2Mc{!-n7OAlfbe zS_>f>!~T*BTHW2FnWqQ)d;lXH(LG^kBD$$_rKn!pw!q+f+Rw#QXO}=6Jp-fkT+AAZ zg-mu&@aTPCoN)YxJ-g#?qxs9o0$l`wmYRE2^)rXa%_~pUl@)aiD~4;RfHM0=*bNT~ zf%V25?!gpD(#jjVb6WLqlmNaZvexJ`k zWUGYLzTmq-QGuOJ3tPNEF>nkv7~FxEx~J%-|J^`a*>=!XHEW70w8G@~YmBHrfiz#0 zW5Ef!P~KtG#m>^?>*Qc|G{A=nn6E_J*1g}*FTJ_#O)eoYC%BQ-a1;_lUBkE=p=UH! zOmmghEnARN{2e*cv`$LOYu#W^H-S_cEzlUw<*2y_-3I;Ln-x16@M|;j_xS~3*}WnO z%G4NlSp#H&IVL=5<7An8c}}%8oDz!+^J)k(z&grp*5O}9uU%rzG#77!0i-jiJc4;2 zUEfCQT|{SWOoK3yGdV;pcd-?~`NfGslS8M`Ri&l2ON&l+ZXSoI(4zUMDN$nY72@^L zPG<-%YQ;Q7T-lquKX%l#jp=9L|2~3W?z%5_4~>Vu6p2+@a08#o&wh#LONL_m?>n$J>c z(&C-Q>>LHhmY0Zt=B;Y7>CMS6&m-Z^IWkD-@ip~Shk zo<S4*pWJe*R8>HE$=Lb{Qk$NMd;{XqK=Gb}inz6Ab?vd62Q#!I36~-y<)K zBLshnfehpvz&Lw!(ODW3l%-P5 z3nz$Sw7!1zuMlv!CI{WnB7RnNpH10LJ4QgL1fsqwp7V96<&w+=FO>M{nW6)Yo?8R!~f9|gnP5VS^;!>ar^qW2fQX3ROK zG`ntwRcym<3_4>utV5tAu7^-JYf4f0eeQ<&bRZ58L5~(7Hz`wxf30^U^oPwth}c(S zV1`=jPL8jXNc^!Op*vY`A`6lu=HY#akrvGgb3c`JT1_?CDxb~O9fg!H7Gp@ix-g4; zCoDyT&0hoXXJHj;=#DR!#Vke-s0i5`%Xhwr&Ckp^^xXj%7F1CfFu%tXsvAzsnFK6RGoR}(~kI=z7mglnS`(2ZrO z8zC>o!@GxL5GH@Djt)ZTGZDlo%lF@hmbiY?OIr&N%xl{@>HQC>X77VRmAN;Hq& ziQ?Lz+~v_*zBLWxiii88QTNsl_85ch`AIn^EvN?j{qwX?X_0U|G0!u#2vWd|0kH4mF|BY~`95I6QNS)eiMtRluxwC6n#cvoD zmCRUtZo-j=I+r&PLc@+OMMie)hExCqC_7tX7p&dEPcv8dMR2Zvo42>|KlbxK<>g;L zqPJqy>nTh70T;s)RU7rn`9YM|jS5QZzzX-=Ecb;eLjjO<3lFb0y1SCSzPv%2pm+*6 z*eM=))?AhE1Mz9gp8E!!wqjdvf(+Z^e8o)W4W|2rYeNI%%rhqd-5YeY-DKN)r3`fa^#VXupV%EsP+;z z4YwG>ULW2hG3~G5a0Z%WH@gqo#bqa?4(a~4bu>J17L|Jv$4(4Ry87o zc6S8;lyHXcZl^e&v2wJuJnQ;&b_GF2S|&nCd@pQv4Buv)OzAl2Ken*Yv=2@k1$g7UapBWTP0o;y7zm6V4Js=3md5^B-;b9u?`vxiIBQ1J? zTIqZ`+cR{#f)a*>K_%5Q_w(^l?lv({_rZgG`*a;3G!g;R0iDib!4_QVnxhGruyAb;Cw&gHl3ZyKVVn2{*<#v$52g3LJCv05;kV27S>`Jdc zJ(a;HLii>KJI}#LDp{(9f&G!Ol_0lPW{V=IeUVqx$x9f%WTx+Q;NBj{Fapjxl+Skr;5H`2%8g)@WK64G?N{Em9^ME{9 z=oSsCIn$uaKpLWyMZ9eS2^ytTicLrAEo&P>`>;MJl2*cwN+5x`I#00F&Psp~!@vEVE$?g`(9;^8+Yn(xW@=RYtoAsDWWV}G4%PL6IEFH_|g+C&fq~O^5 z-Tq+sc||_w(f_}Yi~ApO-z|SxOJ}aV31Ju4q+^LublvWed+q==q#KHlcGbR(!n>Dd z9<8IoaJc}2f00o-c5TPMhQTHbV6zP~6e*u18%<6Yzp)(!(;7BeOHyl`&h7!crhy1D zunU*pgIy{+PX0vu_`L;h!u;^w#)#E-Sc$8#45?oVo;p z)uqtBv!xE#ME@I$|HD6~0+Hhq&CA*k{OXD80h3(i z27(daQ#ag5X(7(D95;680;QZw5K1>LOx>M%k;OF>gzWpIB_~}y=b2^n_90{G{~IR* zf&l`LB#TiAIgfY&#qlZVax4tcE85_d1L{5zivPjl{QaY5ESW8o(5${5Lfeu!SQ4^x zNie_x^YF?FJQ7SITo|M$19WYsID?uk+#B+8kTy6h`2Q-q@^~oMHjIeMDIpzFDa$)f zg>oqSB&8Y4pdBqoRElho#u6>3ran|N*}`x>Lw>dzODYu~PG=@HSt1g$waC6_`<`dc zAE!UQe(ulT-rvkT@AKTxbzk>&UpFYKx8Ql1_XY9VjCak(lBg~;(aXLFVMao=(SvBH zb=|r{d6qVd8LXCP@8lqRUJmD`ym*UGsRuJgc}Y9s!pamNTR#-b<~w->skVig`EItM zR_=g45+PagQ1)tyv(3N0V<-P7M}p6iGA>=Oe5UI{{M$cxCxnDR!#Yt_>E}w+tfLVH z6Iw49ixHtZt)m0$iHGpTdx6L;s)VGZ2)v52Y7~vrN7^(AnS*n0vl7hha+OVb|D)kv z>T_Qo5K>A~u~f#Q%k@QKR_>w{>uYZBAa8yjBCZ;^gwsvtxI<3|-wgtbgvaGUoZK3g zZY+R+MYF0A@Hajb1*6enNP&{Gf&hVnxF7Mrk^ad+|~afe7t&W)cw=WaNXyAt0Lh9dT7w~ zWvGUrh5|a6x;T&-cplFndZlkTezTBZZT$n1RtT%g(q0qH@kiqJ)w+g|tswpgQ+}N^ zdIi%@wzH|P4^$+N-HosZVqx!lWV(g}YF}OmdASUs zkRiciyR9RK8PjQ}aV*at@|*^O0-9dcH6+h$m1+=CqW4F5!%AF zDN;%0>h$UeAVq?%bL~2axfhxQzZ8Lsz01SWW86iD^*@zY$ zOx$!VB&qvz(X6LS_Brgys%}G7$f3%^m2noCF~uADLI{o@6V0Om-ca~@6o=eS@99um z^cezbim~j`p~*Gm;7n@qPQy-48o*Gk*ja4C6U1*8ZNh*7t?4>v#4IM0%%{BS5<0CKIM5hMmP`x`Id z@M^1wWOzjmjcUu=?gaL3u0iUQ{A~fFcPZVaK#@{^&6QJit{cYm zo<7THP?(#qCO0%Rsp0Ke|z^VHQovlosnB((9ib`^p-bO z%r47^=$b^rwY*o584XXAuEmoMg66}vVkPLw`^>8e`uP{jlDX9N&XbXh$lX( z@c~^B%?NGqqfIE=X{q+ja*lvIIo1hL$A#@@9lF%~yP{zm#tD6|hHApi1`WbCe4woZ zu{}g$b*bdtSN0CMMjN{avhT>KdB6uIk#dL^V%D!(!B0hDAVec~v| z4xIYgV&Z*w7T{WuiM2s*i2jDTcfOncPm>S@p->oC%O$LSVt@UO+yZT?C-ZBxBubwD2g=IZF#tI z%4L}o#2|HiKU#=7*{4n6d)3e;0$yd86%!`b*ZZNAZND4^ZMM3 zaDOgVqVG0wPwzpwLL+nAM19EZ~ek|0_|8 z0|;j--l)=IiLRQP2A|cGAp5XS!dHUj+xE(l_P)UjxlGbdK!%*2MmzqdUfg8N5y&h; zGx;LqE#1f16!3gEs&IK z;8sDfNmSgh8vpPVB?@#-@ObO|YC`WQx8-Cy;XrS{BmMRA+((7ns*U>tT&-*sSp$vn z+YDB{($y${?D%6i*R><9VIi|sql?Ga1#m-FzUs)Bj;r_zX~I@n&>=#NJ6U0iz{pPt z`K7~mAr`F2p}8HkO4~IaFgA&-zN=;*e+fcqlxW>RLZ`kCwr_T43pcUsA_K58VI`-q z=#FEh>C5#Pkb7f$s0LI`kiv}TTEc!lC%BvzAlU-hFu90=R*&v#rSv`ty$!NVQ^ZeP zW7i@B^k%wl^;=y4zA6#YgS>g5#wnRCxCoA^!TSBJQc1t1K%$edm&sp$^&@7`S#2GN z9T$QZw3bjjDqR1jVMqoHU}~V_Rqk$t?D#{HH-K8&RJ^e`q}y2$O?-*2fPhi*as&}b zVYkfcZyM)9boM$}Xr50edQ6QXL2|v~RLckgago|Vget$;z5d)DK_Z&| zkyZsrX z8J}8^RQ~27X-uF9$t6_oVLn35*5QlAh}<*Ci3uM=(9)q^OZ_s}xNZ>WLlA^IIMpp_ zC#5;*_Vo7YJK2y(7K>Z^cNC{4KHnwi_-r{e{HOdDm_`9h^K%Anb^kTF50WIS=rB=G zMpdlINx|ypLxPzuAAJFPR-Fa{VI1^f<%_-6v4^)(Sh-Wn z-pbFtZ7*s|k)H+ZfzCq0y z<|Q8bE%;@8*2vR()1_pvniaK1>|a{SM45!Hbv^`I_lhT>k|&zo>??T;q5@V~gs?O( zA^$BeblkSP6KtF$93)lHyq%_W6NIAIg|kf$P?Mau5kV_iPj|q~zbU9JV_*X^;gcD+ zK*t+Rac?g@Wy9K-4ndsc)&YdmES1Z4(cb%vN3td7K5=0P2OES9^5lRx7~3rU!d5=> zolVq_4_dRZ=Z4l;&}8~clJ5%_z(@|EchP!OhdC(W8Wo=~j~KhpVoZAgvM3$g){^Q$ z$-L;hIN7>S0??yJZpHnB?rW<_JybbR;xB%ygek&bW#-=UdBMuL<0s0jB*W81S!GH# zpns;J&iTqlCr*`NPiR671azqAi03S`qj#ll{_`ZPI!1(_5^;07$Lb46OnMEvJiRe^ zh~CTq4ur>&*UmD@^)L{NB-V)qh5tv#_l;kYooOvMcbv054j9sb8h){<)nh zFw8^{R#wJ-%(cNB`LpKD=zN8UIWkH-ML65-MkfdMM0Oa!4bQnTCZFR_do`nku^MCn za|++5-O5EnN-sd=ygjYyOKuPI_V%Tw*^M?5Yc+wRwD+RMl?HR-bL~n|mXjVx;&c#2 z({CrdkfqjYSX<_6ym1`+EJQe4L9*p0T($7!-Emgc9LwDZfh;RJCK5Fj=s5XzcDj~iV`UsaapL1D$Xvt}n=z5~%dE%@Pc`(7ro z_GX^hv}4rFzjt=}eAwn62mOC8^(im>u<$NkwH=u#{FE@<#M?jc?1|^>2;`8=Mx%&c zzC!h|Z?V>S4q>mQ3+f;0l1F**F>g|6_3t3N5~(Iczg=tPCEf(l#<QfD1n!qKjQJf-3-k8Gh({0;aq{fKKpqh_YrH=B3@I!wt&=;3Uw*9((8#tJO#8p(%K zAk;j$b**PGL=Z&VTjH5opr4Lk=zN~))$Y50NT_-QFYvWkD zRG&3J_g+|8UNw*&O?p1{?Z(Erzg3t>_?jD{)H{q}wKnE;@y?LDK8%!8p) z%>YNC{=?xd6Ri#L##BG9hNd3}Vv{Tqu4xxQW{kQH6VtoGHgTjOYoR4U4fE~L;20(15cK{ew#HUo{O6a_kV}V_o!l zfCWa)IV$s54e{kUgdjkPc8t`yVD`tc`MYJ=FTRQF{+?pyO|&uZ&!e(=BY6%yO;x~0 yhG$ElN2TLpECM&>y!oiN^FW^>*;SUJ-NA&+3~4hGB8+V;DZ)|Fp3|x_nlELkEMsIT z#px7A)>0`(M24*Y=i9ya_xt_tz31M~xv$rKy*lObJm2TDy+7-7a>q8u1>#EL0s;aH zHgB@qB_JS{C?Fv0M-WASGtYY`5&g%4gBv&Q*t~J0#*W~?eFtfN0s`yO(p>i(P;r&D zeiE`@YiXkkZB5eAJ2nfn7o2fhbM4{d*v?MV!`Yin-)er|%m3PV{#oO?)lX)wZMWYM zWz>I3_Gx8FoW_bVsdnp!23g|TZ{KLFuzom^u;X*;?STsxt1ldUT+rqBHEQ(A&{g`^ zNBf6FK0mrg%FdJ(BwoC)CvW^dBst@RmCmn;$-l{qUUT26syEk&^ zxtP_W*UQ;?I+I{bKK6So#I>%v}@ZLWlx>%*BJ^NCojE(589bFe$w`GRx zyqN9t?^Wd7%r8n=64RGxI;#6#??ltuzUMAg+`M~dYA#oWJuNZu7#Xn;W}kfQdGT9a z@Kk`y)seoB{U#S1=n;0)lVuT`_|d^RW`kd%K9445>&>6Ob?$6}+|z^;vDX~d^ZVY< z7IZjC&r>|4^l@{n{^=VFJq>#I1l<1I$f?(2dTkvtlgq{J5Qx; zf2;SXf8fW?nnwAkoTwzzJVtEAf(K$EE6y7xmy2&D&6C-?!dA4K$USg3VWFt8Y`&~w z3i;YTdF4K~<%s#i3oolGIA>?;>&Xc}N*f=p+M8@0Pb^fLPG=Hd`+dtx^73756QjFU z$Yz4$~ z_irV^bsjIC6mF^J(MTc3T$KVudx^uZF4UZ?Q5_BX_Q74sAtw9Tg+A8zJ(jxz^%puY z&xuSP`r)RyEzOSkJ>h%uL*4S_(JN+Z%U?!6kA4~57+tkTDAS_hN^iwG{UhojfeZYR}vWVs~4cf(FDBRhX!ikM??)k<}tullFl zDX$8BH^Gxr1w!Aq&bqq(^5w|cm8x!mTh~>rUwmrm#=WP`n*K6g>OOi+Gi&?DT?eII zEL;}fEqJqDD*3_fu-^iNrlwV!?;bAP)&GZYSG3UX*XD-@7QB=@=KRMQA0?LQs_cvX zpHJLTI9|Uc{eVmI+W-$`k)f{d8Q(7%KapDOsqc7sN|Ie+^Nly9|33YpK(AK6P)P zkDq>cz!CJ*0s@xd=IDQS9Q_&pYXePdZx z=zsqAw{!Z1AN=2)4u|~xv(N_`;QwM^q;F{O@0J}sxbIJv;s5ftWk0{`Z`)bozs!8c z!Eis?Zo7j4euqQQ(X5RO%}gzS?(;AI^uH(lKTApfyVP{uy8pZK|NP7US&1LTe0%Ug zKXgm@U054g8vM)O{r%@H4e*QlKNt5ms{H(0L>6mtON0L*v9MP&!Hn!XSSF$E-X8}g#GPHW~+W`r;bl+px z%$g~GoA)mN{ignQ^x<*&b@MsfDqCMug{aHr76b2!x$4M*#4Hsq*Q8Lc+{%uVK2z-$ zts5%yU#Ro<>*^U3-lsvk$*z6$lv8`;vT{=dKXUKY^B@8X3i*q_uqC~5FZ8CX1aP}U z2@*;NM!mNAO z{ZafMT>9TO?!b5aOd!6j;wwCTq*lI%wC5Y}I|YSwB=%}BiMu%zPnFO=EE4j)%HRH1 zY5n`bG(?Q0-RO*>V#?V2Fs|0F9PGO>>{H{|g+hvi0So)=a!t?aJilrm6PE6jv^Y>~ z1sEkI<>GoKHwQsxrFdDJ2k5>48S zOz+ek30nQE?nhbo3Fr-fU3{K_?cCTz573r0s%Q(#_K&wkChnGf4eV1*Py} z;jXRpF&Zga)T%0mld~%gX7I`$<1+L;RFWZbN`sp>H#$5GTR6RxLEcT<9GhlKx}3qP zi+C~`o@@jqZin8ls+{Y;BF!psV>Q==Ks;9C-|=c+7w}_kdtw-h1m(dhr>z-5thygF zetA&(2&*CU!}Mx%9?AQ}iCjk;xU{LFdnNDNzzgu+`e<(*Di*M`^13!@TkZQj+LL>r zqBN0$uA9#jH?=0tR2?$r6()Tst%gd!aElBQC%a0`AI%}uBF^Jw3yT}c&e||~Nl(}! zDGqAtQi@mAq{v83?b+xvYC&6Krg!Q;>yH1C7%ZK=Qo1;c>E4u>CGN<=T9(tYr`P4U zL)Y8(STkHSnAxwC;{uWokkaD(d@+>{_aZV_C{x+5ZMmNp6p!!t`)aR>7eZj3TaFY; z=4i?drlmuLTHkoqz&S91W-OtHj#`RCp4hZKTD|i!dNV4Xnm{?Nl#IxIZkMJ^3%PtZ_q;g}D#fwmk*P?X zcJEvn{7^ivMr|rlk5qmd$Rf5la4~f&-f}!GtNgI~?$TgT`xAp>n3c5vEcF(vfqquB}9 zPv9+c@h#=FzZcc*)QL0@G)?e1M*La=`(6#(9^IdMWmO%~v2uUj4ZgLF>HS7IE#Ngv zmy#)>oU3mNTfM0nstDC>w?1$Zig7CTptU}E^+9ip`8?UM^tdn5{J~gln@upzVi*vR zW}?X{K4Wd1%v(S=)NKtJPGTLC0Bfgn$eKC4@NaLpGhLY#M*Y^^-mb2vm7P`AdmOp{A8m^-mYp&#Tcn)JXVJcEA0`*AJduqdl78Rt$xX-6?)kZ)Y& z8V9GAaPbS`vUcM@nw**r-x0f_6{|$@0OU?-@a8=*D2PpjETM;;;htG016owKS zmU63AZv$6qV5e~#H$s*XZFg4DO)n|2@i1iGs(x-cU&kuh1BiKsM}%5!&zH3}%-s-x zF&4W?7V)HaJmr<5u2NjhvdjR58|97d?M+deT!E&&NA4$U@>IBgtg`5b&-^&OK-ODbif;5%0En zy8O(`4~kZ~FMuBTvhX$>1~*HRI)dxtzlenyuLcS+`!s^H?Q{WM4p~cp=-jr1x%E?- z_b51smq$QByyNW1MZ9(C;iQ-GX=h2bHEt2Yp|HSk@&-b{3z0 ze$S!b|MKXDK-sYK%8P(-o*gOFWRaNfo|^)cUE7|;jAQetQ|}VCBVc`B3A~Xw0-HoJ zEasE|*IRxvJM)5cLzVbg9+)nV5#(HO+PQ0>(D3U~u>YHc2c>p-*|D!Xb3e(K~F@`@~h)1JGfoG)X2onnf)VEKypra^(-RzugCaRIA96FXp+m+_-1()z1?enk^2!obLM$PftC1QR4exz844O+vwo^u!L0dDNz%(?ayGK3Tx?4&X8I>*Ut_CB7dYKko7c$3BrY<6GDG zp2O;XOywL+0&XW_P->_%@ddIH3Zzp+IoFFTwtg^LoNeKF-~9<(QEA{_=5$Kyy1ow& zces~>xgZirUW{I6+&A{z9UQ-xWQ1rimsV*`o1_PUp(KH6fJElAWU;CT zL-qK8O%gOqVcVlOk4lxfh8>V1dO8%ld!8RHfMe!7JjchC(XEvcQeKbs7B#EcS^=3s z<9Eb=*&5m+rtuWtK}(yaTB}Cr(jzQ9deG>6s|a-0;Y_q^mMqu%alHK*%xV$UN`lZGUv5N?#F!3V2|IlvdC1h*t+4EhWPpnHR#aB&DcXDsCnlgji!91 zihp|U`C)3n;%7+>?%;fqB=R7eWl3TQ_J+K&(*3rysCqC4Ygv50jddsB>*C#!32B>$ zFQO#Z{D7~-g6urKz2qDQg;L8!jF5mYG^9X zZ|)JG3g>6cziH^?c@jEw`*Ewv=2cL8+kq4Kvq;#9*fa&wp8PA-{hn`DDH6rKfhkS35OLGojpP#%41(LfwTrh)Z z?pEM&HBfd#GI7j-LJt#7)oky|j7-cQo$n$Bysj=BofO-AxVD}|UXjDRarskE`Orf! zh1a4$9CzZ|3%b>Jk%of{YnNXJMw4tQf+(V_n|kOOb|Usom;qN#{6lwGmabM*5!E;WQhOl2@vjP7NkF4a~ zP(nH_(MpuU)DIgi zg}Lnlj2hvqDBdYRoAYSEYScEH0eK5WC~_HC>&@Xezy%X+D5SvU8W`u~jfpkfh0>Iu zyK-13Pie}|TgxXR6}*b6b0j_1{ut(*j130tt!ast%mSke$wbw7iqR=)QfhpFlwv`3 z+BDRFP!#d7jmNIUO0{{E$t0^=h0v(=CESgvn|5D0tRhGcu6`-?t`EpGwmpM`N`!{* z=X%b?YCvhR8PS5|rv41eUbuLHv+O*e?$y;n1!2(_XP*;&8m!N9fY&mdg73ETM7{e5 z4k{^0kBh#jK(}{n0xC{MJAOB(XP?)*FRdyLX!L*77tS5r{+j^s(9(C1RJm1?0|P6i z7?{kA(*AwGYtq2( z%MWIKx9G|*0CJZt%6A|X#BE(NCHD?%QKnf0sy^b*TLHZ+;fsh)qMIb*i`tf`o9bHt zgOzdY>q6&j&xcV`XK$SaW*ivXQAH%PL^Sn2<;H4~ZUk5(HAy2&ys=zM)-;~l8&z8K zE07U{iHpOP2&qb*$FLUDExB0D?4jq-7~^7wvj)?ieYN8tICYmzTqnZe7p~oFrRG%Z z_hH_Nl|WG;%A$onIrVz!A`-5PfQtxGy2AtEk3_5V8JJbD4-~^`V5RIw8%eUt?GD8* z1~UcZ^WmiAAYkl+y$iR{k61x(7VRG%P!Y3e%8pd30ftR`lJGJeEuPi@B;!jvjg5Cv$K;-2Ho+3l9I1k>g)SMsI zzo>Xy)hZzG3NZR`ixW1VJ}a09)_k||yoq^&)jp0|pTBj=J)r&>ev1bqN=}>_ZY9LE znT!<81%*e#OjArYZeC>z<@nX_Pr3l$vDaWvUIwt4Q7njG3?Y>E4vSt(r{_YOXqhQR{BJ=*f(wG`1>G zi@^8#*qhg6;|q-h3eR@oP$K4Fsv#FyNtuF~GjZJRCwAT2p*c|U--_K14Y5YDduJCI zjRW|l%8s?SE)qRwgJhw|zZK6GQ+K>Z_|)?@yOvX01>V?A7R3bkSLaglwc0U*y<-`p zWfY(o2@0*n)A6C_>b-ZgTaT2U{E(J4c@Rq5i5+<6#M8dG$#O_!nFjybom8NjE!~VF zD2lWF5v+B%quTw;jU2G#8{jHyBl&`4>UMQsDtW@R1Za5U*a3(urtZYMIPh*L?*V66 z+VRvBO^#?{FUuR>81$Yhr2$RDlQ#4y5eCp#7QJ&@o9=bp!ybIrCrEHi%@fi>e$*>m zrN^f=AFF&V0;NppdZbw2*J%wjk9zx%*G`*EF9jlm*?B^JsHh~>W5bqpJRx6b)~`V< z3bDf2)sj4TNUk#9t;HiXt z)#A6cJ^@G2y0uY$RRvKK&7jUc^1D~!;IdK zjDUOl^<%(WlP2M0Qg+RH(aJykRp$(~_wau3QrjN)mLo4Bvc7pQqULVl9z3063?#Dv z!(Lcll~cS()M8)tbyw1r9HRVPZ$;>L|B7QyZ^Z&^#z^e8D|d}C(8jXOaf@Zf3g!jv zjYicoZ=>`-xk4i&(j-Tu*tCXR!%kS1`2>5c^I8p#z-1xV*VOcQ8Bcn*5OwTrDfL!= zGq|g8C5mVlEK=p9x3LD-C?7Ke;=efdA;g&tX-lLIVuS?ySgfqrW2_&HuTiZJiD^gV z{W`zlQe#5X(7NtGaP>*|5_IGf5%$Y5-?i9G;fSjCj|EV!n$Qud9NDN83-5-CxsGZY zEllUNJ72=|(kJbvPiEZT2i$VH57#+CdG(`OhjRm#HnqM0ik~ei-$rqX!<27f zmTq@Q;-fs9j*S!(LfEE+W?e3Iw$pyn3V6NJ6JAJe+60(V=|5P# z6Qiu7^MUq?(1G)j%;eh!4P)xy`Jo4;R~0TvI6$u%i$h=Cr74qr7c=e}zkGE-W$hLB zmr&aFc;m=8lxC&i*5o_br8EQe;t5f>fv&aA{Bf<#n0a{7!QA?@MnJvDPQj7EJ>@Et zI$H7`8a-8Cf?~FQZCZ*g^4F<0^AdZtF>YGi1z13@f5vDlYJ$v_rS6EpUK-BLwJeji@2g^rTnV#QZQ&- zi<*yh2Nb@rPK)?I!U}#prU1ra@%XpDh^|@JN0&H$A6YWDC-F6n?_F)Q+rG)+ASs}t(>j4f-r3}kKL3KwMg>1$^3 zCL_he$sMg!?%~Ns@fjkJO9@eUEWzY^^RWb88}>Nq!?}tYFl;&U1kvjHX|8tRe$FAJ z#knyaPs)8n!1~06L4M@%2iZixwDIExiR2;@smp!Hytek!UucrrP6;C@PuX2PbkdO9 z67Ta!Uou-(6v(STjX~s2`ZM~>*WOpkJQYFZJPE5Ls4YNA<3)tjXw4jlipIN!M}eDa zVCUJ|(xx2Bpvp?DT;yqOQjMA|H1ztj9*y{lb@4|^iSbDkvGUKj3oq~2M_BJ?#rCw^ z8HLu6vaEBzkV1xmo;1TAmCClfO~_IqJ&PS9kaTuS(_YzJDFn*q5h4<@(a1|hL~4l6 zv;BXeL|0oF#i|bwOfSY4ZKL`Y+m)vPp`HNa7@iL;U=iZd1~oINhMCy0@48TQvIMCT zdjX!(w7J7m;yn*=dHWGOI_>@FHmA^^)a46~BsPd4`zT!Hpg=n{ZbZ6&SOkcL;@AlY zepz|l`GRqc3d$+Zc67W<9)urZ=gnW z{__v~>7lc67ZA1nm`pZ@Q0itWnpEf6L0M>W8gDo3?BrJ2T+)*+qxJj38as2spP2 zwQ~HdTYes)o324(zHE&!ZA}BRu5HgYM&`^tPy3cT?%NqPr0)ZbHfi0!E(>-J-Z1#h z7v)quEt=BD6~SL>ju271lLe+U^Z21i``bx#lRRj{i||zxuV;Fv?!a?pXI^v8urM%b zb*UI5hurf0nj{6jH1I@h*tSn3i-s&>O{u_SwZ+KD&0kuiiG$yL+-j(f3s&* z6DOcOh6G)WzlF2*W1}*8Rsz|2PlGYrA5MS9cmMn?3_OZaVA!Z9-ohbk{*|#gs0)gw zBZif$SJKP17Pin6$C^iJosQu8ByVS=XTEW@`kPU;TdMEV>i6m4U*ua;9Q*#ituv1%@b=JGRNc+ zE`K*!4%V%^P~xg#P}6@AQ=9YY?dhi9RzR1ozGbUxT@gg zOg+0juRVPD!@Bpc&r9Gk9mfN*lTg^?28ccOu1#KwN zU2bTRnD&RUtZ8J@SPZqV_%CH0>=1q1oriTUF{}a>WV_2p2>Sue5Nc{f3DJUp55#L| zI@)cW^ReI|G)6c-8VMJ-Zr+~c=WDpKKz+2;bp_0gF~Hqb`%eRS-yOVL ziI%#s)xt3+a5ABJtFC*?9HcOscuRIUSh@dfJ$T0=B%}qU9xt+{O4ua)0X0Xz;Trm= zh{ZiiPm9``^l>HduI0EO8K(Y*65n|uO;$q&P@VubvPJ_ zE0Jzz9noe!B9@{J)J?j0TdJ=b&ESk)df(J0{RstVY)b%-<)tmD`}%8WZoQ05ySizb z%D^!2w6+v&wA`=XKatbFVax2DXwKVqr(1d8j+u0v5dt(bEbP(`>h5!3#*A26#9V-e zJ_sE+O=U(euE$Ci3H!HiY#EMGYSNt<_2z$ABMHbX^U>71xRVegBt=Z7cPY0C&N zDTp|mLpG_6?>iI6jirAPC{All);=J| zUy=bWlnCF1R?3W;A71b%Yk}7GSfzw3>n;OT8N~$AMOEU`PE29!0Qa(`z6lT~;+fY* z)FC6(V!q-)$%#dpSsa7oM*BW_}Cq zEu`Z}WfyrWT-6;u3#tTXxm{mF{p)A+A`=EneguBon*vO{v!#$zgioH6Hr+t2`zE#e zTj@W8^FJ}d6WK^}HS{}bGPj*bx&>}ZA>wV*c9s32ncuQw0~+dI|KhzG>?Zsy5=eRL zG?|xF%~z66{o(Q&EBGDUAC$dlBCGk-8+WtfbV|tkjwQUP?3}gW%^gLysd6;?$1G4e ziXttMlWtOR(ZYKzSgS0@(-@EU?A@HSM~mD#x?DVTJ5V^KCrG#k?G`iMKphM;@N}%* zOdp!sl%ARnq!o%;qPT{GJQgkKbS?RvkDm^>G2lLKpCsB;nDnn$v@$yf1yGL-X(CevbakV^)|OVHDUZAzS-ix^u5Ny#45~t z?qp-9 zhDMwo`0=sO1_P^UdT;x z>vL}L7p>BqlzYb-J>AfE1sqY)6zY5EzB$2OnAb6nR(aWA*CS)7rt86{d4863OQ85+ zj)uC+w#{(1<%EFi*HZE68XStrJQOe(3~E{4|L&KG=ub!6piRnzs7FY@r_=2Z%ZTf+ z%9E?Vx|Y-5RlEUf+o+RBNbFy;Mp6bfJ?B{YdpRD)Tc!t`VYu@ zH?DsrN&8fdCNU)s9EV;PDrsu46?NvVI3aQ%u?A%3DTcO6rTm2bJz+8N4Zs+!f31sJ>x{$Hfnco z<}aJ$KsU?C!ACy!{s{cSYJW=l0`_Sn@C;|*0^&C`-ID!kB~3;C9(-un5uBDm*KSs# zCVSS6snZ2-z^J`Nru0_1gMx0lZ`rm-@b0&9+==HJ6i(Yq(^$RX180J&)S-6d=O8_z zfKKQ>QQFW>EXa$mC<`v_wMPu$ORpy!pILa(_|>OcIe5UV5SQ}$$7Xwls}70MM5{g> z_~^J(8F=cLVpNI}c8lwuVHkwvrG@~lK63?%RR59|lVwU>Ekv}c=C_#fN`HsGP$HbY zcmmr<$}2v+G-AbcWK8K^Fh6C8As_jc6}L+%VQd?<{hBZ7joDPPm0OWASgmdCQ6r>k zYmXK+ces~{#dW^f0u2tWN5LU`7nIRkmEbS@Vp*odY%nxj$i@jQBa~Ogx+>c6t(Yw2 z^PVcdF&C(tNVvY(xz(<`R>#qAgD~x6x04KT>BJ6Pi|@zu9w%hEi?aDDsued&q%B@3 zfDz8<&(!P5Quj+8PKL~+N;~$|xof{b{S_Or4k0SbdidUUZeHjopsup*F=Kcla6_)7 zTX_yj-?rg~*knNa%X>zJ3=jsNE6oC4kp`B+)|2LMKPY1w8Q-=lI4fr}wB~%`0Sp|o?t4>5lQ%{a!sUjpM8RKzRr7Zt&!&I6uO1_86E2+XfcRw&+ki^6k77{t&+zB&Z$vb)2Xsh z%tjGm@TA?^<6g>g=NGB&@>ORBgS+G_+>jV}9-MY9Nz)zAsCVyPU+AVK#4oZ*c>;7J zd%E#XxV7;wswN)K6#9KQe+-Of@Gw#sPpHM1N*|PMnM}(6rO*S+&RIxDYtEp@VLVI6 z8Yx-|{Qh3BETC=()Ojn{tdHwG^q^Ge0{@{rS>{5Zs+JDNohz$dl#fL%r~` zbLlV|(>TVbcn->-w=MpVx=jRrav7fA;3^b;Vtb>`pj_`4mE*TQK^e4X0Ebs4=`UK1 z#zR$FA97n;`@kWy;mr)P@1D+Og_n7^wsME8A9ZT_1ih18JfNcr=9PmC7c@e73r~6X zT;#A$Q(c)B(3TUJcs5IEZdIUXMA5SrbzYbBmJPHT^+=O6p@4k%D@ zY$rT0WXK&FDXzjmPbtMen&m)>CLHNxum!x!=cYk>dmS`8B+VY;37`*MyMR_XOJVz zg($t}<)OoVZF?*T=z6&-!4^De#cF;@`O9zTL%_jwp5nS{Ze%AST zV)fCn5pt;fGuq<{$|*GRZ#I}%3Aqu z^!S64{LfM!KLN4U1YRrY^Nx6pQKX9RK4?fR9S^N8ais$CzH3Nf#;}P=D3L3%g zX!fFTq$RhI?5f_nW$F=&e`!tuLNx)#CAO7x%Pxu^HBc^W>Vz1SEl4|&qFIQVg%Zn| z6WH*_&@(_1Y5YC-jUu8M?kv0S11EEyS^+O=cnEi(M^t|fU6qlXIz}FZKed@9RANi& zh!WlgGDYzlJlM>?--b8qR9o>u9*6*wv&#|Z#elELL)@{WyYPJ--VP}>oQPxKIc0@VnHmBIY^#(N0v9GSMCNO zp(aO-npFi2HDse|0dAf?C4Vh92E9yk=;I$vch&*9d76N%LV3SXacda$#&+&-cu}wy z+#2QL5nJ&Sv*a7|NhoG>eZnX@!Zp$i zn<|6LtsRnEAOHGI2{lG34JGEJn_l2TJT@IK1#q)7!16y-&YqMcnJMlxwBmI2t_IH8 zVT7WqD$aQ0zBTEJgh~}Q%3KYkkTmIMPmz>cm!<;$i94y!?Vg(+kf}6=@8eb>w%*D+ z_m+%Ud%xT1+=I)Zi?Ped2haLLb9QX|K`Au;W6(scrR!Xt*LvtLII;-MQ0vb+E$Yv} zLRi@ATzL96SZLgql)Y{;aV+k96zTb2sA{EaFoi2Mr{sb#88M6fRgL>~tj|LI@8QKF zU-5TRp43!0nCtrb*km@W28O>Vd(b7?7w#jP|ZCoh-)`#+7JC|wmX&Q{E4&g;O zw+fY}?%l=w1-8^-5?RnRx$ctT!y3H7fY|nNqA2}>gy;1rdtihxj*VB<_-kR0HLp|3 zwMeF-^hZaca=@O2W5E#Ng;*X4FTojGBA5!6)=Cv)O*#=Y`wiGiQci-}xhh;8AAcq46 z+(g;Z`JBV{hl_%^m#ukvX3OE-LR363U=YD-Sxlq*zhVt!XPO_kn!fbN3g}mPuUos= z_8+qV@b}eHYsp#)Vd-(@q=}Kdtzh8cj=$r6v%;yx-{M30!s=J1JRScK@Hqbo33PL* z-`&NM2Fq1R5(za^T=NlwisoHFu9lt%#2lQqKf2ZhdE2ZMb5kq>ZcGV6Xa4A&d13DP`X{n0ji9Jj z1H&88(L)0FF0e+3sQ9-bPH*bTN~lb&MZ4By5t7EDH5(|kRr^>N>0<^k=72wxZcD1I zjLgNd7rb7M!gX7r;ks~bqwm4LcQQFuVdek~e2`BH<+lQMPae#dwN)p9wwZWWh)#&Vg=+xp^H?smVC z4j`-};V<5re0S|CzB+6Ek<${pP!7m~J#}bW22+&1kcugMjh?sp9i~1vCk&)#H~y}2 zXkNYiGnTwdcTd4t@TcNY#c#aK*;TBr70g2qw^2hsgX=_yM5NTciIJz0YvKofG)P?l zN9qjl7VTH!OqGmwyTc!O;V~7HHO-Gzfx3=Rrh`sBr2A-m-jk-X(Vee>#L*Z|LQ-x~ zTjo=imA}MsKh|ra%BdJ`4blOsr|BdluVH(;g)l zUtfs-z3Ia&@a85S;I7ia)Yz8+T8`4XpJsrnF^>Hf53iiHh^Is^epZxY8w%V|V~0qL zs_G$W=EHf)48to`>E_S^B$DUPF%9-={hj^GPFG5;hL_^p!(BRY|7FaF^U(`0Z-c%| zc#g@u0mp-uAg0tFFB;>u5)zAE2f@LS8y=%L5p7Rk_HmF#4k{k;y#p3PlqYKk2uP-O1GK%(ciyXPR zm7N=atEDH5aggGvW}YC%h;9q)aRBnefA`A3t+x$R#+JA)~hweAJ{r9Thcxf*yIX@NbWe{h>hJh-^HMJiVb_`zNxF(2)u;>ThrdcxU% zVNQQ2qiqR|Cug>ZS~QZqXkd3ibB=v9^sZjvcuIxafs&G!#KpWf*wyi+MYLf zg;Sg_n2ik!OIfJ zzJ@+NzBOY}FD!ueJC1z@QHl72byZL~la;^ig?9e$GP3kS+BmqxE{|<8n03vtfTfca z0z58L4-Im#_s3qTFKQz8M7TG|vVh!${Z;$;x{OBir1g~!rpEmD`NoBet%r1FCwH4m= zbWx~niEeQUQw%F0@7;X7*_%SQxxc#-Ib5ns&b}Sc2Hco3RG`;Vd?Ko$f)Y=$nVp*toETS;iFVbTmSbS~L#n&$X4X6G zU|vZ%8A_ZFWN2O7y=ZkUI(nYK^;dlW{Mw&kVASd~#9Cpvfucod@uA+}jkcW+1tZe^ zxJ6t@Fy@92r71T|d8ao6hrR zW(r}}Pwt0;zq$#Rr^?twPVI-T$m4rfyJ0E5$||%=FHp4N)dlIZ~=4~uJH~C6pt;W26cVnFIu1z+h)eADLD_uO?7Chzqm0W zOgyIMnT?f#shc_2I;0>aK$Df1!7hkhissaYIsyeknuO0?^KGcNDVcXEsK7*hvnx<2 zCNALdkoDM>qy?u!Dlwx0u&NtCO&&CQ+r&V&wC9l6FW`DCA#m)l~X#69u7=( zzv}68z?3ul4?K(X+%izw%;Wf=$%>ZORA-x0?}6xQ_zW(;N^t>xhBqklFBbF|`oX^z zAB~X6c2Hu5N~Dg**1j=!g}1>TMtA&V&!cU7eRz>oW>5!~sWF^vOX4m5K~FMo28U2$ z@k$Z9%0r7W1+Uq!F5?#(94~|UPaYq}IdsW$WBTu{VPYvYQTop_6#uP_{x?{Q{Q!q^ zCt6R$6`l6EUEW_N$$e0H_6ZcyNukvPZLD)ID;sxXqiyOH-F{H+pU^})YGAF(9!{;% z?TlW7dkq0Vmay$Hzz3@DBKI~|?zP#rDQQMK|07g%JW%*3t*o_Weu2>kxADyBxA7fd zk8Jh|ZUY5~v2^u^`>0yW-1JY0nEuM#25m;g@E5MGV;iUQTFi_oy`>)C;Df&LehKZd zBKwhnv$KbmxBkYRE(N=FOig5Z%WqZ`hmSo+J#9+!m398=BlEi34t>`dCHrE2n{-<` z)@IWlfFBR)*^OU$1zAhfG<|1RkR|{4 z!eC;v!#U&#GhMs)HHHkPfU{O4XNoB25FJ}Y(5aIVX!mTw8nQF{7A$RzRA~lER!<-9 zu=se(h$??!wJ7US?h9fv@~QsN{+ho}Esx(P&fAeAz!j|i6&NvW__;5c9-%zLUigxO zUV7ro`qmUS-82N=-1H_q{``8VPL^aASYE}KJZZ8-wfbTL^!AweV+q=Qaywc1>iaJU zQC@SPuk8)s-bdJci#IDp!`RTqF!oy9_?rlXby$r=4k}xoTLi4t8ScgFIIcz+d_jYE zYPwrYGil3zSl|DY2!7jA7as!gN|aePc`e)YI(cl}w*C~6RqjGiV{sWzV+oOa<(&CJ zr#EA-=fktI9=O`(x*wgNT4~<(_ITza#)ndFb~teU9sbxT8m9C3{wBr@_1S>bMetBx z17iI{_k#pCi-fePj0IZ0ZXwvU_dtXEGdShud};@Gi9+$%2~uM9wu1$sIgWl%-CclY zm2n9%Y3Y=)sHIi4A2M!@^Z?hQLZjA#vV3iJSHDs1nAalSfxW;P&J0(4=0ca|l&d$I zN!3E;r+AI!xUx7+E5yyztJ$y=+a<77iun*+_bhd^=6y7WS5rPj^_!;VNzLh$LAwwvH+I=LQ0Un?2uY(#*|);F zUH4fNYIm_6(7+JG4=v4>^Da3qE9|TUHNi|>1Uu>(%{=!A<=*n-DwOtBlJ)#?_YJU( zk)e(^AWZT~4pTCP+Ihqu^X7cR_x{P9{u9=&$U#?J#B2R1rn#gTH583<^h`_*;7=|3 z;vqjXmi#r09&1Q}a`Adj`C;U`gW1FG3 zJJT*VEm>l!2knx;ijhC1DN%fde_Z7Y_WHxy?KjMUEHO<%Ah*2pA|vf&zV~F6gW44! zF}r{E+N;tsBuR7rGgZjHFj96@txi`0r!n!?-J;)6pHZIsvHE1y{%9*Yi2{UBf0$j&My!lmuQc){OvHmoeEaCUbt3rlhG5 zRf}NS7?KZ1$;*%QOB0dzBSf#<^$i;j@PY=8LU8U4@vhs!y;{z3Vgyr~W}Lo4VcT{* z+ce_sS=Jd(om&3*c=Y>i*+Abdjvb2^ibS3}_BgKji_MVsj~rru15|2ze38`BRd z4X!}C=;D@Ak3;EoJ)YdDW$@8CZI3N907MbP-RnbLZ6?89Vc@8^y~tq(*0z-9Q2kxl z^Lwic^sR@5c!;*l^g8uD<@HmzUx)gUUM;4TUH>2>a;cot5-pttO)KR}ptV92o0-al zJ{ZvHvA~yn)9}4f&)<s7R<8UII|52zTKV@bv3NDMkmDk6HCO(sXU8|Ac7%#jN}fs*u3LoG99F zRp@@POF~Q&@sKyHR4d!tSs>zy>Jlh-S<+Xsem;)k(LjCKb`oQ zfqD2Xt-M*8JzFIUO=>p@f3oEc-v6u^_EkCTNfkKAqN_Q4&X$xHoSyjdf&JBu(AO)& z={PXvnv9Hc&sk}A&&DnQCQ7qq(dSt$qC}|N+P7khFzs3QHt0;d^TLrD%;ObKLcG&r zd29C@(k5?$+uL=ue@C$5p0f@%ctg)C`&^_z4bI*Wh3>_W{T4#I7#RTzU>?<*pa8ngyk z?#(6Qra|X{3`wCf)ChSd**m!2>D{5HXR7WuS8hq)6KD*x|8WA0K;rp%)Vg!y_3r9X zA+8lrM@@Lv7cbV=d16^f)k?KxzJU!D ziadm`$|x`}t*N4OqeC~cKNDLbkEglp83F6b2C-A9vCmD2sz=E7bnv!_|JXbo2Y%Uv zseyF6%v8#q*02xd{iSZDV{u$@kvwoelQ(Xx2O6}9{K>~qmjpdIjo^XiWY(pP#X&FL zW)9@Z=7VR%l;Yf2dDJQP%JG?z6KPle^?}PjW6z!-23g(B~4ytC)IbtZbZAy76kujO7ZFO=k={B!t}ru+kxdl zjAkST%t0B&DLcL`iI^i;a2YxbD-Olqw4}rC1soOiUs+(3ap_ar7hiB4_V8~=*K9Rn z8MpDvkBZZqm3hr?6Snu{K|Sl=#1UK7mhlzNYQ3jSy;`8lG6G@^yf7MJt89g5ESj8K zt)g(lExy8EdZeez85f67MOh`1jG~aTzUTC+aF0LZ;(x*~(`%4HOXbjqSPI{tnJikS z!G9gIcMMkGF|3A0IvbUo9(}IDRr7tsx)}u2vFr?K1yzod5_2E>wg$=WX-v+gq?r@R zyOshCTGvjBFh`Ss9$^W7`aUd$u~o6)^`u371oXXb<|?GL=xgSswgz>1R$_%m(vR0H z2(i?41HZ)C6M^G^1)S&YYK|-&x87lJHCHntwyrpOuult*SB=ufl6OM8lDc+N&@(X8 z&fBqLvqL>?FxH%ShL9EWc$L#C8f{VAd#dm38Fkk|pdFo<^F&)VJ6iog9(+@L>eMlC zQyxlcsu6U?(gn^hr25ZAfq}O)njWHjuKj@U)BEl(U|*<#*CWt1cwFN`Id1VOuUn*0 zAexI~_aT*$y&m(lz-F`zqG$I*<9`B-T%@RU6DSe0^%G=*t^Afp5zTEijx0V8xO4&7BnVMk>UoG;{q^LgqC!O=B)M>z#=nWD?*>gVd^0F zBXiRHn5fQZwoJSJ%c`fwkU$^1!mcGxWoo5lb^*pXdPv)p_*c4|&7_Gn zb_&eB75sH-`i-sNXkaTod_q1)PLj^>fhH|e@!4gs(|^Sq^F4WMT^0gunz#512G-z~ zd0|1rXhS6hjQ+Ewar8eHx-fQ7-KhOL!Sj9YE@9xFv%1I*qGCfc$(HMsZ&Xi**$clz zK{#^>TH9yHU6G$um)Mi#&9%?0ecK-CB4`N;&{<6GdI)*Mj8QBByc+6_XiyE^}` zvTu)vI{*G>LI_E@bdg&~MoLj4q@;VRT!zV9L~X81n_M!kmCPa)s!h6Yn_=E6V}%SQ zYKpasnM~xP(3)|N+AwOPFK|6u-KZNvsAS73>|{k-X~2@#y=%Y@LtlF9X)I&%#WIpf=#TQ` z`=QX>A%?phMOb^7$VaWD=N`F85}bMVwX|io-HjFh%mVnwGx6k0(1^Q9-AE-?Wkp65 z;UqA3iLt}MvyNffkU`q2Y4SfG_aC?R|2j+TF>X$~jBB$STga!QB2Lfw$_4*^MBgNe z1BT5yRsX`u44ytN^L-00dagsM4sWMv9DVRy3~8Sw(6*qhXw=e+FT7GVVpFCIg4T0XNs53-}Y*p`vPGlZA zjaMy;3`wV+NIjXlo|g(dA+3w?>^^8BkO~G%r*ELy&uX6K3@z%}tn&N&1!W_pQwxBu zLUw|Oj)>Z??2wn_txK8H1DRt-p_aTxMts z9^|Bl{9>Av(A1O5K?MVYXE%CyyLr}0_CO=n*Mj8iN}wLgtUm9^WXQ#2Z3A=nSjhf4 z^oZ7*$u<(aO3elR%KXv$wRfQG>XLMHee=>{sj{`Ri+_dYCER;>xBZXO%%!wW8(L@o zy}38Q6~bcf64_$?vb;L%c;~>xe_z2DlLnF-db3`~t4&%c{_{t@jx-zYgSHs9IHOA+ zPffJZsf8iX>7kGJ;@@|)deP8|Aj=lf3rgo(w{t;22QCpCt&0?5@=2PE6~*#OWL&#% zOFNJ!B1tgDZOXi73RWN z1kIsaZSfLaiw3J()x9wJrELSd;beHmCum9%gSvcBIG9z=(Nj>zZNaQ6^H7)>+P}vO3j2|8eK1qxWG#yGSuTF~@Wa97ObMVxL@S?=|a-$D1YJ=F!Y4R+{mZ&(Q!fpdm`eU-?JieSPc zoNgp$*RmpWDJ#|f6*`AzJ)eJ82l%8J^H9mky-{DoRgbnP{&or!_|8~>QWJj}*BY{A z*Kk_rIlmR+5*l3h@w$Yw%cGd?;3cX($Ld=g>%xz*;9JxNaermW4)MN;xi-0W^s_zv z{J@PtXc_lBS>pz@O4xBF@z9XKmcg$}s?32Vfl{YXDKsaG`=TH*uF@~(=FQC{ivMIq zlOp^E7UBS-4mQ9^e>d&5Pu)YFrIcypt^+*%+I>5au5hXuSt$V?>!Y2m#Vk5d@~HlW z;Ak~x0zGnx&$+77-?t@)1A~$nt}o%JHp^L^yfx`W?(mvlp(M*_b!0;(>s5%S`c)MC zl%P`Tn~!dl_=H;I^S)@LB$ToS9OV^AF@{1?>fNrG>2snVa_FyDv)=msn+|;K51yR& zu;}KYvYK|!{WSjQCMU4@G3zH&3x+Ej|9;uo5(sY zD~c~^1F95`u_0uy{=VaKVhV+nP?jP=qKe}gnUX*Ygin8wuDEdpQA<-~1x6Zb>Q_x& zrGawO?kmFMB4zRVw&DFj81EPTCo8q@052xlBcYFNJ!?8ZG0n(WPJu3?(O&g8VWw^O znBNDe(Q2KI(@t_Nn-Ydx>G>h#yM^Ik0CWiFAUVI?b}HHF&8pfvsZd5k4EG=*S~em1 zvRK!W2xd3mo5{3A>wC4xz0!9K1@~;T9|4`%Dk+2`@~19Oy?9Sza4$&!RlpU;xfJ5s zi(J+J$IhJ?1jkEGb$XT0i|tk6v4a-N>8 zdWR}FY}N=oI(@g0q%>W&yfIc^qc!Xu`}k+*13xx6`oYq%R=Ni7OxpiZ_QdfEXQX<*L~g zDXui(8x`>%I^vMvAwy?yeQOI%DWP(+V~a8BAqu3gE|THa1U!A=1JC*Fk##leOz+fx zu^)DsjApd1_>#2bfIPE1O zj6dJXyJXLIi#N|uPH?41ip!xB6NQdVc1*==L+O4%9|WoG2)OIt{nzlf+A zRD;$;lu3Kh3H4vO-w%8J1d8SP$>ZtZbW)|-EasHi;2^nWA6 z=mjGU>_hL^*8DlEU*EY#Dtr4y(Bku>kfHKHvm(!>AdueA_^4=AIJdaP9}G37&e;`< z?Vrd| zlaBkK8Dz_TL?e*ibgI1V%DYdu`s;z#a>O0IT25w^ZlS=~>=Tn!tD`dffU&0mRb?%#if)Lf_<96d z)oNX8!1Y5_5%n4rM=fSGX!cTdC{$x5DXSE6A=j3d> z7y*3fzQDipW$Q=wbE19hSSGa(7&-6&X$3O>?pvQnIw<%X_Xa;j<(>f`@y=5-4cFdF z2BSuB$vS91pqh#>cAmPzz*xCnUUwXsB8)Y51!X{eO2aFG)E)*kp$5Go!=gi14)k$UF3*IJJ9 zsKMX_V=0b7++Ai*kK$FE&6^!L@yQ8lQ6CdgcFNI{QtJ%sHrF-KXk1$Ylol-jCDx*5 zuC9XG`A5IYINJDk8#+Np61N<`$llM-^W6(q~W4lxRn`wzl%As(XGRsYVmn6@Fimq>xlda%hd_h6;1T0Zg(~d z{M2)R2Pq6ki+ta*$&r|_;z7e$C@_Ij9>Fp3`@MWiLSv(^v-nTjR&YPl3@1b@ZR&-y zz=_O^3*fh#uW*wFDx~Z#-~^P>f5yRaSEZJGf}F!gm!BO}eu=b>mB# z_xU?R&$_}vE~-2D!t)REp+Akqd0(8i0BRyy&xW`pMQn|&V!twu0=ZwV9zNU;UFx-H zJJuq{qD1!(^A}T2JOhtjoM1~M3ZuXJ!m9pUVV$8k+B2aH$U~PTOqU}2=p#>@I;5Fd zcyr;!tF-Bj56k`=|9?>cvC{?U>dJKv1362`yJOO)Xq{&T(~nf5p&U`EDPx?(kZM5- ze$>Iu8=UT190i`wIc10kzVFNLm>%(Kqs>o(HtMP2jE$pYOyP9*vANHub9$MLY$DWb ztjA$JwHpgBo}$f8p8vW2d?7DlWS|1DaY5}R%;NmKad+E$zOaBSY%k7g;V@sC=q=tZ zTtBce+#0%jhmpc%Q@XAYM7()((e%)#bYM&r>mc2sM0Xr8o`tsbsy4Q$=ThCj`2Ih8 z{2vhdEuie96>Jxz$&5dwUu4jy27%cC4QI13B}m@o!v~cm^AEPGNRC^tP|Joh&JUxY zNIWrQt`SOE1ul@ZBhQ1_o^|7*6GUn$0rpz7(bQmMqNtYV=s#!aSe=2U4~#fG;gTTU zr`74AUjf2ujmls~LvhWVXHXGiG3X--)(S*P9oq!fk&|*zKdIfQq29Pl%7&HkBkFUG?p-CBuOGb~NM`IC z#;xJ@DAkJ`y7!e%S;3OIk&&AufQm)hf;`ZTYv+cV-hKb%ou>rxduWdc${CSuYY5a= zRGWv%o@~!Z%dt&>CaHFaD`l1IbQ9%Wk{Jq|#ruOvFd+!GADL;U%g%2_@{;6EP{>K9TNnYE~9iOER&{8#O z7DEP3hJNgHb?{}MF2%ufP&SV&3kPoJ$?y#5ujl*c$mQ$FWiUncc`9I^g;NaVP6X(W zyQKc97$vYu7}`|k{Y43VuIaTnt*t)9cOIu9c;ynlZ)yHFbS}%iL=fIFJ$Vj4Sx+eZ zOJ+0lrb#>SA$rS5V);u|CUS>()wda&p#Ai%$`=Xr0%Owi$b#KEsWr6rXBLNHEPM$> zM#53YqECDSSEbP`b&9(r;XftZnqtwVbgBBv0HLL)m z@-}!R^BV%-!XNHUOfZKJ&ZDB!zJrN9a(N#dc$=R-lx=?!XehM%Ruky4!Mx~KlNDjW zicSpo5uWpSmkozpU6=I6Z;yYoBY0fCYyy{EqugBnLbN{XnNVNb)f8SVu9QN=aH3dE z;pg#_?Ezqyhh^Y?S}b~_>Hn0=ITDpS-~wLEjwc}VWSGim1z@`g_#0;!9%7gL3Od`F z1(YgnH!>)^K7P0m$J!bnooZK%NX#AGc`pem@z>vGY#|N=DZ~xE;h!;Je?xyTZ8iGd zoaC|{i-;9ez643}%uuBbN$hk1D5Ka<`1FyMg<_4wsM1f-3c#LOZY@s0TPk6U*w$z{ ztDrX0KouB_pq?Ja&@VMxNS2*Hs4I%B!Aum-YsY1I_Mgtl6o<~vk<1r)eM2EXLm9Ej zkfW#!Hp)Fzp2y6L+y#v;(YR(rwpXHs=N)s97hjh8IWUY9@fKV*@kEC^<#sr)S~j}7 za2sj*Av8Wk6+(ooS7xN~`OMoQla8+|(cg;JhoLO6z2JWSZ>VVP!=ZQ|2Mw`< zwm;?a;hh_ky?}{&-!uGDP40`}D=VIdE_>>G6!D(dO$D{p!DKulhl<5%3rAM`#r_lf z2B4}yI#9F1Oo0>n8Vbru#Nv%}?dczsLtECF@v~s}hk8Aa;9dA02}2filZB1H?6ge+ zkLzziD~ttIl&N&L?Xhxk=!hwSkC@6x1Mk&GK1XvCrl;W=cvmu?aTBaPtmS<-HVcYg zmL@!DTh6{JFNz;b1}8R1hY)K&n5{ONq(NfFH-v{OTaBIGc%YCCj{0#Xumv^fIu`y4 zT4_eR8c`vZw_7K2Kc;Hz2F>RYhBwpAAfT*EooKc=^YVh=V=$CLfW|tY!86Q?ysUCx zHJ0g)Q@I20eua)HI~;4ItmeeFZo88qDO@R;e^tS1S`$voBjJ8ug?N*K_NKGmcRfiT zivYNanNvP;6FJ2OWl}=Lo^ovBy=-FT3u|5^xW56}G~_j+xG5~RVJYD+ip#Q1>I;GP zI|j|oMM+gl#&+!88p~Hl$yX0YPYvb)lLa)HMQ);t`s4eO;gG3~CV>`b#7n^*z>U_U z?ArC_1t+cOB6(|<9H(dQT{ED_ZrL3wv+-SwsmNHBc_^b&VT}lU9MF7XR30km)?c7j zgylQkn)=3WIyKZ8G-a$yi;N1=QkE-z;;sV=_h*=`;&T(e*ReWd|AMv#pi`G5;GM}` z7HR#ilmK3JqY<$q^9qRwXViM3?A2AYfk40cj3oG0;?GfJDPwncbDO+9Jo=5`u&dS# zqoPThRnq>Oxq|RV*+DHZVFV|sqq(fojlV#ZNxN?i-r2sdaF?KVq~Ce_7r?^LTwv@2 zyul%JQWs4_COfuJ!-p7^@{j-z{~v2ZxE@5-+ruz5LJ=sM6o~RnGrdI_j#M~9%0b#jF(G-m;KM@Bhc)mfg(Mt?R!R%s zwYKQk`-k5HYbufiCd!Njxmf03n9vhSo4{uRqgJhTQoLNjR&u@|U!>&j5$67%h79T?t;o{@#X$ z!OLJ)o3#nfj#w1qV@=#y+I&_W?vXa(uW`Yjy3{%?f75A(*5K@%j}2cE&gVH*pBp}$ zaHRgj9E+{pY|qZJ zkDVu=Ghn5z;?P&=h3`^KYO4I0Cqu4e44eaVZiohWW;?cF-R#8&gRx4+ns(shw%$hC zQCi}m?zmPw82K%eNA94GQFYQ{M~z+D;=i<>e*#*qR%3j~-jYe*cZnyn4th~X&-Vbm zpG2%74&xALkk}2W@eSoNdod7nh~YY-I<&v@yl}Sl+eh)0 zNiP<4LuhxXQ9?qxefyS8&i@!UZfz|ZVCZVOS(o0RfR8Elh)`|hj;CyFbKcXZ7-yz+6vwOkoc-k77L%eO%?m++a z9TiPlHk)qf^^+BQc&K+pXUYT9_`YNK9otO$KWB@?3dd!{m!u+V%4%ND2AZ;Kx9}Yr zSKNLiFn@E~`ncy1{Zm1&-s`Kw;m>QGpgrx6-O%k<(00e07`WLH_j~ak>HI6wul!Mu zuT^dwF*c*tO^bRYhquKXQE=^K-+`7MCUBW||F6!T8r+eVhWY%u@kPT49(2&Z)CyUD zv{>f*XQe4EMyyOrE$6#rXkV~)pR#~JuYJk4&x z$LpZ)G`^xr|3(XI@$e-}r`BZr7-x#MMr|vYQsg`5CE95*FVy>Ij53%tH&S&C=UC4v(Gl(RNImb6uvspip<) zwKpzLZ~Dy+-tXc5PV4QXJ+jL!*Y1ho94x!_-K2k~{*@<=Cl{~%biS_kwDZwTuTG}; zG_Cp>=XHI}&M#g!6Yq=TX76ZPW#6eeMeW0zrG=*F!{bbTu-~rp3d&Haei422@ZdRp z550VSdM?9&$r)S$zRxZ*q1Loe(OG?#cdHPR~22GI-V`^ z{B5Ptv?pD;VFnfnM}K=YJuT;?Q@6n+p}pnPi&_IScBz)~I%OU5eiS*T*w<@KTbl7! z`FQqAGM^`!h>Tu(^4@hrDE=&-KhziPkOOBe~f;dwEn8a$8wj~ zK`fg`GuD3^aCex$X?cY6$jehFMIZTCx98l5U3Y{B)>!VY^s*f#+w{8iVCzwS&LBlQ zo!^gj_Lt<(`P|T{^Y%cRRJ2N{=(g(m5%){_y_PlnvZM0qi|eBgF9=kquK3o_R?xxU z65Lf$|FY2U;s@=}^l3AX7gRNEd@@_meL-sV{t)Stae>Rtoql?QevtE7VB;qxrKCpw zFTK!WLbH?y`9~3ws`r#UrR|DZJ7c8^m5y{io3b)cb@kKH|`Xj$vS%DXUlWBT%!%H?lUaroBV4y z{MW4UYc_85nW3xe@9(eUZ=mD7VYROQ^y$-e_4vAczBc@Yw%^wE8&_@7Uhk*+>n4BS zXTF=C%LWghjUL|Xx#Yg9oV_<~oHc$tdC))q`}Lk~TRi^nN$dUo^;z(Ny5x$kzK)(Q z)3A*m?!62nSAGra`L17&Ga@&eVeYZT&C_PShnL%WKX|p-`g+r+8udH}UHZQ_{kNgk z|2K51q2a%e{I@IrHj=!`j3pa9++dc-T+G%t(nY`h>+g+p$wd9z#Qj>8o?l^EX3HDt z{Bi|iQYeu~;NE|cWsQF~r z?-87(%Pqcj?RDMRqW8z8ZRZZ(827v51j&o4?wY1=1zk-cK|iYIbicSA(%l&n{NsMX zk59L|+LnyX?Ch$kIdftlONPzi3PPo%|Ne(4Rrcp*mFCTXpGN=l+u#3?3=t`nyj(O- zIBPULOq!+7vP=wfRo~?>?C)FsYZy02GPK0?gI);rd#E4`E|qahiY1pu z{A+Uld6kn2Vdh091%Jt*S&Egg-EJ(JH2$+GMjqGLo1!+-O2-` z(5-f`*>1+M!_eHR$nN0(KBx&z&p6hsNRRu41CtWzM+ia%gJG%i8k+2u^rIdR*TO<; zP4(}cM=w2)<E>wNybV(%{(F5KKpTyn+lfMajaRTg?;FOH>M) z4^Yd;6*wK2JhLoniQiOWqW|2-o@)(kgwj<+2Bf`eJwky$Z1;%(6(s%y`qrCOk? zx2dG!F4G%cklm({y5b=()p83OX07qSSb316t%m0sT4*GSqSw4LbKlGDKZxe!lMKAQ zQrR<0_tEKx(W}loxtsq)cfjDwXq+^Bgz~|{f#=T2pp}vAHdCG^P5)fY0(}wo*mU!c zyy}q}3n>YmFtkTNQyzNXDD^I(7Duw2^{7SdIDdr$dlU7JB71m|=cC*<+Hew>^t#EgFDk_viyzm9(K>^}HHVe4 z9OXK>_?jx3s#PH1pTEcJ`RqiOmRI|>hYtvOrA&RWl&BWIIKE>CYM?Ypda>JILWY znb&)+uX0Ob>DH@tfGtL=Yq_(#ImU!d1v|B$Dhw`X1M=OiGHNb((AGG%t^Bb zu~Z{dJnN-z_oJ_gmiJuph)VHATWSz2V3GshF0rib%bOKJw777%KG9&5ZPimZm3Yp% zf8I%jRz^~yexQw1_iPRQj8ueEJkh3C2sA#JK6Q*?sA`(PfjD;#T{UbL>wjkNOT z&(N1_hnHD9Mm1vkwJr1L6}6rOA8) zHn(v@3z8+9V5U5?^j-ewvJ=#5?io^ds%+)r#4@utvh;0142G6yU35jNTT0|0&|p&c zdlc84624lP(4_9NL~OW?_BupmtUSviE55i%+HWGYNID!Cde^l>HAVNkLgWPMD!WG$ zyL4F?vn6`cZG+@T|`NRQf42oy6&@i+t{uOK*C%)=*HXJEQt9rdNkc zguiHZLC)^sXjM5NL61)C9c{5>Fcz=zdfJYYW*KBe`MUhA4gOiCXa(UZVbTX_Vd+Dx zR$I-B68L|~(03G^0~zwmAouziQiUPJFQ}+K6OiO ziX<(tSf^lbldL7ZI4s!?lY(en*>FvyRlk2vPb||}`bZi3LXx$_F->xQQ@(a>4brT; z1djP>1;g()3|)z4L`hzFs_e$1U1+H}&%j@sxf4&mA!xgb<)&6Tw~{WB&BN3bHC+C<#{?i*$A`;25yW+2O0+-LVR zBt;{nPchpR5Z0Fi9k(Hc!M$Pv{?Na?=%;$4qUe|N84AYofaA8`u`ru}x2)x8d((3n zB@CgGrEsa2L9q9W9-l*Rt_!BpGV@#dt)>{We6)d&O?oiX?JPg>^vE#!1)Glx2D!EU z?i}*%Q$8(uY>weP$qD{yjgiPFYTiu@LQ>h-^7c*W_2=m5wMDkyzTG?rPyJ7GxMK+W z{Zn*lHG~|nyH}etJgu|GYJ!ojN9uyJXYiFkUXcwQR)$LEp44@m`sRz6+BD-7++d2iCb59O6YY6{OZce?`X0edNe-Qk}(7kG)3-BikGJqK&V6)oZSj_ z@oNnT$BrXseGg|uK*{`NmT0C0C*{IwO;7Als4VI0*}bOnXuuEW6sG^o5sPW7I_zm{c!qG~dl z;gcXg3F{}im@0qkgI>_=q<_f*x3`7M$J5$osK}!|JXqNuSzxX)Z0!KGQKigEGR^$G z)yQ51688KA1N{aRh(0HA|5d-(Iq3aNK%~;=Bz(Km8{Ux?$eX#l9Vznv=GA&Eahws@ zfW$sjvPkrhS99G|^Z0&bV-495+5XkE?qF4)FsvV=U>hngakRB5L4K7q>!`#!KP|{v z`H}jYiS+k5iNRu4niOb<@w%;x()z!UpiQ+HVywe=JoSQyP!b6-y6{w3x~XOge%)s> z3Fhvd&z4Yf7b+!+Vp(cH(7(vj1XVJNudq0lwe-BX`ET^-tY4t^wT-xNN~DU zWivCd7Oi{B5N#rkAzN4)}1VQWr>O>_?V^ltdyGxN_1C(6T%n2mnn^v^H<{6kj;;ET+XEgj_w z6UU;3G8+aP$y3YkeDZa4Q(YNb4THA!$Gk5$if{jOzkmHhWGM?#&;mEJ(JvVudY|mV z6W!rUDD?(Hdv6$M;j~8A2A-eJ<%j5@_hn5qzWfM?L-WSgA|75V>!<$DU7p2)A z)X%fJZ&?TMGyjASQH`)UyUrTTxB_u%pXla&AAskEeM|?u+N&vL^*8z=dv64Kvh3&1 z-<_L!@$bUS#5_hZ=4MJbAL}@%ABQF=&wuWDcAX4sg|S zoN@E<2y|6f_Q0vI`R`4&9MNjsgSboBcnCt>-b7jGkW#TiJId9>@Qd~lM_M7Ve=G;1 zVWE5vJekK8-NP0C{t=~Ic1*OkKeeu*5`S>V^A%fWAyqGe$0_yqTtJVI5ADgJR zlmB6W=LDuvs*w*Te6cOY_9y~0rs|>T;>SK{`7g_wB$hob_+W=`s0d-qMCXzF=!t61 zfv}(|swDv3OtA-u>ht6ga@)8Z)svR$%--iterCCPFHWLk{<1N9gT7fejPPBKmgF}{ zi&`dvLI5oVPi2a5xP2crN^^;Jz+wzpxe2$WKDQ59_(PWZDnZ{KGw5FGa?z>8 z=hfZA)O1|4hPCH~+*P_~|6?}~xnkdo!52unt3T2;xW#SiG-{TsUlADUM9Cia*Nv?9 z0O|`xaXf-NHkRMdEpw-X+T5eyDy%0d93}m{7qy?i(VJw>^6Fo5U8hc_cSN&FZSd!HWpW;jvli&&!iHEc1r-aaqm7k zfp2G+8uA{wsiBhR1Pb3<_FPhgLTMvK&~$g5ZO6c58%&5pkG}_rFNn_L?yfbWRxniZ zl;yHSSu-X-xZ5 z;BcFb!O{00z}MXph*A*Ns(Lfro`iWLJU~h`k;K1ILA`_>^-xBwi$P{oR)~oR#d&D^-QTuLapi4=&XiC8uaU*9a0DGX6w<9 zr;ln;^5T<6ERYo}VAjvI-xa7i6-_3N<)icsyt}_mTS|#x^|qdrGWU^zawGq#`V5ZP1U4H-aYk*_Ls+X|sYnI>l^ME@olC#8~>%Ig@^+m&}81(JP+TBhG!ry}|;;!u~mQYDchH z10bUuFCJxdiG0Dp0dUvn3x3e+%Dy-p44%=b zfLU4c=tU1698=OTs_RL#vKDxRZ5__j`>eIzjiSe7}iU}5tIl^v&ElucMud6Vx{Sn?GwUZxe$AuI5S z&mPa;i(s8(aCwDZ;q^Jits$4&EtesN!Mnj%5``z$c_mPDAQ>fRo!@FQ{AL`@$azNq zkNn_b)z}vMZ3grWlZQUw`Nii~QnwS>fxqwE!dgLnb(oh zF^9y}sh9icNtDS3O}vI)5@1phT+Dc#rU{)JTA&GnQ@K6HD2Ug1-03a-+UJ1q)$nK~+REop z3j^DuR0cA7ChM@>UnhO4Y~83TBm~hUg>%u-*6NM~-)$afsm!Yny_r$p-szOjEE8(= zyOf2`mzKp*dzO2}7P1;6U9D!0LYI6vBaZjVr`XB2b+>XJMH^G@6*@(Pp{_|9uX;lymswX9n?Aqb^ui(DH8Hw zHyj4gUztU?Q=CfI@Tx%xG-M?Mk}5P`ju|?|L{K|jGPHr!7V+bNUJ!lP`2aZi>5d}P zB(st>^W01lISo|(vp7gKmPSK4ngnb5YMOEj(;Qrf8UDqKSdOx+(yZ&O+q2vnT1J&& zqq_WL6VLM7xAY|8lK=_I&nl4cJY1}hEDEP*%^0+9u}OiPZXQ~T74pw4-!BSEr+w%& z0v+(X@_hjJPxJo+8S+yAya?BL(a{~DHxu6806w!+*G2C2wW39u>%*x7wV$Z_>Z4*T zqkl7_7YZ>rDBmFPD_dHGQ&z?#JM zVfNPIM@%t*A&CLbR2llxyenzeZ=lA%mGdl@9CX^S1nu*lGqm_jz8M-t3k75SB zq6&iLyf%q;gaBbO1=ypt^qK+X&!1N^SI)PmkLu(3~t1yI`?SbHLn>yHL8M*j7z zAOtw4f%-0AxlNJIeIyU%l-MU-o=U0KLskNfh_>>hG)CYP4?1SH_aqlTvF7F7$Uz$d zzV*uz&rdc78&`*XaHRGnL<_P&(AE}AnLs^GP(8DUco5zT@c{C#%n8$gk~J~Y>llcE z6F`k0xpl`yY49i{FwGi}GmiXSS8nx~s6ezJhBno{OMn+WTl@@Tm%qbn0s*?xb1mMgSu(kB;hF{PIdc;7ur=X5VQKG@aax1KF_pN137SL~g% z9M>-9pBC4?#ddBV1jjotL4_*>mm=MMT{yVKvAM>y=2`o%bbCaHiQZOf3At8ai_@|p z2(DeRpW29bh|_ALT!vf@P^yqL9Q!E1_2R01OyeLU(;FG(*@tiC>rT>Qc!=QlVP8$< z;!;MdxLmjZm$$< zpk6{?LFRV3saI`yt?9z1K96Y5-XBC0YxbszA^dROcOFSBxEI=vCHENIixKd+EgcqN z8MIR`C31wFm^BRPoZ)Qi{EgDtv^kQJE{%EFhx!^RkpeIy>_d~$c7~8EY35G`4v`gM zpKcn4365+P@Wf~M;GMjuC*K00%ZJ;ywG+X7gS{COgogwDNkT8`O@u}n}oj>wPf=fDG21DtO zV!s!GWg611pxQv1SR$5N9$kmnM%XDf@-c$1JJotd~#8$ z{~}4ydL2qx>oJU>n&2Qfm1Q-$-{~3S3aSGkhHg*5*06_eVP})m3!q!UQx)%J3ZjTS zZSCI+r>ghpIxP_bl;_^;FZ4V+%XGBFTbQaS_F*6=%D2{tfi19)%J+%l!2hI-)!3%=8GPy{wpvT;F& z%n5mb*&=V@G;BJ^QG4$FrpgT_=p8`FpgyT_u+WD=G6~9Lbv3rPe2>^pxEuq>#gL0P z$q}}6UT>whGZ*6Ahdjl1$^9wM?~r{DAN%m_2?fK1G{Uimkg>HK_Z6Z%!W~WUHMWi` zqpLBw93EVFqW9a|3p7vR-7v@l=W^WXz?icKT;Ta@(cg2vtAW5}=Uvtgex-=C4+$Ss zqxLEy$ct+(Ln54S>9;SB!eXNi=?}fNJJF2)LXHBH7|UP*rDQIIIv42=OZ+=7GPNA2 zO(ohoB}TX-69N7rl0y@R<=~VG3AUZroyT~pE;n*vhyp5%OXmDy$1vu=fH^Q*?!}`k zUmSuAXtzp75d=x6bLLR`0{biwD8=PEXI#`D4{*9lEwf|_L|~Rb*)K}${nQZbZ6Rm0 zi=UL>O^=cits^3k74uEyRIorS?H{E9kwtfslM>`zD>3 zw#2c-_xW9#uXxRt03J_yeqUvm(tGGmk0^}lDskIjzcrPPOmu(-T9&b`zPw;Q#%RZr zoTIuyFX@nquAt8IYQ@4m+2g5c6KoR!9#S5G){i8#+9Fd*o3?Ghp6A%Hzw)UqYSR#B zria=+II4oC1+amGOC074(I2zCzU72`LL);ZLty)uS`Wb0fVSZFcSiFayOX^sbp<-g zYzU+vhMZl6c529YZe+Wnb^+~IaSRsWI^-Ipa>khd}|sFp;pfTzhqO}BpTw}3!-E>cE_u+yBZHaV=nB1 z0*ED!@@Xq*D&hhyusVCygmlJ@%hBLQ$`xACe-9`;_@JsO(-?ULy|G39Rb0DzW=7m@ z$1jK^E~pklUNB(-e~e^f!sQesxl2f`Z++AELv+L}sCI=o(Q{_klelQz<3dkE+V_y0 zfmvP;-p~M-j~?yiXTq1Dn@?0wndxRW<|Tqmq*?bt`cgL)uZh^2{LT{Hx|nqk+8Uf> zsOixnZ1P3g0VP_p(`W!da8kb2d>7vB0+MU9-3`?Tr#etx?-$G|3Nuu1oQ1M%~f)>yPI{(7t!mH$w z3o*ZElC88Kr~VjaW2cS3ju5zQ`yu=ilCrRqKE|8-VOV?Y47Zmu)VmYRf>dq1XKh0m zX&HFSNiRCv_6HkS#?C|v%?t8qLkG(; zY$K>eF8kRWZ|5c6+O}>so#TPAmVmfMASeQc}sylmO3ey+SJOud#Q? zL5r7j!_X4+hdtU~;WG7b!W4nb%&X4~HvbCo3aw%cX4B#rDi{X!O@q*_daZAoC$Se)6B`a}OeUjyReIBh*+;5`So zMNOqMO4XN$Cmy4dUTgY9FYoc=&$sEv&glWPd23_ZQ&vOm(9;Dab;Q=NnGC@z=cNtf)e2J(a}$5HFf zO$RrTm%g)@UUr!qKoM9~A&<1qE|ST%c7L#i4%Io<6Ccb2qEE8oR6d%dz2J*f&MuhR z5p<(Qm3jy0{Q)scaY_7?8@LaO(clrle2DjPkHB3vu8@?7SC_@5r9;FSVIDTK`k=3X z&QYKT>Ym<3N{3Axm9*j=9}zR?Y)?TPWYWwK1%|r}sBRjW&h%P~z)C8k7+RWj3iuS} z>#>o8<`Ok#NZHwQxsh2?4h!k|2{kX8h2H;~03sI#%%7y>{+!25X8A8Zs^-|o|6AS7 zZhmJ1ADX%Jmd6X~3ja;`=dl4eSo%}fEpjzf*IRD4j8L-AcbX}^==oMv>gD^ zCqz}~D5_uPP-1t8uy8;=*7l3Q%3dCr6{pe>Rf~O=1lK?3H>CAP?iFXxFkma&O|lHB zv{G-AKSx6#XNLmUz)v?xIKZ7Dxo%2~oT;fYLcat~ico>)8P`EOmK^RCkhe06mD`bA zpCH7L&Fw+=7@YGgl6!Eeto~+ia|UhSd=BiV;RWwBX(5vm`9a;KOKo}9RTJb%1QI+V zdt(yRLhha zO#03!`duaRqTA+0D+@G_?MHKF$OeFC_hqJjHH32TMCXzK1L;nr!BqRYCd!Kdd9ott z8kC@SSn;Pu+K4=b=v}l3jj$xX<=`-3>fvulGdzM>O&xH_hFO7upD=-6dUgO^=fU|t z0bVvP|1*smLF+SdsJXlHB@uep%LFi3p`9LO3WBk?7SGyNA{eB$xYs%z&(_ZUF_+Pu z6MsRBy#-T%bbeiiG7uaM^0=W>J2uUu?Kc<~6AeWx3)&iiUof~N4JhTUpKu?B`Rp)r zlQD{KF7>6hIrMG-DCE69pRuX}Vy{iL;S-&2pTf1^5C&SKckA5`6s06W`g-0iw09)V z5L>w}p}NQc2NTt=ou5TCz3uZyd?RgRw% z2-w#bxtpf+?F5ko28dsraH7NQ^s~qGGF>H#4|>oc8J({YVkY-*d0nSL;Wn{NXV@o1Sthu)!6>Os%xD zlqug-n&nH76W?^)A>%Bd2xYG)opDrWWFvz=&*(^yFu>1o)Q{|m=uw2pezrVCWhriPtc%h8$5I52n2Maoo2@rS6hWrsuFQ+IF zF#Cu>k}#xtR)FeBXuI7y1~9zrx8u*z`u?3FnB;&-zzof|L&HUyz)#3FcA%pjZXSr@ z$J6mWq`Ovs89Gej&IdP-k?$I6{=V)F>dDF_(O74P+NiEw{~y?=Q#%;hr{E3Q)%QXf zhp@h|!UECz1l2JF_00*JiTFdDaj?UTZ4fO@LhQ`cj^ly32-VgCx<3$1U2DsSIBiD& z+X*>P9QT87t)|yfnzb7EBEJekJ?$`Tu@X`#TNl=#T&aX0yff@n(S}|r&vsi`{{25g zo1bxc0d{8g{Z31b{MmhGdbY|%E_YnYW3$D&=VPT=Yjc|)C0h|r(gELuoTy?LYwO z?ZN4#xe6bG&`Zu@W#~3O{9=RdN4jeHX&>i*{fl;}IS>@+-G$x=jJ!?o)2CXf=j^IM zHdjWjwb3*_c5uPmwspAhA1j4lwT#O0W9M7A+{_rWDskd$!P1b&P6bojWR z-=?>-7^&H_O5hW>#8yoFV>|tZ&LnH`WrSF$mAjUDm|#65sV%?hD7PN%6#BH%SI+_7 zl2)?gG>Td|B%CcZR6|;ww7pFU;Qe8X_dc{!343MQrw~Qtf*qk^{@{|eXpYoH9tmLz zE=y*gKnfw64J@(Zax6}qEo48LdK{{M>agK!{0j4x^mMRQc*Kdmr}iS|Kw-KP609fy zYggvo{6tL#Z13Gf)%<0VR#2zK^PG)doiSyR(}hp4!05`1$<$TW`63%L2gOPU2FGUT zM*TLWR7G_iDu9#>hm1zTPW?*P{3|UJ(Ow}vZ6A*I8*y$YTIVJUD z#vs)r(?-0@O4qgsTjY#2=K+uu*e%_JH`X&;nDQwaW^gVLl@!;xMl(k#nqRF&@1Ic zdQgmRS@)o6*IP8mDIMI$$2Xp!eMitWVNOT*X7NOml_*3}(E*HhYuTG?N;Ct3oeRx< z!qzz#w0uT6WG9046&!>5@N3;}6;zb1l_vs(E?B${DXiB+ z*MO9a-<&gH^SYR=U(US7cDmUPtkxrzID7uqE3#}m7rwexTK~{?JmDc+>X+8 zPNcl2=%nM`vh_<9&;-8bj4*I}y(KjhU16)J>baN1s`-VT!w8Z$TlfMBb-iP^Dxg`- z6jbFe)6K4Efje*h)0QUpbDMX;AG8*Y%46`c4Z%M6)b?BhCfX1u0}&S_XFYmLyH&P#*XR4t6 z0-{@xqb?=#hXpQbi}!z%dyu~EmES?&rtBMhyJ1x;8Y#ICjjDvB)m)C1-G7&hN=FgR?)~#kVdX=O$!c(0$xJrSwO5`E9fcO~f

    ^+<-K|Dq*2;#J!;v4%x0WF`=PP_uJSlJLO?9=5daY_OkYcA8< zr~Tu5RCm~Bag4=JB=v^o z5}~+{zBbb6TZr=#Q_i()s;%;$gP|m8)=bjX`bErU>kbY28>+n^im2$TyqNEOW~(ZF z)#);zVX6Mp;~3N@v0$4Xh3_|Q^4U6w9#}nsv~L-c;9`9V$IyiClOLRl{C z9C(<9DJP4;%3u3le$*EG(}oKmW?bMl@NF7hdLgKu1(?NazZM-NV5dO4Oy9WhPvpO| z14-Y{O>ZxcqQ5E>4ln>$qg1HuTef!XCuDARL8X7v&EPqeb80S+!S~f7Wq$E##T7aD z&JbQf4SG@{`flj)458|)^oq?o9x=XF$hR3U18L0E*y!7_JVjA5O7;O8P8zKMC{R#c z>i{nIM`(?dXhbiy7=OW&QuEF_xSwf80l*dW>e-P=e!;bTg)D47>R8`MQ(XJd;w+?H zt>LW25-nY(=GKH-5Wn$GMb1?5+G-R;S?hu$^D#O;!>d>z{`zhbnwg(XksddLYW43S z+*uGS`1C7^%nag{IgF!ZgPRpPx1e~5)NVSiKBmfzoPOJ3IsSWd^>(@HW=cPc{DAwH z>JV6etm)(=T9&xSVQbY45!T<6>PJVb$Hs#ICIvU3X<8k@Q!{wuU_C}m|}aynI?9$S`U?U!}if%RwRcO z6qrKpCC_dSJ&#)fSwSnHPw2iRC?7YwG?sgf)!%YEc-$_(tb7nkp}0 z-KOWNkQB217;cUt$V2473Qxz9Ekg|5>DeHM!o4jB-ABEJ6g-N+3rl;SjgQG{Gh-Of z+ygyxtS`EuB3S5&ClLu6pyaY=d9GK&EdMi40~WdW)Dt&S%xLx4ZsQ~IS$RT$>*NYi z9s^pH3@xcRT)<%Afiee$%hR!5V=sel3}4Wu_xS^2N|}u`$5^++hTEco*+bwLWcf_{4uqvQ7AvQ2?Ua9}^$?>aUS z)asF&X{-poMj*;joo%0=}RF0J>+diPPG79DG+ePGU0XUl-L{c zC~?ENqotPt$9nMN`W>K)Lwee=#cwRG2&j*d(?P9c1l&XtGG)6aU$TU%%6pF_OKAo5 zkR%T_F8_)?q!{3U|4B)MbMk zqvn%SAWWTqe~T(B-+}QGzDjegv3MOJIZS`lXTpVMR$4IEUrS7r^CLfh@GqkT5RN;5 za&ia7&Wo2%B4#Z&P7ueloZ*(dtK?nh*U|cv!SOjFnQWPmV2~Izd?%$~p*ar8zhq6? zd}M5uh>jLM0A0vE4CGgIRh|#zJY9+-p zUOWw~axKWcNqg}<=PN*(=<8E+8dzFDyu(X;k6<6P^L`8J0#gZeZg(J zpzq{51B z#n=y-`S@~^6E)MKM>2oSbkk8gk+Qu$ZS1^Nlp5e3gxjva#Qz#{m%lYQ=y#-F)Iozb z9(guI{3uwCUPaL|uwBpj;$^%4q903|PD5yv5m29d`4kE}xG}H?BR|ECrduKisyD(K z`qsxk3K{H3YySm=9@w`l;rrv!bZZQsY%np$eg*~7G7&0}CpqtkU@yl-pD)a$yYa*0 zz{Q`?R$s7Pmkxg>5aNp6B$ou?)vBsDw2V%ai-k(YT)IjXlEX?+(BZbh&Ttzw)uDn| z@Q7RR9@TTci!#-rik~Qc8gYpUTjE%os~R{)&kt>JNquT2}kdz*!e1ID=Gqg`;iZ zIt)kpkr44uoma{E?^we7@wv2EatuiwBv0F5v)<@C>*y|Tp%OCQsQc&&>eE0vl;j}i zptL-NZq5x|?~Y5-g6jYB#&62j8geDbWAH^cbUR0YfAY&eqmV{2o`}JU!j;PkX$b+t z`3?9Pf6X#Nc-@X3G{M%5IfeG$l9T`!F*R$=18?c|O#>u|dn7>`miF&9Q z>;OoZvM1}+-RR;V6C}mJqyp1Cq_CHWvI`9T5p3woNuV&bcn#E_>!7+Umh8q78E52Q zajwDSt{?If8%|;Z7Yjvgi)hVCYEAvLV{RrhJ2lXntlXQaYfraqLZhiYviF2;XAY18 zd*c*z%~GQe%ISa)1nI|97jZ~T&J&6$JQ0Wyq+bzwSa`iJKt;^ZlSyKjk^5-|w2ve; z(-*@D%#hbOP+3A*6Dbie%G|BDAaWradQ^w0i}f~Qih^q7DimFDIqINy6S{UW5oo~W z*zdee#buD?$JFcBX{V#70L$6|KPL&8(5dMqk^S=A)Tiu2>>D_EuE&?znAK>X-Bpl% z^()$Wd&$v8N`;<-hC~={qy=2E4OG~ZQ5R^H&e=kups5z`-`rn`f&q>-nXjGar=Vw% zyi~q)%WCu(dD!I@pYu(ABv+^7-Y;3uu0(&?`>X?44UyB1{Iq)ufq_w#q;0?$E_Dc@ zX_@^y{R@{a(NF>BnG8ruqv@!9{g5O)h76vKLor=d3c83KGg5ggrm{_~k$*G{kKFmI zosjlHeQWnq>G5c8j)MPSd!elD2pUQlz$DOj;D7xYl2i6JJR0p}a`t-M=msY^P?mNc z1x|YbAMFKc-pzk;va02M#{T+GgW737P+fCwpw(xSV65}W7Y};%q(svoQugNJ zcq>yclVgH>89T{<6OsP`_B;8@-JRDg4{xK2R?mHD9Z?1Ie^sq-4nitCJS{ zMJKC9c;SqEw*pwlYsi~r&xakr9PtArv&7w*K{@qQ06HZMjPXS;&anpmqVo3O6*KMV zz8YK~643tdIH9eE%eV65dnY2vuO;%k-eK*Fn1)rhI>{((Jqe_^zDyPGkY8tPVjXIx zyc+Y1WJn@Xu1bJP!vv)Hrl()9BFoT~mOzOz3H!JCdLsWpO7xf@_DUI;>%JFky4=1P zB!3rRvsq5lets?ONG00mqH%;+-wOl-s@NfTVL{niAB@AChwa_qxM3<13F9793!KoE zKL=>z1AyTuOf&Jtg4`M!Gc+R*>$ALNV?3g#f9o;TOzXxR`qoaRy|wBPyxnEJ?8(QP)geE)r<74mAKiR8u-As3GsF9XV!zv%ti zW4*NBndw$EB_##T3|ofXD(1(VzAqnZH&4I0zBx?W!SEfSA5ieqF$3Qo&Msc--(%m95a^V<7#s=!pWF(09t-iXB z9;6|HIOY858T5Ndv*METT|2`cAs!*P4_=P)j1dfI_@t2FezYY!*3%-&FR5we)!p?M z#~M3O8;2VM!ew8Od4`VUf9`=W5W=~!?GAx7nYMZ?IZid?$C}aju$zOR-hSR0^kyBs zm|0+_dp1?%r``T()Hh4Az>mN8bp?$;Er7KmF|*FzgrjwfkPeEbaxTnKR&~CmdP2e^ zYN@3}t*mbbZVe8LLX1)T;!F-QWoV>(O_5Xb(sv7jrS}Zp(%-HBkNt;HM{_u>7_d0L zFlm+w>dM{|c%@HIn09A@t8v9J8Zay;Jem4g=yY)zW0@XTyERyRsAL~4-!eT-iq_j^ zKg){zJ{dvTf;4bppR>e`b6dZeBSz7oMX+wm=45V1+i)K^l^KWm-HzMqF9%MqLI7{` zWhgOeUlC$+n@%nN@Bp|&-}3#EZrgknO7xoV153JWj-UNN6nQl#_PCn!dI_DOSSTzN zujx#9)tlPin?pOWlw>W6hn32p% z2=Luqp%@|0rv-sx)#ik`w^=-IlQzmcZXwxI(_&|4nFS~WwDm3rI%USqfv>o#X&6lD z&rrb?xKMPqs=B3w4xwc>$b$>GVZ7m5G$@VGL;HlB3F$*a<8bgIbad0b8EJlf932D7 z`~f*0^=sK1=*beDC1jhvU27v2ZX09hNj;8h4U49C4UZzqwUT>gVUaSjt85_FDw7r47?s(_9$2qmW$$RLwjK1 zyg7?G*@1*M?_LtP_>TmFhKsB4_WOw?&6UblC3 zS;wn|A2Fx02_o&Drg?#vYw=UJ6L5H-Z3UlR9BGzgPcdt6`Jo=F1>*@_?j^2s`XFYu z&pxuDp2TMa6^}`<43_bOX7Njl1bs>=-mioZdaHnLgec#M@ZBV@~!w+9ACM z^hIG_vqjGL^6u^v-RXgt;#Qyyy2Acv-M#)9DIwyyr#7xUAK&OC-z7bi zj?Om71BQ@U^Hj?(q8ah)ox~Csjns>gbS3~a^?I12qdU6M@`+%Vw;L@h5{d=E@sx=d zT_nY}AThIst4yP`J%=0@I&(R)8@Q?KumOiCi38*4p^v+3>P`WfK&=J_QH$eZBu=uqB}&Y-_g*q3^vvPhu}e z>G4p>@8Amv`_eEooFu=8WDiHW>Kt)3mLPuy2ml6d#}KF_QUoU63~Ahgg=q0zC21Z7 z3{}%g3ILFfc-De8;A)V~qVOUhi<@YmG%Es3isGI`bVoMHCU%()o`Pu=XNLp4-^G)n^I>o-b!Gm>q7~*5 zw0C@H31k=p3$j#ch4nKOava5KDcut9x5(7U!PG8lR-HMYnu+QrvNJxq#lEDrFYH)o zwhgEA=w9lZiQM{=@C zIRbjnwdgVftwkM30?)IC?n=fU!N%U|MTM`jT)$bwW*MUu8g!g*#-gSsR3b;57+W}L zg@n-I>L3kqNOG6>V-mgSg1<% z*M6QA`O{U3RwRXTuoiFSFCbs#4)nMv{_$xhT@g|}86Z%PR(aZ+6GMTtc*fVK49-## zIQ=?mdy>8#JlNsnG3!rys0^?@U}HE0EgWBSkxRefd{PV4;IL1y0!0g82gsQt4A_Sr z>`?WK$#|_Q2(VV6G>|@K0CE|i{YRwZ5k2(8tU8OloH1>opOK$<#R6iTsO%^7hGOS( zI3>BEpOH836c0^c;*)VXnJ$48ZWpH==Ig$G=SItul*k3Th>1U?T(HAaT%82)hEdSL z;mF9!3(ItK1NlJ} z?X@()FjO*%&<{qs%`S`Fdb128@;M|$G_}tE+cqU6Zk#RioID-Z*0}aM7McPD@D#B6 z$|c9HWCRo&iv900RN2@;nih zimD7}1`vC}(5{PgPf3~?)38$BUxAA8 ztN}XNum<~*U>)Qf!NJPjj*~>fro)HJ7#W0smQ6XF;>Y{!QT>40)S@*6*j*l7Hosfy zBORqrCo%QJKh7X^)WgU%3)f$)&cw(Cl$qAFHh@9K;zxDE=r7;{fKrqk zU-lssza}}D@ei@$_b3{~zbX%d9>-k$`4jOs4HrUo?O3a9Bn?urT}k2QtE`QAUXIya zaZ7LNBZKt^Bvgg3ZY=Z8?Cvz^Mu8Mt>sL0}eXg`AzGy@m0k=&Hh#9jt7eRoAgbsW_ z*XcKUTBJn3gCm%>u;5@wD<H>P;3Fy9+(6yBRrSOg^wLns$o1}AG zQPclkDBh!&E8U_s>`<|ho*V>^+7iR}= zbsF_($QqoynoWXQ+dpEr#oP%@U_iXhz}t6iDxa}d6A9`ruoC?{Msslm2ryX8#CyWm zVmk&L8eRcYSrYgd^COobFATa_)~FzzevG6TlJhs-@IFa%@(!7Uj1Q4#NPEf=&E2J+ z_d8^v6@&Yz(F?i*QV&CZ)(xZ&Av1J@^|ZSHM41oW6A%&d5Xou8TwRy+y0k#~z;k_i zRb|W|j;e2slMJW7f=?h%J|^vlLX7}0_7a3YmYf_KLo{%0=)J3`%HCfEU7etJ?g(tMoWGZO^Q z;$-}}>UQV_q_oZfg*a?Ykq5$Ed(J62-n6dBoAI0yn2N}!I}FT_wtomn^~28dh?L&igByN|Jald!3E7c+LtflIwn zvH(-7XaWP@61AXxhpiv30?b1Hb$2JV*Bc*uOlgu0tay}>6U*|RvYmhG6Sv)#QSexq}5n7+cIJ3vxH*LK}uHX_++>&(Ak!gCzno`qlR+LoN>@p zZvL|6$hsY}hm%=<$oS9)07#~To9g#+Ijuv(p=D8coYX*?zhu}`qnhCz*Yv5}^uv$- z=V>eS9QKvvnbDkoh}z#LcDIL;&oQ+7%a_8Ln5m+784} zA*SI{@OA4BP5->woGy;PqpoKx-u$l8?dowUJnna>l52_e3zl9^o8m}l} zhHEH6tX2X2U7@3Vod4km3wvs>c>?9gl{>iKk_eS&!5A*Q>ul@(srx+%|W& z;VB?Thy9W;a$m=f3d4y8P1sN_51JOatV6@bkZR=Z!DE>@62{^ep;a%s753SnB#YoA zgd--Lnn2oRfCDnXy?=0ZAKFP9V1#>4U3nWfbKeO~7P4Ftz!hh%`zHF|eRO&hwXo7GayHu2@LSA0Za~wM08-dH z7*Q0!#6mGw(Ks<VjfV^vwXj1=_hpIH3wS6W$Cny za(|8dq-TW1k@GZ_+MOUmfLIxerya^ghSMhvyzUXL0h6!LsdeHq5REayx6EJ+e!(ZC z=Olz$t1?izZ}m!8VbbvB<;^XKP+-k_kf|G$XZkcdq~2oeMXl9d)ZPXtZxSKV$Qn4| zsq8s#_Ctl+uysWv0Ppkv4nQ(V5y%i6%*TYyt*<1f?E79W1cKAzvS zg`o)pN0c8_e<)rHZ3=F4GB~gfye2x|%vOQJyry#=S)jM{hmZH;t#It6L=}*b2i{@V z@GFw6`nFoN{d|Tp{A1u(?Y)pRgm%5Tq}gFz%)$^8MDH>t5Z2j*@#y_pA&m9?8sGXs znr@@RwIrK39u2#2wkQ$OVR_RR$M4w5 zl$4U%9`}-5`)6|K=8lk0d#_<5oRy1a6N;80Wc0Pds#*~=zjAB9qtEDoj4KNO@laas zYfI}JDG@2NFbb@9e>;F)04L(Fx>Po8@Wt`(Z*ad@6zs4`*O^}}x3>qYKEP?zx=7za zXw*~^sjQ9Cw{*Wb#hi9@7HEL7SmL;7ORY8yx;&c%*l#l7Z(Le2&zJf#?tYT0yqm3! z(7`Lq305=bkGE*41ADs3@v0tYI#YLZIttC?GJ<4i@`W_39XkKkcsy%Q&L2i=x))#` z{UR@!e%0t+-^oP)v<#dOZYCC9$e;`0LnZDYltzoT3uje+`jOqfok!DV6?c3~VzIL-ZagOJLzu~=MVPJpiW4PO4$q!t0OBz$@%D3OJjtn;-NLX%17t{z~82OZSNn=*ht0~RW2e8ih*m4vZzl7qNX#>5{ z#?l8DhzZD=MpmOFBIe^8niJa7WEz_3b?j$!N1>PAiToWXq9aWNAo)@|xnzeJHxK}g zG4`pE_|vG#_=^-|i-gcs)!01|x!NxQNB8T_@@Elmu z0NV_=4UQof=s;vD1QhO;zHXEZNV9Ap6KQifcN4wM?BI91_F?pWdQNfFm>2wsan*Wp z>K4PnNHt973xVJKJ2Q3MR^v;rdYW`Dguc4Wz5sBc!pp8{A~78NcVN4(8FzJi06IlA z!gm^4DQ8&-ioRN*)cgY(V5&1PkH*6$VC?Y)>#KPPfccxfa%un|m zu-a(Y%vP2L9c;WC3f}A55tf4-45l~9T%b3VG3+TtTPywlSJ{`xQ<=X1V^qq>QKD@) z6(R~plcaPqjp&@3LUqxd+|PYq%lmp??~Afk5ztC+5C@#H&mX+HsHcRHDPYH>LQHRx z^+SWHult|7zF}gAUvX(O;2hU$-_=SvTwzTo3v5D4|5am3wB6>a z>G4!{2}x&gam&E$X7p=;L|gn%j>U{SE9hYV4v`DhN_nlhFpOG#b|m?&-OwgH(fQRh zdO2VB+V>*mehah*LDs1LRKXq8<1^Y6|C}%{-~p%(w`Dibh=hhmOk9n zhz?fSEZw%b4mJ<@ad~uy8kbDf-mx*x&VO|i+O;M?Hf5YF3fG+IwB+tUYS~cp0=Do# z^1X<+N&%RaxCCO4+a@|@ntO2sq&x&t=**o>PtM$S95`BHR2PDKEi}p9KRatYy*q9$ z{j~B5hGZid@+@f1G$2f%t!$yYgI+cz#Sx?@@!Tq&uz4}bwNA?wGLS-p7}}S zSJQeVItewmf3pv)pnay@ru8>Foal4lPev}Qc$b+pe7`m)+~@&yx`4Ih2G-Vbl*sIK z&+GR&b0||0A#noZU)8%(oensZE)Yq>u?9&?^d80ESVmpvMcPi&`VZ1Za3x^FX0AR3 z4kt1Xx}a5Kb0GyjtDP@+91wAvj-h~92|S#`vF&qP7zYtSn$ys?&&v?G*x96etz0y^ zz?pi;2+3l&<$9kn?`T)31ezCsb7HaM}XIQntd;?u$Anip(S;BW3JGRxcdopm7LO_F7kEqT&X?C^#vkIlAT^>nAZpT zPZ^NJxvnnaXNUvoKP{KW7IB|6GU#?6uSmEm#L*d3nH?bqhVsKUZI@Y;d14v;KW6Bz zrg$1v;t*c)hKyCbl@|YM0q}iQ{m^dO16eTu>(is3%wQZQ4LoXwDZTKtSz+rRE@EO{ z!?uo7l^jGH-V(Y5Tb7|0v^Dlh;rF`9(QYl{CukxX8T=!4ALv8$m2p`8Jzt)`N*~l1 z51DT;FK+8ZZSDH`#`JEI6J`^Fh6TUG`^dwGi+cV#L_ZwYD@_9J5F4hiMGMOM0*aNJ z5Vu@$7Qrk&x@7vT-<^Mq-WRTr-~_3}+r9Vthx(J8a2a?;>sxpX=w_%rRf_AvX>SIV znZ~%`^-fXrLqCQL=A$D0vXY^2ANSqi@68!^W&g^0I`S)LBaHITou$n`4MuhXlq_>lk_ zDx8yokDNDjg!ivzzQvD}3x$AD7o6z(G=^W4&6y%?0l6r|TnN-o=7aUvz)XnG)PCUX zEYwG*0rWVw0ib*KMbg02{G~hV5l9jt;SsYO9Ua|q7R^P8khns~?tYl#=VxJwUsfAT z^Q#ePd#V5?snWO@ttk}W9u|((Wq>^HLvO@^>rMw~C-WQNY6WXDj9G8#jR|66AkXBb zch?Q^;J7dvD(XCE<1pGeaW6r+YWVcaNQ8lX1IksE_u~3OGH97W_F`hT$6Ai?_<_2e z^rE@~bVbBBIEBE%zn4BoK<*AGCyYjKGYcd$W-+J?gS6N<@yDUmPlNU$fsjWPx=-=B z8gSQYw>A0(n+f&J{q_-&!(ALObKs*so7hn7y}8)vUI<+`fUJj@=Pk|}LCI$C&VHdg zgkiMNuTYmv)#Er%>uerXhLSn93DG^$F*A$7h^ zwl{lovAcRcT0SFnkR90@f10+_Y;N@^sSca+19P+(&*3nu6#l zvG%Khfo3KGLfF}|C8CQ?#N5D1bn3gwM)~KeSlYNF9spMjpq$^(CWJ}QS<4EZCfv=% zQP506mG3*|hF}=bqwy`?6Yq$6Mo1QzZD*4dbqd8otf_!WG}mVQJ>}XwP0J%5y43z= zODiPhdJd{zIii3eD9@NoaN}oAD3ESjM6%%UUx&q>LIsQrcj6N=gHyFW1c$Hka7EUP z>mhu%RFtdXw3NoSlt#n2m?+mt)Kf-C2ypc}Q}B2BvUW5h*XtUzrXCU|($NCDjR?#h zDc5ySWpIOIiD<>U)ekceUswQoJ0Sg86`=H<-frHcq@HpKm+o7@5HoKZs6JGVp?wbN z15c55yY!`b(NH$`0%0+!uIi{xw%w9V1;fHRh)8tB@Q0pq0hcz z9kB|!V!s9il+&-G808#T$XB%XfSgd4uK^@B=-O)Z6jAC_HP2ds>hRF2k$C9wVH;HI=9|2@}=N^Fv0WUHOg7JO0xI2S;pxLI@7qDu*u0 zfv=pCVMx0i0g36uI?A`6=sNZFOa^VnrHIp7txo&z#zhy5^m3++l(al^tWY4HbcNoa z`w9MKKS$7PKX5qpj}g>Da$!G&r9|cNiUNj}(8um~!j8B1!7jcIWy|-ZQ)e0~6_^ zfa;RhoK=QDZCfm`xu*Ugrn6FzN@f)s?FvQ|7|AbS+Rtw8KSD>$8Mg3vXY#Z5SFA_p z+fx~2qFz407_! z_9!t9(tyCvZencbP;|LhG~w5tE7lNvpR~&NFP~*}J+Y8T z<|ln0m&$Asz_Y4w((G(Fqwk@PU1=8xA)X4vW3c%mWBHbgY=dYAA+MkfU8K9iU*j2o zN)Y{z{WM`g8WvV2S@HY4A`Ww%g~Xb7j)OdLU%9p4MRYRUA?2{q3OfGWkLuJJo^$rgX?1pQ=~6U0?9nVjSUQw!61n_$>6H-}X)M{Y+z`F$cNb$`@x92~2IoC?d$0DTHFT{o_cJ_u|OBC;MA6#gBzL;P1aZnfh)}1Jo!EogC8Jhw3yeqqf|zA{S9L?;NdH z7-L^;5eGfXwP9ZLd{S-(;5X}Hhj%;E{t(1Np`EWRV7X!mvR4a9Ta;gUdLHkICYSD{ zV_zgx%&EIp&?ifgbee%CXV#r<^lJr@k$LCd)_vYxPhYhF&Lecb#@ylHi!_QSCND_Q z(vI$35~zlvOduq^vh;B^8NF=9aQcjK1BKi5V<+D0pv;E6g1t0Wg6;tQL7V3*BIzh0 z#uelMn@a-Psi%?5AjptClwd#JR&1s>&^X|^M>*=%X5XOaad{<4eeJkf!7PuV$<)&b z{h`PvxKo2j4Y_+^jf(`L8#kv}(VE-9?vRR5r;E!Fzav*fuJaO^-?6e9Nk!~!Jm5b~ ziS9{GsLZ6IGvO9egtb=~_f+tvz2gg?e)oVe5JHQC_r5@k$4l*({K}R{$uW9wWV-x5+2lRLdyE|~a z&)rfC;lOS`UTEv{Y9#gIazYdN-Qo8x;VZr;$?{fEl>2_nTMU9Le_9|;-p}{Fmi3h0 z?uu4q8cFp1frT}0^rn@N(?2nJNy`65e}%U$*X@L{r@I-L;>!s)bxgC%I7Ub%Kg=NI zI6_C{6?T&5i*mir$J1(4aNUy#&;yO-FAdOOI@;{AtT8kjs zej}hy{ACr6%YKuARA-d>59(JSI&RB+724@4)3-5~Nm0j`4;N_4o0cJIJ&;b!F@8Ne z7d;ngE(Y!T%rFB+NEB>CpZ35WM<9}qTQ9^U+OMzC}3L7zB z@%DIh>QWt;Wc)~J^QxUV$N1-SxR~?UpjHd*RDY;Y^AmN}oGcw0rc2x2EJ$(7J+>*+ zUOj}A)y5lK?~J{KB3@e^D62hrkmE>gG%4c{hy|uA8^UHB{)MLK^pg&Ni9Ul+D{h{Y z(DSI`@0YX%Hdng|ojlx>p=J#903JBjppYV4!EtX(8qwlblS+3_8LDN-2}vIuRH!ED zVu}FaRq}g+c_>1hOp2><00S~S2ASv3@KRj&gvY4c2$)Zm1rMNB|UG}YFW@TQy zXN420RK!U8%ck=-{9S%4(%{ugA zCJ9Wt)}?p)aX0Cr@3?XZl-IY_r_p0FE2jaUJafzX_s*)8GCno)nd&57P?En^^${qWV~5A^1lQab!gL5oLmU{M;)Ckq`$ z%0h$XmhP%&=_-%yWD<+a64m<0tCi{8`gEMG^tBM|f_%yoW~ZxqQlFs!y+4p>6BsSm z=qyRks;2{x09{BGn$oP!sG`mKB@wEO<=Htws!zMV!=+%acU@84Ftk6-w&^=l*cTx`;DOmmd-)MZDYQZe0hUW#i zW-7gWYwzg!$h@;cvn4_LfVo^goQOo@+jQWh01yCTQS)ROMv6nM`-^ zAIy~C(@{q`=9<_c@Bp4Lst=}ZUWB9qzE}FHe%u!52v7atXeF;?Hu9JelC^L+pYAI@ zVbnS9A+E%)fK6$k}AkDFx==5 zb^2g|dcLyH%wmC91)0hHWc2UC1ZT9nV;rFFeY)cHA9Pgn2-f3~CU+~fKOt#{(a3Ap zY^QC7;Xm{L1D*(H8m- zWYig)t3#J9PzV#jg`otsHpoc&v&bl;9dDB!efhC*3nRx8NP4ATmW1};mRw!psJJO> z0i0W<$uJ%VSVKkG8!w|2$$yM=R!okE3R>WqfcM1uzD6#Z1)hB`B-H+S;}NTVJt^Ze zH~(_=ug80$ZsE&tqMAeBTGfC_yJEfzH5pzbBI_48*PdgJst#!=NNoMvw}1SnQ=hC5 zft>9E0%@|w>d4~hCUPc~9z?PBN7z%Q?>--?!4!#XXfJqvw~R((SzloAW9N{A+UOWN zf#`^nvL&h`R4c>T2<{nd*N~8@2Fjao z-)UPSBxw14X=hQW1oO0DuIcd0u{3U`7_I?g=cRZRZW7Xcmnoki zN4YHZs4!=ku_gh{E{k`Up10Fu%yS{qGex;EYd;HMeCw4oA0k2mxgc|94vlGMKFqS? zpuBTK>(9D;bWEkK_BN)GbD4R2uu3hf13l3eBI%m!hE=fLCw|8;Kqe>$rKrTGst<+O zTvp*9YLrR--Uk^g|G?iV3Xns9Y&TF8x^G^lgKr&87Vue^7%-4H&9N((DVnFrU4a}H zoB(DAH!rSTr{z(?0_5XPfjLqu72N4Yc&b0(oBT&>1e^)!yUMA(&Yc6nKG#LqV1F;lwlhe)u0m z>!mcS)g2>fVAKh5s2AQc*Mk5f?Mv{^LX;Y% zey}7(X>_9`tC9^b^hAG+>eGFG3<9Bm>EAuHv55MFl5psb9`LJ1q|@Q>LNJZ3>o6~P zN-SooNPYziczG|5mfH3LSwUHSK8=J!jKzW>iwq=7O$axPm-VB>JHr(mn`{DsR-Pj> zM@~vTH?6^Eo=nODTI{;GP4kfvsUh;imkmxHNJ6k|p%Fv?>hgCIIB$o(pevkECi=ij zUeK^^3FmhiJc0nvKUPM~)qD4Y*K>ODHAw&J@xRW|#ak{r5#YM4!WS8Vt)VHsvLPX))X@ER`eKE!redubHAqCyK zOE>|cTX*PCN4WY1(ArYcGCr>9Kwq1T9R)}T&<#c>1h$;HQywl_B%10FU2YuvnxW)5 ziNJ5$baLkLCpDvBq6zSl#XFUes89&l7@JuNoRl1g~D6!DS5gE#+nKdVN~n^ z2ech*je#^|7;`J%PW3yQ3(C$|4yu4xuGGAuzBJt491hyydlRTNi~!0PNt)|!Fr$sK z^gf8o>kRwflpv%T1SqJOkHyKQAsqK9u`BIb(33+L1j8=g6#<#~O6^qoy`Z?@D~p3P zJ?@Eq=jfxjIOJgrQ2&YUzHQ!XQPa{~APkmvYBQ+|k)j{i*!0L?8+sLi@dV;~i%h=m zsYeNe(3udI&%JftG)I;4G~DX5!@)QYw(RV1rr%6nVQ>ko*uLU^^PdMX3Ct6kqZ>L0 zbbom;kg#U}F+ST`hn%@#Eb8iO9rIP2zO`_t0mS()1p~=v=hNOosoxVM21^IK#C>O} zV+s#Hpbd^XXjai_&%v|Tdv-GXhojJ5^YZKj{m$rT{c7lS=S!dZX+j-m@aVHa+L*Dv z+=1}n+J>f9*8$`&+a^O3PGihgwbZA`dJfDmu@;F3)5IvIV}%|i_|$}_ht?$`<_}C< z0BQ|sY|b$aORqOa>!eA_Y^zHT*)m+a1s>;gB4_8|&VD>nSh7=n?0LTBQ9;A}ZM|=) zL>9g*;lTyJKlXt)s8os*2@fJyAnlshH9P6!@lW$a^kmxP^ERF6Q7bh@cTXpJg?0iD zA;WcIX&DcuX)z<^FZ0zI39-`JNyT!R+}rIkaE5O}mMx!mq2>S~#2()!IygEXq^uv9 zI3h!3Gc$JJh#Vbf>`?*|qxG-T=mHN5uCg9C#i#u3Fga>p3cVm$__G>Gvnl=o&4yw0 z4}1$`X1)8oL#MkZ_+F$vEuh7Y`I*caQ1zH2_EpPRifnPDrhz zCZje=F54CMM8)ysj>Ep9Mn6mlTt4b?KUzFS1f)QtSTQXtvlODHx#g3oQy+=TEm(!&=Q;~%+ zhJ6KQUsG3%5c^ygqQcc)l}Ph&pgo5N-Z8-_9Eo+f7=oot`FgcJgr1rd!6iKpM)b)f z^V;SCQ9YF@sNSOlEncggP#@uMkel2cWK2e%2w+Rn$lMHU^v#w}S%!uI&sU zL$Wjr8A#ri#Z3wCVu<8Ox#?J;(en@tJ!^wudZuqPvG&aWzYdeOtNkD+H^kR&;Q~@8 zhLKo_oK1UIpqmR|lv1fhqxtnc*>t3)xXbo?r${02@CyO^>ukZha%Qk4k`Wa z*Gu=-qJ&B^P55q^&Gpi0e(%uZx|5*iktxi<9E}UV$CZH{U}T(11w&xiV7oRZY+@pc z04D$Y1w`JFSFj%U8QsQv-PhdEWo;zP#_}^L{>_&YW}Z`?|07doAan-4bgRrIAW9GBPR) z7tC8OBO@=7kx>ez^@o4iae=cB{$YftrKO#hrM0E6x9=8vzcuSNSa0yzu*GxTa_hM= zGP8~zUFpIdwQ{&wuK&hy<6qc&PY(~cYObQAa?)Y?1>vpTRaGpXsD&)a*oO6OUtgSk z@?zGs+}{_LTG{O~`YafJ|4w$O)})_(t&hysw z>J49awZ=A|5Bhp@W3xiT&1;TP$A`-@qSKgaQ{VaTk33+icWm$ec(wi)RxQ)ib4gk( z$6BhqEsIlQc`wMV@^#gpxYX?VnyOlx$E?k)yQ+L3QnuyF%4dPHJ3Eh$G5_o|x@~Pk zwh{Zj!Oonw>&grK%|ecPdVHAjuJnMyO8ZR*&d?*DKj@f0u*)c;%q`w_Q{%OUj~CYp zwpPVo_iJABCysZQ8{Wz*xbpH`oY~&yHO^gnGj!_TF1v4Y?L^%CZrVF9Ua)9Xtu#t- ze297fV{fXX(-Vg@&vQ-i`%r!CT^HH+|aG(7HE@IiUOU znNxdI@9#OV`@(#Sw)%H}uD@AC?>A!8$d3zm>z_y%#4&j9!b@y;X){o5=BqI_jK)s> z^7x*4nTNN8rmyawyzI!)r4r`N&yBy9J$RwED{fafE1ADLUnNsfVbWQ{{kN5D9s3Pg zKZ)JHhEc&y+B2yC)ZwYaM;vmy;Gw2bFP`(=Sa`1RZvMSfe;z+}+w&{ug;00>ezP#f zjgj3EDU8w$-;%?f*9|idnKDz(e8LE=p_O}Hx=vl#c6{?x*|9qg&9QAeIqJr+_063X zi@dE|=gchoop)r~@ zdN(5W)~Xl3+6gQZB}eC_{Mhqjzi`U!iNTY8KfGNS z{4}^Q_(kwt7rEmm&tl)_zt#5}l+H-I%&7UC#OX4zdTkuFL(f{j+lAicfy0CTlwQ z+RnIF*I!u--k+Hm7|)aI>ehUn&qPj_DdG&Nu(|rAz-^git1GR4D(^I3M+wPX|;h%xc{$xgou)d3?bx<=R*6U)t_; zPTd~z`_-p6_x)4qnW0%TO=9oVGzXNKv3rtbHXhwA8y~l8Wj|--X3!OiehXIn%g8Wv zsQ=3@Tt2=X=X--vsrU`-$PvbccuSz ztK+}7vS!Wt?>qnN%75KSEyZ~07S9bpC5jeiMso~^fBVnx=NM3g`Y*!$bt=983ddrm zG{@kdBQ{fN*zI#gMusi3aGu4A?Xq90Oiwf#2KKkxJk?}N!~L5xYfsO*etUPidzhlL zXt9jSTzQLcSCT?X?=L&;YNNHlbkyX|&#rzQFMB%D>)rme)kOCEezZHJ`=?va?{DS1 ze`P=F=`Jug9sRO?oqF8+!{0txgv!Xu$EA3UfvyL!lf|MP!-m|>&U zpI6{0WSl=#9(eBDynpZe`$_KFb}NO<2o2SE+8SSP(Y)OW1FK5IJijd`O-}(RT z^*^`zEpc}(W~2=fZOEJovVY`)+ZBA1r7cpz%FzWK!%m|3S#b zNp@kP3LRZuYc6s)e)EAZwAUS;Enrr@P&eNH_o4jDAL4NW^)E`>vHj+o5e-!K6Iw?d4Sli(iBN+MA`FB(==O$8Y^% znW1k(tgYw_TS>BIp&)3?kDpB(Cb2B>28z3c5w86k=aM@PRy=h`l;NYw3l8pbARq2` zjy+IvUbj-e-&Sp6;e0cN0xUL$u+OHn>mR_r0=`uqLf6hRP$MsHZ* zevNC>xaw}%r)KdD@&WmifrIR_69bzBCzg=1+2Ewr%Ycs0C-^jWmb-r=H+V&%E;Yf} zda0%H@qZ5U??2*w`NM@DtBb8H1RqkHepx#@q0dwhCjj zvaEAY-QW@rmzDFC2dO)JaOXm`@%<5sOqWkQBzkCMiO_=fWjI~fw0G)J;-#VB#i$Ea z-aB}|{pGi6?>2`B(x%fLRj=wwzC01>ekAXg;m?$7jb}z>-F^{RUc5>r9c3us$>BF9 zdvK;rMfk~`lBG3Xq8w9c<`U`Wc0u_xKKUZ{84xM%nf?she<=3PAGK0B`^E7fBq0hvpqFcrUe{I zn>~WGNLnop?wd4&r?+#1g3|V2{Jl%@etgqxha2Hn4zcbiBeGL3zd{)6?@v0KGW>Jm zU6GEMUA?R@NoyidMO>3)3b8^7s!-%*lWWnbfRn$%rP z{eJjAM|SMz#V;|IJb$$!r>aw$J&Sk)|C#*SBF0qF*~}RQqGx8$!VzwH;{b;Iqpf6k zMpfHkksD>S~T%q{%^sSmnOiRTx2l#1dy$L=EiUvV?zY8dOT zr1_8W?`BdN{GpiP`)ztukK#6K$7oFPXAEDU%DZsP)=0Yi5#|xb%7N{!cf89|uDaxF zqG?MytPRfYqlHXkE46;H{;SOh?@fj;63^i(`_C0kaP#sSK}Hu^8Do!yvEE9QBG(X9 zla=cN(zB#dyqX;zBys3kEn}(JrlhWVfWdTE(gx5g45$#vTT^9eP-fHqX(#^?f`9%H zCx@2xp-N+h7a8vy`oa?t0#}9QMQz6KW{}&JmD{gSGMe|^bIoDVqk<~>*gd-ub{RDs zwEXfn4r$uk^%$4r7WG4AGR5-QzM<(1~#brRQ*>?3s!lK zLJUsJSm3?e&wrfwhpGPkgTE5kmeG8m#dwwFr{sO*I>ef(R`q1VNRrL?BFZmVBM_&iu0Qqf zlK=jpcpnv}H*-50QF&YgHgu$(0nJ0 zO%5~h=hY)>q+!060Tj^ z7(3tqD|en?kHM9og_uuDKkH;Y;DJ}j5M&EWl<&tg%Thrir(YaKN)+vssU%UTqVzYp z|9gkllqjpTtv6BPV%~ukeGkheA!H!(()@`ar+2n#ZbVL_!HHc|_Osj<0Zdkbf67x2 zvTk}2sG8JBveJ)9cDj;#^Le9@SJGmJLa5ss@QHKsffl(N{vu$)3%)CwxmNE8r;+R1PfMWkKvF*R9jf;>JO?mxUuvrtyRD#>;qgorm+af+VA zDf0+s*IFFdMQu@!ED#3mlD`(88f>#S_{`M9|9v=rk$`;%AlAbp1i44ry6iKy5cl(& zX{X`~ZRz>%8=T3DFTfX?u)eW-qx&zCqBW|MRC$GZm6@qe)*eINtOL3dE`I-xNCn&8 zeH_>8{5s@5890glybBg9PI7h7ljtX>D;eZ|ZV}1o?zV7-H!s<)mPVu6)fd86){*u( zw3mDeiL|G9OY8glQ{9}GC7=z%*wIQI(p6T$OO1`$MaE1^(ERLjI<#rA6 zK<@S121@Rx+P$hf9*txe(IJE=?b$+U{I(yZwP{Oqj7{W|ZT^n@nD;~;=cGDgzKlgk{&hS= zA&I#W)t;VZ7|rV8DN+8SxGu*y1fZ*Rl}ozFY>&`)vTn|DOh!D%mdUcI32`U3x{wQ` zP_VMsCzy!%h=0n3i5hKP5ZKs~zbTR>5N_?z$XHK4Q&}GT3(K6Is{@GR1qrrRSX2}> zO|)x3$#xx8A8U(3GNNv<2N9dSo}->J+VS~xL`dQ{@|PD!sZufFvyp!g9<9)UxNUWI zLt5$LvB>?kDG=Ynj-Lc}9!*}ft*Vck=fO%)x}*BRE7PxPq4 zZdHb@b({0EQN&Tm%2k2KCNgq+Hgi<0&8xf8?yG3hXFQ;pD=yVdBozj`HV>qIuXnv{ zEMoMvXz=vP*!g!!D@oV#TLC`V(TTU(?=CZMB~2M^9uO$Jy0}~3k`Pvat=9mu2cUdG z=n{l5bU=uHX(BJpVN>ZsyOKbDk_~w|U=padJipnTsFpLNEfH(~$G6^@|DkDR0frQL z^~!qc2n_eim<;jCni!4qnUB`G2fork4nzI~Kp6>$golbJ12HB$n}pYoNA6n<==aAV zyAc{fNUg;+SzITN++`zcAuYL&fieZXiQ_BbS5N`{U+^0R4qlI8&M`%NMEb0W8Ow?% z1e-kiJcU>ezgiwpje;C&X@|2}^qyy)SkNAz4|;I!+vs;$FLozEOIl0OJ5XP}MwBPtNQ@L*n7Uk?C^J z%8JVq1_ucXXXPP^JY%e(0i`--X9*<2nhfsVBl#tt!kp)pM8&<` z@?GS6!T1~@1@Y!!WNq8$ZV!1aIz2S|&%Bhg#BV~yihM};534s0C$Guy4P-3@aaaha zOkr_HZYR9;^c5-3a|t7EhOEkp;way}?!F@Z-SSBCpe2}6s+&YD9OK@IA|} zILb1+;LH|m4Iv7NWyKpac>#xNJ5_IxuBxn@36;5dyEo5G8gbGVIRgk2FU9j#CakU# z8B4K4ysfl2HR1XRrcY6sUienzlxFpUif;}v=X~_8*GBYeQ8q- zQDISIL#5uVNP>i+GJI=*=%l#qy#n`LHI*zGhvb4oK{vfe3;?B@h6*1Dv>UWdFE^0t ziT@S+cZQ|NeOb-c6)k1I4dls1iS^;!Qop`*7~q?m<~fw48vm<2>}XR(S?oatjABzj zw>st}uKbY^j~U}5RQxf@$?CT*qL*TZoE^Z^-dH+!=fmRJBrRi=!H|azxhG1>u+{Ud zzcct5>5x=VS@?SOls+|PlqxT?aY2p8sA|&c&?!hoY8ZH6Utju`r7OAQTkjZ4`qD)L zvCx`xQ}&)7zb}+IMRBnzZ&P{M0W5)B!8jWx5?Tv#c!K8x38gG6XG7rz$C&HAm!@8{ z89R=oj=ZQBjh-_?%8D9+TrQJe-pHl2X4bifq`sj+Iuf+1w}xhY#YLX#Q}W;ejRFre zYGcJkJcU<#3{1}2@~g+1=rK=__q!@Q9nIUkqPamY0t3U^lpsC+UUP`+Qq{cMo3kwbNM`QenqC`*m=r3^y*k0-dj-6syY~k#{%DpCo_97`C9i# zD(7j%$saLydlRY&d_WV-uw)&S`Yc3HoLdYyYg*-&qPEVRBfm% z50|&1v+m^6L2Xk2r_mDSo+(>qsQQHHAiUm214(~*Ea}PXwzKCDr`a7+9xQFC+(S|U z%fS2Xt)v0VGs6RnKO@D2vT`c?4MmB!Qtz%mK;AA60)Bi_Ry}Su28h^Dsms9P2QJpx zOSZ+3cgyf8NWr;;wLsE61rdgrA$G-q^9vE(EU!xu^{!oI9ZB%s7y%5^vD76J;fc|V zt)#h!G6WrN_ z6{;ks@1*w%!#n$A?qIiDGsqa#neqbc94ejUmg^o{X*$}vnLzKRnXoz#!C{K9_nRHM?_}KaLO<_WZqP{H{i4jnd+}?le@fC zcyq;62gT z-Ee?uNYlv%kN~2ENk#e|UXg7BJ(>`Sa-!UEyzoG`~j2$0f)ie4$UW;OM(5?{00}a8Mdy6ODv` z;CKTwXO-Vhuzyz;cLdEK0M;!kVd^@XxNp=YRV05Q$YG(x>dHD-#0k;LpelECHYRhd zx4AyRxFJ@V3Y|2Yy4x`zcA~UoUgE&q(R0ZwFw1jeJRK$Kv zh`*Sc?fYgYNi?&uu-Pr;#gV)A9VUf`o^xCL%2?v+$<_UdX?u4Yz#deSc*|y!Sx2_J z3&2as+bn6emr)GgoARhOU%Vk=8ayHwMw<=*R$TXt0qi$OV961Rvk zDM*+Vsey?L6p{~=yt_?z@I8?6UN;dr#0F)S68m~I@9a~_ z3)iPR5SE89SCzNp_uDiYy7y5GaF!33TAmZ2*Z>E79)VIelZ_EZ9*l(PqdCkuk9HTB z<4>o`7FJ|v{+Jd^nh7>&BhG>HdERIS>4h>tO+`l0arNmRvC@Mosy?Q!&Aaff&-E#Y z5rV2Eh>L2t+b{19D10&t5ua?i%NLnTlJzRa`}+PIMW&6lTBt0U=Wf>BXt(~z{nO-D zT5*C8-ny4+_7zFc%gR|mI>P>K-9|+E-6J9T3cBVl-Qz)4>B#V%sI-wE(`;qNYj!mf zA61MqOy>q&<^GS`f2Acr0qcxo?Fdh_(VzzUjoGdGDgLCIrP0qSg0s3Rt8h>d;&g;U z#luix(>WfpZdo~7xOQ{!++mNk5Q3Rf*{TtoHwm^9(SSk>z03j=pt4ywB?yGS%)9mcw{AXqBz z^P%iB!(1wBY>z0V;Sdu{Sg)sx)dE50IgB;aV%CC<#>gp9dbWPkh9tW z1?tD0G*iOmU!bT9lRuejGfcsY2pfW-7(&rr3>k>*H@DLlCAQ{xLvDgC}ei(Txra4>kz(YfhK2IQcnGM(PS>^ zKT=M)0`L2D^ZtaUm6fX*3Yp1oQ@6fzSd|mpm>GlcOs$A&{z=aqRQ>rqCbn91c~%%} z0kSgM7r+dlBjWY=Tl-O5pC_xzRINd|2`hb$+asm1lmRYy#Z-va0vIq;0k z<;cqMC=WbWJ7?Tn&XY+9`>61DSV=RCq-zio$wz~PEB}&ct@n}}fhg1rYe4Hovn&lh zh21CZfee2i#G~sssf@Nnw%Gn#j(X0pOy_1&@BAJA~ecZ7&u10d@ zKD%N@&yHzQZDbE1c@Vkns6foFtXvR<+2s!jdr@raQHQ+1kp_W4-_4Ga1YS%-VuFcq zF@la~jD>JWcr=YZf-HQ~%3#9ToW1@aH==Cff|^Z3kdk8>6xLfw)o+;oj1cX@s#Gc{ zC+xZ(kIP73SQ9uonoNin-KHSJ7)F@LqoVBg5E+C#0xGUvY@a7OxB=7pGpO{2x=>MC z)<;)PZ_SbKQOrq%G@z69%q!7I#2YG(4vpv8KE#~Qew0)_tS)ZZHK!`@M`&ykDgW{l zK-CHa+KUab_-+#eOBe#nW`46UF^ zzErj`T_%zb4j2bjK3m_rUqFbGPvLrY*=1=inH#0q0kNdrD>@o_NaT~hNtqPXj!RV0 zY?^=9hux2}5GCI|pMNyowz0vtd-?A;@_L9XxCe~_;qUIA#}kntwIf{a*&)^isX_P1 z-)G3%{|G61@8^CU8XWxlO3ya4I7HVO3~_W2{yx!@(=&loCHy-RDc5jaE_b`xy;9UW zD}boR_Hm&4OGSiuH`tX4%)F;v!jB2Kp0~iSQ-J4M_B&Y_7}Q37a{4rXeAH z?aFwU;x=P6X)n)$QVYiCvgJ+DN+Me$EPpf|ln&>sW~zy`#zb|*ptId4Q#x0{z-;@;d$QT9N^m^cJ!=2``~wJ~*IP*Cl&Z-g3CUop`pa z+yDi5_@0ddTUq9L)#LA30CXxi13&{BPYp7a{2k|+f&orhvfwi ztwEH)*KuHQj$N5CEz5X&?#p|rNXvxywA_YB(d&$+r;+|lVj;3}?ZYQQX@RS~IPj%! zciqA#NM1(mIa#YZk`!H=;Y=TMUVgyq#R0ABVZoqBi5*w^2 zm9cEd|AiS)ts*+$Z>6%g6NZJWA@3eUTVWw}lrnCxc1UICVv+uw(K_5`ZzW$IChVZ2 z-et4=BIqshQj#XBrCZ-7%`kMgK#{Uwaq301lstrjbIc!M7~5az7!9q86RCZbp+iZR zsJQ#hw)3lz&C&8`-ogmo%|X|{Bh3xsYar-&`S}+$stWksjO?*hOFca-pl!$WcgvU1DVR)R5@6HMs^)@k9*#s-B%eKP%4bV0nL zn6-F~G&#&v>N+D2;j@eh;F>u;N<7Oee2n?Lw&0I43sdweF8K<=u*Q0I$T`?%)U6`l z&aOQIQg(h_KI8o0+0qe~SjWdzJ;?#oYR-4BHjdVld`^XSj!G=+Xgn0m*Q*(w-HR%= z)Rqm|dl~U-IwHh*7YirwYOV+96D-4iB=^aKrrFOC1KjkW_nRfX;d1xWNb*3Tc*ugI z!R{^#G{RD?`e2KUmTE+wi_RVU{3bU3qlf`^`$*~BqOyTf$;6SQ&kN!Yz52zId3pnG zBj)xm{dIobW5)SN?L=PJi|I(gzYKpNlqA|(Vu1+MeL~tS%6DG|;3GzUKRWA3ho0Ur zR|^0D8{6a2?x}};tHzSPiN4wb01>=I4@UETi9g0QhLNtvd#Kr0Y|H$>KBdQ3ZM4%s*S0?u0 z%=dpiNj~;#?`))!3B25znP@-8SVLdUt)<0dEZVin&9)C)00lD@(b|Hc*Y=QR7ZvD2!Ih1EVkc^uNE6hESzw~hlA8ErB$1meLRv^te>{<`#I`U}?cOpev97k0#t~ty) z&D&ikXhGniJ5ErpV*2P5b1(1f!ItDZD|&X2CmE*(;(K*{E9vJ$=g}#MGgsV*l?xzc zn@T8^3fbX zZ`s(u%I^$b>O!nTn!eot5YKyg$8vU%+yG4wj-ZHNe(F#AEE%M1jEqVVPXhDwaIR=$ z=GoNQvt$H-@e7X!@V`8X(C=4 z+kGWu_&Bj|kyrmU{^+nYlec6BvUVB%3~1nHZPRq=1C)XIE-3ahI_1ENswBugmUb7b zyll}0&vDHcx@ywx8(7h1?O8UAIPrN@Hfm0rB5FF>)YPK~*ZjS1s3SVlu6G1Uo#)%x ze>j?LNbi#jzn7yuymc$u;;~x0_`hl$zh|C*izG?@qMPzo?>%cpeT{wsA1rGGS~FWg zp(g>;4|S?0TfLBAc+T1J-p`oXZMrsYf2$iTf}CFL>Ybhi9J zbz=-*$o@Vr5Up-V^?qmOH#Gz(mwbBgWjs2Y=BzU0gN(eDA9++p?<<*oW*ccizGv~2EF1dW2~tJPEw#`eToo^lbE z*SCPgFJu1qqeJd_p*@#@&||?|9J}(yNB@HOJ}QwQXm_~bsaYi#fCbfbFqhX;R7ej3 z)SNYVOl_l-%a@Wzcq3oGg4vwyA`|Gyn>9hu|~PPSRItDgfhCS+k{U z*b@=EK!ceXzXu_f(wQoitza3u7BYBh$8M3LN}+j&L>A55NOL(aQk{3?gKIN4f5N&h zvqU}e#Xs}_Y3Iyp&~Z7Yj_`RA9m*xj&blKdz%o#F4!S-_#2Xfk#pBC?p9&8vJjkfOLsiP8znz4q}|g~WIvo=MIX3Q2s-__OSP0LLqZSsZKgKflaK zH#bzw1SpUZm9X^(!|j?Cc`n^~;4E*EHeB4g;(J@G+rg!zsq8pP`K&vfb}5yGyg$>> zL#EeS>Y=HK`@G`w2~p?oxSqjXWB&U^wLO)&1s@$&&lnj0hEb^0{3*s9A)8}tW zb}lR_?rF*WhSXsFIR?M^F?#BZo02h|pLeYw9>cF0557lC`tMW1R9$IEsdd|GL`=KQ z_!~ZPJGth^IZLWTY9_WF#C|jvhK6*7#}!#4%-J$PUY@tR*5>;VQqhOpfrGynmxP9>kWpAa*}X=_%uaE$W6NRw#?Tx>%&^eljQZiSWN!;Xe%O2z7G2 zkda}|Jmw{&e~`T&ZZF%+*C*F4PfG#A?lp{wTpHB-RP}q%qfzkwCMFBVz+KqaEwM$) z+&95F*_Q;)$oNK{;zMdcv(W@z6!OwEn4Tu;di`Dl>BAG#dHurFX?On;JoCoWIL@s=9vR9Aa3={fb z^kVz&j~SWegK$=@%oOeJGm=*H+s&?U_xU3{=}zC`z2pa7m*CNe2d8 z`%>)C_l;9Dc^5p9TkVv;$n&;tdqf_zJXDJT_Q^QlG+y!!TW`IdMjh|Ff(Mr4v2*Ci;Aa58uLHVZktqKWRG zxc_5OY3f~ECrV$EAY(;TRxL0qv z!^wP?58mp8YUCTJJ*FbnVJX4C+Ic(4-H#din94?4-rq+Gt-1yHXxi&+W^--_1jx(z zBb#r@his_er08b8ZFO6I$`EoB`-Uzkc6t-Xi*A3v@pr?^xC`SKBLIz9LvDkWRHNTb zY|`9gO65ErUWb&X)aHrv^f)8$o+xfTkw&gh-6?*c#9{dPLm6X>kqW-}-tkHqiT6|2 zBx22Yi@^37*$+!e-8&ued>ZJFVGOnhn0({;MTqMo!-p~4at|%71VMPv307?vFC=!v zgBj$x$oE&9q$hDuk2;aI0DCzXFu*3GkDhN&hs@aNi8!R}+RLCb0@K^M$&qdmA2E+* zjlxq?iJWDMw??mT7FC7fg}4X z@&!drF^S0tL#j^NBeI^v6HH0b(rnvjNa7iMfAG{MtTDOLfDD&<3rTF=_Q5j9o|Y(n zh%e0dz9Qp-I3ZfJ5AmrtX9|84@{oq1cxzy_>)Gz918m0-LJR{xfgZ0THBuuRpJ^ga z0W==K*e7R}5*p~cQZ)^UstJ)jwr3n?OBxf$U_=GYdiO1I7UJ3bJZr(ngnD@wtephZ z2j@dZ;42plL^#48Bw72gZgRp#x(kwAge~`h5r9jUV+vy{OAqLiLJh5t#U3wN*;wV_ zXxMA`EU1c|?B8hd3P~M^msn|#K@t#TC&X{2i#idOs-Su|cB$WM>nx7djzR1sTWb}x zt*RjFk(JvB4oF$vt=|XsdaOE%@JxToj`oi-+KQa|0Qo=|nR@=!VDh}6>KnqsOm;xz z6EZCXgJ%??df^P8VAD&P$Xg#mrc!$9N|oST^yP&2RYN^Ux1slADbT=f!I|c5GA+f6 z6eQXaos21(x5I_DvQo#I{7Ta5I#1~BVBZkmpHxulRR5~O(THCk1!O`&yj5<;r-rTT zMq*moj|zyFjyk$j^QYn7w>~n%$Ro*_&$g1zh?q}$-|EinB36frdnZYia*$A_zD8Ey zkC6@uBp)1^0HI9R^q(!dA@aTo`}-jWrU3?-Ggq{-M6~%FS(*o@cwS+PmDIoSyK9Tc zZaX3owc%o8u5z+fs(N3+I9%tn7b6-ZR2)HFYx9!cEb&CvCeHxTSk1h(9ewX9@vVzZ zuMG9cbJ8*t0jgAYf;HGez01dt?AYU%%H6!k+~<8lRC)rDR&^&3^KaU;w`VZLCLf^$ z;pfxxuSV;7L+6BoMsiLR+kGIcy~^@@88wvs=w^+xI)p@sbAe;H>Yub7gVbIjBX-s) zO|h}|)n0cp^XLw>vk1pYDF;MaFalG7XCbaJy0a}4VKhhgiCix;?YHkD-N{MuvU0oK z;Cffru<01P^vs3y&SxdoQtJ*ix3C^kgSNB-vK{q)#$8EG&!R$dWwm#x>O=dIw#S~* z(t0k-EVdo-tsvQJr?2U9nWy{a%>S<$ zj=GWvm&BRGc|dgd5~#LO1#1e484h5FqlxjIC4)XpMR;`_4BleS@t$tx7x42{@o~@R zSbOmu_R8YA>$KkiJ4wYue+-Mxg$CKT9}ycM0|p*S)toiLSZk!StyYl%*FXc1^|}K3 zc;A8=ZDdx#EqU;qP6@YO_=H&ccm}xK-xmKi+}oLx|HcR-jRnYr!@*nQ5OT*rCQ>@; zM&a(IgX`xav{|S00VV*}`<5XmsXqkn?Y_T^bHgQU6WI&J{|2*Sj<&}N$Tf*6_;L(; z2I(e>x5F`h%lDr~GJi)X1oi!{?judK`cijIq3MLZEr-mX32xrS5O?@YPh)&)!v~{F zed$souHK;vY9^$#wuH1#?06>l0cH6MP-NyZ=t8}x(x)#X5E9e5$|-wTHrCSRP6$uu z(IEjCd~L0Ax^!Ik&Ob?!aW8iuIw@2<<(QsiZDQSI+O#8gki&?efHhbBTTd$;RIDGC zA&qrnL(rVIiLB>md@hm?Cj3Kx6ln$8_jJ)zW1-r#f-*i}1`2aH@`{lux219v4dSOifX`Cp( zb&%xVwc=k{XPmfZaN%oNL8@frifH7_yp>_`6<5+A`^77rjX3ODy)9SF z((OoDV!Ru;cbx{W$Pa12crcjr`iy~P4*ruM$4vifc2N`)D-!pE>Gy%rFTxSNyb&7D zTMpOi2^QJdNa z2oExD?WjF+)xk0wtH$?bbO}OMI=IuX(r%7GF2$%hhOwlXvDN`(@FN3UT=>zu)eX(E zjv7iiG?GKiyb?3s{4M4)g zmMK76(j)ceAB`igS`T%l;pf+CpJHT+YxJpvG~+0Y9hBbjYb6tU9Y;dJoqWFuslB-i z_MMkeDIlvoW%!5T1Uz0hSY6tOfON|sJ}#`Zsp%{9na#CXYI${u2@>|Od!h8g>XPgU zhvy^vIW1mN6Q7c*WSkZ#h#EcZ@e5-9NM3w(k)<~WD94u@wUE?yB>HfU7j{dIf#bnTUPPsUvcD&PYQv7{*DI-M$?dFnN6@G;AZ?;_OH< ze7s_8)~EKNH^QGC-gExj50ay`3@?dqSW8VO@WQgRo8?ZDo7v6*ZEBO}ak)Vn-=8dQ zRJV6uZ5*9w;HlBdG9L_w-en251SIi-wmFw0W<`AwMGnX~hJVuY*7!WZa5ZsQ z{C05VS!aZ%AwyZ=yyj;k$u0r+N&FiZ;hVE6Gj^Z+KT0RnPR-@-Spbxz_#K3JRDZ-% ztR(rNDiA)R(Y+24scPz2cMZCix0GWPb7k!CQCMZIH|@jagqKS-s~S>JheiY?L8I*- zGh7>?a_N=;3##^jch5?mH{g!yV$z1!_I{jT_>BjW8Ed2_QEC5Yudr-&NAQ`fze>K(3zWb%hU6NH!HaO6e$%>Mq95%aQ4 z;d{w4Y39+LgU^!St5^XlRs?4vT@9~lBRan~lTr8l^vxNorz6VdDx{rQgRQUTjY2MR z0k5|`Uv?kUlJTn`fOk01w(}Df4N)`Kk7YhcY5H?AN3lBE5d*cn72#0V{Azf=Q6=f} zC622Ei3_I#i;7~d*;Iahe>nl`_Xi{Zn(j+SU}L`M4OG4@MY}2L73qq)b3v7bZ`8U} zuSF}{m#?vy{JdhV5E6(27`gxK76RZ*qP)VnBFEPxXcMP zvPd`ydIV&-v_B6%q-K)sa?u-sw$mwWtv<;|e_X5y_U&k>bb?%Dq-LrM=5fy&pHZD) z+Ym^z+lbK5Ld!riYyB%tgdA|1Hv@iDhm61Xsn`W^9Ng&?OYLHsy1lZWKj2rjEeQtH zuB8&}Yek1WRYF``O86$4R zRr#lv6J9UW$WCRW><`&X+&HpVnZ&nM+hI>U`<6X zK?t>gsmcS|iOppGF3V>MMYqRi4dfYHId{-Gi)torK(~WtamK&ssFZKS+|LQB@MI zM$t8w-!{JY`jfN_F+95jRJGXXF#5Qx+$-9Nq-eAxQ$wIS791)Md9C)ofb{*knS7Y?Lyd*|Qa zk<<@zykC_RyR|;(K)jgUHlXloI`elSpR9GGdLAFGc*1ZUy|2aQj?Nge_PDm3LUn(w zg9&_neZdOi^b0myNpDe$?aqMWth%g(XO=^vX8P|&zb3_n=`)D8J$$f}*kA8Y4&>1&=A z_gRJt8GqKunVY)4j}VZ9N@e(iX{RitsnwTK&Hjid8j^Wv_z)F+frVgBlXCtddon)i zFo4n;PWSM(^<4&c2KJDEU~RJ!jG8DB-RWA{`GGvMp36{T_xsG42R(?ewQK{|YIl2X z>l0G%g&gm7PRhLBZq2lk8gy>jHJsok{+;o54#LWdO$Nc+%*cGT*kC9aBwEE@?>h}% z-w?(5CmPJKsPjizpT(e4EI7IGsZ|nn>tTqcq}4u7!R~b;%c;vHrzn&O&Q|%rm!KHv*^x-0#Ms5P^$g+au7PpNpv>4w&z`6QRg(*hKspJYr_L|_tz=EM)Z8WrKNQIj-A zkR{ZCDxTXf8?AHGUL)R^41Wwb&^`*p0m;g#Q3GII3@>7_;J``1nT2}Rro+~VId_r% zplYz|(sA;K%I+5|0rFrTE02Re)7;-U&S_ z+CFc=O5vgL1xj|t^I8v+Q)B@A->(4vShigu^{q(9A_au<6CgHIPy!0k5DHy^Xu7!6 zGKY-m00D9?eu(;UrLg3~oJ{ymcT|1k`O!sK`fdJjpv;{9YwoAl#E`lpZKz|ID3B@W zXwv1rCq0y1*`Qh^+MKf;ZReUjj7*S)KcYUvXn(%#Sd!++Qc~$ba)s)TOe#bz*dQes zEgtp>DXWjyfzjegSmTGE9Yla@fg+i(E~MeIOI z6HhVCwhHT&u#z{rBh(V`k~m&xvQqW2U^SFI8OD6fEn(ex+KN^fHBd!F>#nU2>h}Gd zdNFm+Vm0LOyeLmyQh!K97b(6eTaJx6%In1^_wok4adrMcwmt#p_qM)?7}dWJ(2-qx zmF;T0^T#42#DQ{(gm4{h!2|M43WSEKVFE-AA^BNa9!I4 zb`4tN{}@OHlEP)CM}?=K8a8GfB^k6O3wp*vnpSzOCD+wMHPJoWy`rR#8r@Kk$}M?} zK(AJ$ARtt{j1Qv*_VY^V5AGIgV+lIL^Au$=7zJ6zYmy@$^_#j5;SE!&&+kij$7)S7~u`lP(tGJvdkm4Qo4j_@1lP4!L> z0%Rdc+ZoA@g;L!JOGl(e@{vP>t}!s{xmj7q(6C|{wAkLt?K4RZ7|l{kZY8F9ikQGI zRqHAonx8m~*%q0MK>`=3{xP)!``p@hCUJx3oI3ghv7`+QD4I1|-Cl^Fwz3 zCM`qnAR+}`dt77Po&EbaBgHlR>mVC}ak?<#cwG(6gLL{@&Qk?=`eRbdp{2R`_q0`{ zgGTRg;Exi9pI~j^)pVK))CkW~ydPfDc2-W*;?y%;qr3|14_9}lx+7Lz49mLPJfM_> zBW6*!@W(YY(R!074P-GezZfQB!gqWHZV89alEXY@_`O58PJ8>$khXRW>vs!L_u>Ok z+RdTcRkGd%yT2gi-4`J3ra}v6QcJMi1E@@S-mZWE)mC!pS}>m{g{%B*ejg{~e%qR3 zw0CHBU(HcBF7jS4JSaUhuOC5K_*e$z;^xdnI73!Wj{+4HE;0_Ld1K&N1H-Pk%=R)S zAXKuh>dF>T%knaj3YyMaMfq8CTHQlbZ!;$``$(E)1O)V(Pj)0ypCvQ_Xw4tjjOPJw z$XpxnvJh)o2?wPZH9-57A}83{xe)=S!NG;h6Ys_ADAj~#8t&vd%F}vFch@~Fz1JA1 z)+aJYg;JG;SjaE$3TB_l$b8`1Dk)xdW)|s|K#rIhe-VdLYxhDXRzBK>bXQ^5ihzVGyrPyplxT3!HM~xouSHKRveCX(NjPI76j#rEIANo-bqkq=flNK+8N@L2zZ93PC_!8UcWXfA1|7qY;hpkO z+OboQ+h|mZ^ahBjp3k`=)rkIxvc3&zH80n6EP|-_o(Nrdn!*NpSNvFAs8kJ$BFplW8qA z@7C|uBgo1(p8{RZO;#71%FO4ujUf^3P_Z?b^}w3yOHJc?ULlU8e7-FJ7>9>tF8?9T zcWWgb;STHGN*KL)1&xqjH(%S14E4&l1znyy*|SSzP_c`Y;Xg+qe=i7@{87p2A*;F| zT-jhHxSUY)iz!egl)3m3R1?8G_*tUeWa6vkHWfyiWQMyzwN;JD>S<(!jaJKK%BS4N zyCyOF=uLj99-6!%j-39oGb!Qcw=-U6F?j7Hz?qE0l~XiL`>?V=;lY!o-MaHqbo$cz z5X$K3WGj{}QbkMXDKopHvZ1wW&mJu1bYH>G3kX;t+ll~i zetgiaa`P+^PlztOIe&K+~sm0Xy-6IJ1!lNx>rNydrKgAjhT&j&Po zziDNgI0o@ZiiU!3+gdRGI8{P&?@)xah?3P)KUB~ABX@eh z`L5PB4#G05FmE)Cdw2~8X1(xDE`J_N@CW}bXx_4zotk+wOgzbeQOht7Tpm{5VC)M& z)aSjFmFK-5yG+k2w+Pdcc2q7UV{SmmYf}um)5?GkNwG#q(@tWEH&+V$-qCdRa)QD2 z7-VS~)K`i=rd;A(KtEt5OMOc^;{e{MYYmD~Q?-<=Fo6_F{F{W-VhhyA>-tMA6b_y@ zDed~kK6)@)?rlz(E6t&Q=^e{J2Obp{C^)mOvyR>`u#BQ$@x z8g3(*XeQW#HURqiU$7x#e%c$KXQO%AUN()^*AZO-v&^B2YG>rL`B&VmwsH>DL=3uy z#T3Qx4$0f-GEx?-wWo>clel z49E%zc-^vg(iKE`9?^r(;|Q)*eswq)5u|o@HfhnM)X15w5{EH&e)kL{jT*a_8mm+0 ztRwO6UPL>Igv2coP}opC;z1UoW%{cDI_Ru(EsWRFbr(rBFM&=i=0JBF(a9tF|F5qr zkBfQz{?#2!vJ9z^R47{!WmJ?&S0OFe5}Hb(l$r{a&^A%IQgSU}EHRYOLerE=2G=f{ zq-93QR#`@&1zCRQ>3+Yj*Z2E-PG5hTKHKx0=Pd8@KIhQZayS_Wd@|LzY#h)@SQwqe z3I0HTm0(r#tqruXRss^vIcSV18W=V65Z!%S;?Li>NBsB(1{F(c0aQx)@k2n@=RmI( za1ag%wJwgNN4j{Kk$XOQZxtUp?-b3rBYNV3UqEOD2E|Bv8bsE+o%4W6w-*fR$5$a^ zqa+H~Wnh<|4nr3EA(>EeSl=CyH7M^ax57481sDu{b|xUW5ybL&rh@vqrvtD@L5s3k z!Od9T*d(y3qaSaGz){S9EQ>&-*ncXC7FUwnB#d}FUWXGeuJCy)3-OUXNS^p!&1h&e zHZ_`^7+BpO1g0DxSsH_&fXC?kLFyszJb7EHR zpS4pCV%NHW$>&;ac32RA7Ph#7CfT-Vi(5qftM$fXu}~|#4@7uRzCr2AhgeHQ>ka>d z%sqeYzxl9i=d-I8wAFVf*~#p_1qXW*KcbR<2A+3^;O536Y~c=oIcPen2w!EuJFkX8 z5_)+Abc314WzmyrU-1Ga8Y4^W$=tuKhk82MZdIxULMregxPRVivz(F3?us=lX+NBk zPL9gEA`S+(Gpbb-R4ojYX-XL)39<_bK4j+ePf5gj^7CtRD2%~)x=&P_?w9>$`J=yCM zy_T)2P_Hj$*gEh7N?~9^^SjXrCik?0kJC4ByDhG%8q!$U~deI0jhdw=+cjFJe1N_NVs?g3uVQxL+Sm{ zYa2(Xbmf|>pyntLZR<`7)-$eWa~IRNGZ-B}^5-yZa@g(V*oHQf5Py?+_@yTf_U~SP z{&nX7y?TtYmFZBXA;?@Gg#2hd9u80U((;4rYu*+>pxA7^b1&jSefJ^$!K21MrfOvG zX-+}s2(}q{y=lQ?3$V?EQ|&yo7~_yA4#tTs)(U?8MaSrna!8FmBTOv9YB?)33A^+2 z$#afA@(bw1mnr>0En^`Fo_) ze^`FGA+{RkMydZQQM++!3Vq6l6Nk4vl{bGdLi*PWSqP_i#?-=f+$A=ZkPJ4oy@s;E!M3US$EJn;yE?Y< z*ZX?uU#BdG^>O*}YftB2r)?K8hgOt%tU0*M$$@EZv_%%?^dBFYp6xdlQNytk4Sq&g z`@M;yP|c<;+A=(ji@lNt;M1=SWYy|-_z;|8Z*f#?Tc4LG8#*^4%#awY)nX25W;xLjH zg;`86>$kJig?soFVkk*xCK%6GvrhghP{6NQmyZeCX^_VIJmKam!hH?>rqD_KMn_m% zk(Hn^TjL_q93j2uoLB0PY`_2prn~wC4W7Q=HjzKKBue2h3R#3kITp zg!(G8g$^k9M`D_1_|V$EJljNU&Pl8!9}u&ZH!wQ87KmVH>3sR;=A`jq!znwf#IIv4 zoW~thdqK*UTQzQ_)s8i3YR}4vcOD(rro1@wKh(j$(l&?4xT>x*M~q9+#VsO(lE^t`abh8~MVISyya)`oxz>&Gg6U0YVE0^7#?_J<+XG758Xy ziCzXO{<4Re^^oVwuRcOJg3L(5(wJM;lqFpCwY!);G5lW((l1Cm=R}>%MJ!`aA*Y%{ z{>|5QbJhGi`X?1`q1Oyj!sB4oK3_;Z|GGo==@8bEhB>PL>1t`I9rw`a>*9h`-jWyL z5p&h)4`M!;ke4GB`vx4C8zVZh8a>BcHz6QK|9v(CcPV&nLI7y!t2SR_D zU-?&a>3HSKP<}yJyF<=xA0$frq7L2w6fb@Mx$jrPRJz(tuPs;&X53U*AK}jbr3m{?M2IN@+#z%m;5Mwgy}uTCC(K)?&uE0<|^@*kO3j1GnTdQKYkax zKkT07r-JWxm_GxU&|+z|hfvY}brfSr*75o*xasXl}{KyEj{2TNfR5&Fs zRnCNoO6<5T<2z7iWx~bQvk+NkwU7#eGNYTC4R207G_plj zoLM>y%-__^I=T@OfS8lXpz>n7u#~b(m#}XAIpnO|GF&U4cL~v6lD#k|BsoB&<5-Bm z@=AO{(Ap7brH##RP3Qy0v5WQNw1*}(z;z^ldwTX^9=e)25*x@oFGOvkIn40oei)j( zN6*Ug0k)UWI}%cKtDp^jiRN7PV7rLUj|kINk_r_zV5^*@`ew*{L#BwxQ~es+sRW*@ zHzO0)Ad2hy9NERbB3!3jj+}fJLeFuA@p%({-+jfVbD4~Di4%WNA96a_c9$V-8W&B4bqKnn33Hj9 zViJ|;^&UE3%Wv8wsw7QdJdpx&r=Gqs=U}IsAPOT zrfe<{M%A3~r8(?(QH{m)3p5Z#7kvEAb3_aJYO+M--`|ylQ`()s2Y@z3*@be=hK~hP zYCA8shR`WjWtCM^!PmZhiOr4JMoSC$jE-J%%OkqGLlluIh)9^6ftCAq=ZA2KTah32 z3d$;JectY3D}-tKI{$xDrVjo6(7$^Du=Gp{VG&o~5r1D|HNYlb{OPC9hQ%~alv zgz;4G5_si9*t8HbS+&dy0irWje~FV*X(b9R3y2iwO2ca=S$g^Qr~iVVEGf2=`|hEC zf&WPW6?|i#bhlH|>b!{u)SyXSY(ik4+Q6iV90t;Mpm%7n|923$thYPKHwN+}!< zDF6UEV=xCJ1;SuW6;PJGuf=QTnj(ApG$?GIpy7`$B*o2lP;soNJ}%@oRXbfmKp3yB zd_zC=3yv}Nhz>3yNO8xX!s@jpr(5V|F%A#BW-eNG2=oU#@6b=twNQImAuR z@e|0eKS89Zh-9LQe&>1~=XvBRK3Pzw7B;}klFyqb(5!qDq@qPjGt7Gc$4adE^CO}y zIE{Zv#HX??9Y2iE?#n|qQ?G()2IJ5#OxzSu8i)u(3s8i3QA%-M+2_|H96AXf_OsJ( zvTRU_81-N#0Cwm6dx!(_=prMqoA)zA5I0yEMqG1i{I}Uj7k<0&93xR!foF76EcMy7 zPXE0HI^dLmyqAygmPib@Y|C0Vo<0OXUIo+GkG(*fj{f1V`!bHCXJ>nSR)=j=)jT$aHC@;3sJsIDQgIu-%FvthiTpxsui(;fO;Dn`~e>2uDW@{>uj0md9!U zp}+F4Uj#(G_RUP1_QuzT9Z)m{+Gd)d1)roFaLusX%i4(Ta@X{$_Iua4$J6@qZ^+_2 z7y~kPPv-mexd*MRBoOMQEAq#0W+QK%50QJeku)PL^q_7-7_G!3UDLDt9$S7}>A8-U z{6jr6K2wdauDiUk2JvDVx05wx@J^;XHg?*0X3|FH&^$mq>T{&2#l2ymU|Ri|4te5e zYs)G$knVwj7S(;qX)EM5bj2fW9o|IAnZ`xb4)d9*rsy`ZhZRkX55@!KsY`g#*S0aLUl zEx$h$OTU;KK#nMAP=TF1;cvi4{=a_X6Yo=eIQ?&)?dpF&_CL@;j(sDj@=@OC$ev_q zvw~hF*#gw7EvEMLa)STPl(EP4MTF!i@v$Rb@o$eldV3S*%o?SiGIl^Yy-=Pe*NzxO z$1HlOB#X3y{drdFM-)&cnprWrl8xHmhoBmbtp}cr8W-27FgpA7|F500$|i6H9n09w zxvl4D^<{170ZhV*G@`y%JN9zhtUbC_*_mqy@He}ic?(`)8C@7g#lUr>I@kAF(u2A7BX=2 z4gCUguMTXG{SebD%!GP-U|fd<1Ss4Jlu_$51mXnlgw;##uvf1egoyt#*nsSkNW|ad zctJfRdy)@Ur=X?M&qiLnQJ%D<7X2)nioW#60Kzzgn94c7Buj?avC0u&1orcsjalH* z-%^nS0#W7)u6<2l_M~90{ho(wuxJzV#TDXL{#`*CVEW#c+_*`{R|C`_f*z>rJ%(Nl zWfg6bd&!94ZC`^Z1Ibx}kG%6Mj0tUbZ$kXtL#|-<_>Cto@MN>D#nX>2B?R^Fr~j~! za}N!oRWTq8z=>UBR#uSmaNFdfjkL1b%s8@3eCD)qVo>YRCl?WcG*ky~N=@s8eE#_D zA(+HA41sKP>(O%bVhwYq>_Q#;P1N&Cw6H?cy)vcK92+o6|xATnPie&m!sl zofz!_;@O;d*UBkLHpr4ClT^dKr=_^C&$p2u$;|SarGf=NoSwnCu({Tg}j@L>~d1XH9o(;p*C9|$_+psm>cXWlVCItdC|EQ-H1 zS==2JlVOECmifLvBw*_&h9kxwlK*;svxZ*6f?1$(^OWw=U5Q}+0&sE0>UYy}$s9nu z{MiAb$dTsN*p-ZE283?IE*3cJXp~-Ff_&?4<^_OyE+&r(M2v&73d!(yxfE3!d#Yc( zjI=xgq8BJrE8tu06NlLr?tOe1$-H_w5v8iRt7h~ZjX)TTQmXAv=Z_^m1Rn7+zB={9 zJwCFmO&X99`8*O)ipna%kef1|J;3`HpBWsJsE#Z=%;jDzZBk~g`n9HnCJpePk$SJl zzHu{T(av>;>4h%y1Q^5kNnn3j+0VjofLhs+@4Zy`~3?W}XLyoOoV5OBHFpoj7nY-35&YQ2KMuEx)0-wfRJjG05H(4f5p zM4{*EUT~jwj?NU)ALt7-DDD*h9=_YkWA1dXS|xs(ichlGL=kjSoaPoz2b8Ry`HSyI zDtrU$uN_-5g0^mYCb^uILgSHs8ppa^LtfK++)AYR?*LvOZr$gHY39g`G)W<0QW`jK z3pFiZM|6h|szHjs8;<~@JF?tchhBD*H1Lg#s@OGCTi4T9Taz}6-9s;(krjwf zDTL2nucg-+n5D&tk z{0VPWRNWM0{5s$!gdcjY_BwZleBFj)bh#a{(twds)O5l?)^s@%Wu%!xNY1VC;m(O{ zdjAkR??d@v$yX3r7Y9S5K%QdwK;3hJy!y{gHRg1ZI##k-?ScmH zolgP;N#czdi_7bGP}1Nvh9$ec4jg-1fN0=Y$rwN~C;Dt!j_AgsF_5(4_OJVJ@{psA zT*LM@@;6_y{O-TI1kDY`1%DVqZ3(nrov6AsEW-e;2? zf425XL)|k~S@HNko>%)!LqMZ+LY}=-^=kdVJ&wqRuK}MoDO;$paa+J0B1hJ2t4df! zwZI$kOO^PxkjnShw)%TI;*>)9w5sg-0B`y6ee}p@=;+&Xb`P#rYZVyOd9KE2M_$g5 zT3b>nZeEKWCkIfn^=SvCZ7I2JGh=>^_=I$qP~z8+fS_-nL+e@1%9_=kw3Y#C)c$lw zN%iw-2vF#?2u@`8u~XgKZaD=biE6$Dam%7lH%&Xe>1p4bzbIja?!d!DcON%|g(9Vm zuOQ@4a@HBh+7s;|e`PlXb0$wpWR^#cv(JeXE)TF?<2uUOLY-k)zV#tQdB&l;n>L5_ z%|5M>I1t(US>Ts1%@EtJr5%x2$wfdDN8hgue6CaDe?H}+FZZT5#KmhCS@s-ofvH)LL4zpoUeb#ss^op!s%JEry z>W~%8ApN=@)It#PR{I(P8kLTRH0Z%p#q&RftqUxVP_p5*9x@R!p9*Ig`t*&i<)ys5B?+l~v9dr6}w5~M^sC#>IK=k+Scz3Uin(~X`MW$%&w*hM>n?tlQ0mddLU^fVH zuo0w|Xa7f*>EB1T(U>UUYX4D)^7RUW$nojbs|Y3UODf=qz;o5z7(SA+*U)wdV*5Lf zKXu=qTKk$_NfyMNkUli_{5-t!8D}#RS+=SJST=r7^t0S|yJ!vYb0*)?PaerDe84lk z|L+g^kKN?g!FpF8r~vKQtDkA)x#U{)7nJTtQar3&s~2-@Zy!Qjtys=jNHVQXJL@XF zb(_X0l^{6}bm{Ra_v#WV79sY!0zxoj7#Hk>`LN90ssQC({OXIWnqCFrDMqv65>vu= z4nY3ET=VQ?8I-pe`SwLlWC~yuMwQhkQTNdu3MuMGWu}Fq$wiJmRJb&S$t?F_kA?YU zB=z3;N0RtT6IQs$8JcG&n1y-X{TOd&$c*lG_EIbcPkk8Ck%Le)B#Df-)zZ9ig2XYA zJFER^8Sx!j>k3sjyG+#o3_#L=A)cUgchx?;VS$~(?_)=1Pi9I|)vsJk`S zw|(8*ZvL5mG?NuE)DPO+bpE{u3eI~8Rr=Wo`WKEqGL1Ss$|~8Q`!;@b`y!ZAn2(07 z6(o5-!Bb6{`{jIUc9IXqh$AhbhFw&A9FC|X6GQMUHfjhKil@!UN8aBIZ2x@=Zhml` zXazW?7<8D;S+C>qNtF0gnw^40=i61X!ps(Z(9C^fpc86_;2j&mc{$Q;zf9~H?NAg+ ztpa~Cxj|y!^8t@ebo&G?FT0IpSjybIcsh#klv`Db^SRG%B1huOP6)uGUIjW~fXQM| zZ>Q&!-baA33$T3WeCn*XMI&StJ(Kv@UE+z+zFM@K&?Z-r12U{}^4HoO&wgGtr;`jy z{1{gV87$n@VmkKz%%79-i_Y*!o)MNqV!-p@LG?dB{CXvzgKg&bO)Bzg>8Ro#o6=s) zL9};cD^Lf^Uj)WF_fqqgDwOQ99*A6yr(JK$-|CM?#DK)kA16Lh9$nnHg=iP0MbhtGogva>nTtYC%~?cGBw zTvgd@#&fF$_Ov2cWDFkC;~AD6$&D}QmuetcQTb7aId2kr;ehz-DBhRW@4p<@OYIk+ zEu-0Q`NHJg7#cF3F=&#^>FC|1)X`B^Q3qt{pBk#d#2IylWm@i*ls%AW6THFbc6gzo zT>Bux<2bYel)48){5kvmwa9 zktwQGHgdyt0h6CjiAuz{O_5g!eNZA+t-D^Zx!={%H~S!Hi8;9I?7?%*-}z#tKMTR$ zJ(=kCycUUiO(p>({dSm6m?=^~#xa0Ub6H6s;%n={g}H?PR#iS5*_8u;Kd4_?W`Y$7 z933(tKosv>?Kf-9I&3EDGRQJ#+gf7}4I#?pByZ`vmX))xB9;p({WN%$h0E^sL*8jB ziO{Qk^R4A-h9!t4DAk07=DxDt%sQY0N6)_*9u|YVm^qB{7I&;(%d?hX6;EEC zgrw=&Z#fMWavF_6Im4_+S~u&Z5+KrYURYAG0rJZ3q(9A;z2Z_kdB?dH- z9ro*iji=~yYdscnUO$8z`1_-cPGOw}er+Opbkxa6EN>kU@P3D+G*{pQ#7kX6ywvWugMuMbkIpL+6@KcR729XaZj`!?7-t)`HA=-}AYK`WViGy-=kKDk@O!V4}pw=Gp zujZ3ykH8C7$MR?RmBha&aF-aanza$7$w1azJUnMX?Iay-ME?2`2m%VmN6)S>L*9|G z3tn<q z6p-}FpD!=`^)QFFeT`7mS1m11dt*?aIvlZ^6+-|eov9AI`uPKpr}v~UGI~p2fU{Bj z`|ZCU(7pnMy=S+xy}5~Z5FN!|LlQeWR@KvS$R9S`;f`j*OmF$1ecs55<$}hRzuSVz z5;Somz?=^cy85gXD*7D25Of&KIFB1NqCBRnS&n5vIi#p}Qk|t43S_E{x*#>=YiF9# z_Q1;*0;F@i(57xl0eyH%Cj#bIaxysuZDJsLkQ>2V>bT=axhs%^$gwz6=a!7*@XP_cGmGZF^y_R zF%3CDMGjqhodg9k-!BRey5p6kA4$Wpa-veJvgk+q4qE|T;cvHeKGCgzXo|&pL2z#0 znYQRFN`@nFfQ#BF2Cri+7dfxYc6hMwpJMBjKadX-LO)x(GY{y31|mIuc*nQ2#od{L zTz8vz-#d5$3C}bn($19rBIcqApdU-;3leubMW_|6rS8FZCLN_d)Qt=7tt$3^_ZxtA zAvs4dB|;d2&_=3v4E%$-eaYv6h*ZHzg-GqXc+ehw>UEV>NdES*fu*4@=A@)Rpk+C0 zAYy6sp!_yY>>|xL$6Hixgxt4Bt2;w9L76P~s*hRw-mTa&KocL}OaSDvNO9*L##1c;c97o@Z%47mM69z$Da$Vo=Cw?{ z@E%dId6U8G9c)|MTT_hwvg#CR#|`NQtfvPwI0Qei!sMKP`+}SH$PSH%7~9XhZA#Fr zH|yv~REZCg&Nko$VF608DljwzOIGINj#rO*EpZ<8WT9-DDdK>75f637x+M~^@^r+3 z_4*wWQI5*;orf)ulh0P^7a-y_X(OhN)8qOAS9N5=Oh{|@Qbr7=gpTjdzET{j7=Wxw zA@_=%Hin%srT|q;adB8qe3v*Z6k0L8almSWpc&gBH~XtUK6&UWQ@7_oVvZ7}xCs@e z4-l?Un}T$=y1GC#=bK^zV(DWgD+y92pRxn}bjdMkC+0T`b>;Q5+7Ct65=Mz&Juc&Aqy8JrAbp>BK_GJ@zbz#P?A zf_!?#NdAWk?pYzZUqtY#`fCa^EX8i9EIJ?BRH-3DsK&vvK z*d%OeZMdq`hQ5?6-oU!z?N#&(F5xPp4t@uMEnv4x4jq28A zVrGbO3##qbIAIBvh>3cB+wQKRd5|PF-=1E+#Qyg1a$0-#P|Ee4lMc(A^9)xBew2kE zb-&{Y^Q!HO^mWJQ<~Oz@yU@J22jsP&3&p(Y^Jy%#aeg}V1m;y%2k9Pri0S`Lq;yK0 zlw&2FGg8rcbbby^86dR|{bjHG?VT_^9zh0fRp^~t(0*p$F=V?u3CrBv@oDGc`*g}q zS!EVLxoXFRS=*Klev^Va+f)DPthlVAb0~U;Z9Tw@cpb{3I@xnzZnun$thCt5^u=<{ z#{pq`r>#dgzfr0jhQgl4IxN5@ZUGGtrUmH^p0+*L@rJJyW`{&OWyfy?NeKsYv#xKc6kf)HhX13DNWt#)UMT)et*gZ&)7SabmJ&g~i zrqM_6dok#>Tgj}^;?X}kX1(b7-v1^BM4pj|PAP)+igQbo%FL)wm*lDeHv1}Ix_H&q z5oP~+upy3$g?V16e(d*@^J)0}j4xt%wR8_{5NH+(qOS-cG9&vZonN=Aw| z#t}C9iW3U&z2bfD9`s;}bW`vTU#}Eqq=bie52VX{8;zj)!_a@${l{VS%UKd=^4kt+ zhv~7cBd`N^j^ioJE}Jd5e0tf8el$eSd_b}mgJc7|?OqyFJE_E15TfwSfJwFD$NqGJ zmXi)BJn!iMn}@DzOKD@SmuE{*A8*;&-Mqvj8OWmhs`$M1a~JZ$*;Agf=QPnHJz$qN z0V-AgD1sJnIEKD_y9(dAZ+sUFq(7~gK+uO~jMVkM$VMBHhQoj=sIDrXT+0Y9nHNTf zCM}C$Ox?vpyuIhkw--)H9)LIjJrn1qIjP0GTJLBwklr6=6|{2`q-OiR#Ciai14O8{ z#O~#$X`4eo$D1MKt%`hNs%__i=zVBP>HNON1YwiEgxU~AM2r=^27vvN1W)*=W%rx9 zFl$%@W#A|WyjakqmfOA z(S+bpo-@!gX-n+?o#4Y_(a)p-3MOL&2*brzanvHKe2tY7z72dC+)t zx&v{Y&eYyomo}g;(rODz(Ej4oqt0-^&L;$(Jdh=H zcJ=&kQ{VG0D>UwC@Xi|_MV}5KOu$fo5h+g&3l%@zX!{9`_@GVQXH(>sA#qSx z#`rxA`H5JVM%Hokyo^$Z_G}Lvu_h1d1Y1ai_H6CQJvohsz)(BZhA;YqzLx)?Plk7Hww>^xeCIw2|7u+oX!XG zCSLy-Y$(uwC5-YLZh*-Ab{KJbzH9KAAauJ$jDt1;|I@~%&Gfr7jbK*o0>Pf)DhI2-PkmGhp)htfDG9Z|~kjXj=Tu#Nbpac{4U5EVFS}#ZZ zLjQ^hMtiupzUkVLETM*JB4Tol7#k}zXU-kIiTzckau55?TtcaFt2YSD%{z+d;5^bg zKQ;GmZS~GkNIthh^N_2kKpub!J?W?B?JwT2MZ8cOdpVXLsgIcEzfU})=qN2cdMWQaylSNb1w|^W=%@loKBHR7n@O{&`1vI7 zG<+`m{KaFA@3zt}V5JJFh2wU-3-nJ6CurYvY{1)%^iNSlaI7C_4}2uQ!Kk#3>1#(D zu(ljYXtKCOXGlYzCv>cp?#!Paw)9qY^Hj-MTIiezRrn}->%9(lq@Ms-KIoJ0-O>@q z4iJZZJ#T`oA+OIZZ|buk z5kxv6hspekc4rB}L5XSVA>9!Z-N?pr+#T0^_$2)f(KH`=A>_psNBuP$Sy^#3Si^dzp zCYjjyLnZz}$UClGZ#)?@TNirH=#IeWhksrWhapL8CB6o@1L8^vCJ77~_;K1b>$n%B z)n&1o^b#>(Cg~*E_x|)IGmq*)(&0(q_>f|{DHkV~IR1Ypv-+yc+SB=MmPrsLhWwd* zK8=LR>4yDP^w8||0HSf{$;9RrGY(#(SBZ;HTST*SyA7G4GGEVx$)QprtuLHXl zS9exTd~(@Jrwt8|c1bRra?Ep`wh_T(dd9@RtPD)bw!f`j{>~54Zm>>^rG`u1eM|Ie zqrb6dm|fKMmT!l?O&b{304|ePeHt zm*jk-g&@?>`^h(|@(|f&u|!`7(!0qrw}DmlO*yXjW+=Ta9;AiHhM5dOO8Ad8 zCJ~gh@L$4yCs_zm6-B3x)0fw)0l54?SMl?<5|S1wl9>6;iq=7}5N4=x>UOb9g*ft% zbFtY5#1D`xhPMXP!*_kh7v7c;_Q(gf8-ouv=7#WyxWjmDJNTC+FxA{mn(>$7z=2K3x49Bc^|_!Yy4X5xJhnWOV0lLGnTFCjr%}7Nq+(r`k*6&O_dIPgQ5JmYe!O%c32rNu7;nS}1mv2yZL|hHvgMsgyryTbT%hnY#2oSRM@HgrDB^b&ZY6QAW-`O-k^l}yd zB(0-L37`ROn3HP$4h~i;p<@e}^}6M)-zeUUz<1ZL=^^h|N}!s&5px?@`a5_kg@rC* zv?ti&td}d*yivf)i?2K7ySuZ?!DKakfD0L5a4!`Uj>7KX?qv}s+Qhnnh+oL>dX73) zl}mJ~TS5qUDK_1B2?kR%76BwvbPQ1yFv+OD?0S&!`Q?bEgQvJzV0LXYfiP}}x8(Uw zt!#+VyG7%1d5&P4x>B>^=S&NcSFfCmz1&}b@h-m8xo2G8pa|q#uxiJ`!RQRFL|Q5- z@v|h;{Y=9`C%vM93MKwPmHX+u>0zN|7S|IduSYPJbX&epMYVpMJ}nbq-2iQk|Ad3* zZiL-Bg?s-lHlCKW`EYezJvn!A?$_?LnvIB0!6_sHWwqEeOe9~Gz^5Poe&`(=?yf3E zKuNn9ElPTAq?bV#3DUn$K-O%OCb$fVx#=|d5oCL&jX+nK#s&E5fY*-KL;OS~aG|Xd zjO}lj{@^2v7%TB4<6MIhSexh7Zc|kt#{+;FdDK~7HD@#vkwQ|QFRG+#w4_LdH>VYn zFxr`WoPOVb+0ncdG4pw2Ogx0VGpGZ}EF~phPr^?=C`V!k;5HT1~I>O*Zt0EfIspn%4&00T0tZwE(`}*lzI5oZ}#X&KQzO*9j8GbO@)&epf zbNvNqkLMDS8O`xE<%brg4?p-|^-&K2r{2(qGsL1i}Yy;1W!#~^t)VPxI*rfiD8aoNTKyD_NueIpJk!#2z&(n zBteCu^NC0B&i3_&XI<<9Kq%fw>W`P*eL$+p+uQpqN8MT-*s8w z%g?U{hgcw6Z^eXDxOI5;G~~6Q&9( zRW(JpO}PLObrvH-gSQCL>MV28fb;JRtocor#K=#OD`m&bQM^Y?Av8+y(iD}~_zAAw z#z;*ZNBH^45p(o62WU$(6jhLYA^F#LoFnqCB9eF&&z>(IUHd(~PZQkclb*%gpb=&B1(4>*PUMY``s+R-T}62?#(m0cJ6rln zy|xXoXt)22qQ3@$^*Hh950{V=80ijY%=`Xt^3jn`W&P+Uy00MJ2amCCHOKc0@I#i; znlx{|c-nELJoBgr5(~djfw(GZaCIBK7EAyb`tY8=%}9y9R~tqvbxYPiD9`kk)Uqw~ ztFiPdh91h1R#BO4BlFNgks1q zX0@BwL)s9q&H}2-9>FcYjX3}UIJZ6FU#Y5`ebOIURIe$ZQk&M5BASciMW(U5_!ek; zqR2(Q>DkvN=A-6P#C_#>0q!neb7=a=pFfzcK ziz^7I_r#F*iNu#&bv!$|J+tiSBgAiSGbZTn2DdF8#=o^;sMGg8aEnf@vfZtS=g`On zZ_&3|8hjau8{_p{#iy(aFDdBJs{;I zS7RI^f1@-HKNw_Kuu}Le;$7rA`q!)D2=3{ys(dr{yTh#) z0f<)oG6OnaUA1dP`pM^vt6<8O7J0n!)kX$HHxs-6LNqL^&Zm7-RSw-uB*cf{aE*$4 zGoRJcw&tO_AA{E%l{%R|xvZi~5CQ;O>p*bXMf&HX(SBifa49Vf;|Zw92z-)SzO-`RQG}t{_yW=d*+=p{BHI!W)DZ}pK*G5_ zL#DZ0KE}(ao>IdI84r%j3c++0fKdlcyD)^{kUy+ba6KL5ykRJ&+FWRA26#O+Ldg>C9WM z=d4pO_`0VhhN}#Nc_}YKI5{iH+$f_|2=BGW=Hm}R({(TJgTL!P5Y{4yv-%cMg2Ga~s8+p-?xN_DJFH9ECs;&@b zXS~38vd2J1wAEzcolj6qKL!eizYjws@Ti`Nnyg8l^6=S-wm+vJj%{O{N`AT`Zmb#B z;$V&*gg`EZ2iMp1+~SvH=BFXZhn2Z-=E=1h%vRBrB#k7sS)L<|X}$Huj=uDnLHa30 z$%nLHy4_QoJs?%=DV4taq;s|kB8{o-;9n)_$qgU;zRXDoiuobvj;8O=_?ar%__k$u z@sE>J-<(H||Ce`w4=ZwG);yybp|KL(VNk_#bLzUi;yDp}A`R$Qn92fV@zDrw^s!Zu z*IXj!QGcPVa&(2}D~auyDBR~Sd{mA) z+KmUmx-GqQr8n$ksA!pB;)e5=%#mUkFT=b6vPJsGhHRmCh?8y%8_*oWn;vgg`VrCj zz+TO};1|#lf_Ugkd{V~%rhM)LTt5tj+GpMJfsQ)m!#t6Vi_mw86Bn@s{l!|YPM8YN zm~X>vP_pSGKer!C%X;=*3Ec2`J97y} z9fsj-P$)IA6xn(RJDhc_qE#`Mo_OUAYW!Zp;-w;;)sK;~Itdx()zOBnGnrp`bD;f= z@6tAtJ!TfzTqejZUOHu*5i~0&op!VVhAA8-N`4Z^K{P1XaPZ;<|qsK^$UKv0o!oa3J_@^ zIW5z}QpbTqR=A2(>%~R>NaGN%G0I$-})RyA{kC&I5dO}tNX5rd{<9av}h=IMj)JZZm}f|Mud({%}lX26zJ`KIWsJD ze;Z9sjFn6Vd0u8KUS5xpRbdDpxC3XlXY8_m89@^tIbP@CBn=bsURNT*!}0KPmAVGM zqC1y>ROCW;r`)KcNUWbnu+%!A(0xY`tH$sJo5~BX#-J(&oA}y+?DaRKj$R{?quB$^ zc=rm;EUa+l#`d zV@)P!LaHmc@eRVq^%}+!B@g{c?<*^U)INC!|IwXPcJl0G>UB9?;ItI~Qbqi3b8_W* zLCW!usyT?_O#clcQ=O-4ZRrfmmr`&{o03Gs#Mz^jl=>}N@Vm{@m3fNKpR8&0qH!^( zxyhH^wj8jth>6L%sEy6PcucZcdGqCCjjF6omP>EpUuzJ1PfU^P=EHVUvE4V9P5{Ts4apcKqk`Ngt$;T_az2QDaaCjl$D;& zK3W&Oz!-VO_VJLqf4f&UJL28oJ3Em-2pn?9MlheJmc~Z>w;odPY_87jKM>c7OZ;i` z;Pz={wK5N^{D=`pxGriwyv^$Ke;Cmc&m0BBW6gEX#y& z^(VM%pV;>}uCO=8EdX@mcP7lyUw*!C(BvyRG@_-)(d+*zOStD^gzhhfUW zm_JJNI*?Z>j1H~*8zbB?f`EFO`PBe(;GGGsHIBFCZA-5Ob-<5F6V9Z|36xdFtHRr5 z>^VN}?Q~j%J^C8~jc&Vb1XdQMm$%Yugebm}{hB9GoJr+nr#?JCRw84m#Y*V?v zOWc){NrTNw{3+lpcr=7>rx(+l$aeW=n?qOUbiYJO4`U@WNTu0~zCOd~k6}c+LF&!+ zx$KHtsc*ORM47%d9jZ3Y0t<8SrN}*GL{wA8v2=(g+O$V#(NqdemNfRYICj;@l4(z>QBekm zY%MBj(;`fZHVG;G@3-^)dG5*if3NF%UC!Gx&-*<0b3ga;xtI5_wUxz4nej4WVqzng z{k3?tnAkA7nAiw0sp0TMNqniEn3#mB&!R=vn-*Ct3h)aEvI$)4xxr$C|ArtR&(#)x ziiyoXe%#L0Tg^_<{C2RH)*nSSeslJ3iC-{s%E(jpb1rA*?tcB+$p7pzqw2}c>pyoC zoqtj^-|+VL%giO#J7={X>JK-D}-^^m^L`Q^N~B zx#@KqI(GKNbaHoeU+IeSu3T=`UypT zD`-Yc*^n&f`bGD5xL3V={o_)~t)=QpnwuxC%Xl9zdni)8i)Z(2oA~x`Cnqjwb<+5} zuKCt1#y>N*XE%DjdJt?LcHC#<+v#u04oTYC_#QeZANl;@*QIj(vu;$l$FB5kOKg63 zWnI+P*Rkn=oojzwV%_uJ-@|&qE52~ad|&5UmwvsuQ-qDH{;^E_`_j?@sW+QgyZCAi zHD{wvj#)7LL~Y&0wCiI!7rP|aj7ZGCbS)+8$fPjgKBJ!LZ}blp&l5hixmTH#c0*8n(OrOqp5`8aIW*k?t-9xmJRo#@LlWNi_dn1E*|)HC-kq+yMitmx3}zU?%8)% zf5brCxzl@<{@HtI_vNJvKMUXdNUvQkKTOqk{JUkl4gS75%6UeUE9-i5v89~Kyz+^b z%5C2`t7CsI&Nvzrp5{0_Y1Ogg%xe9d*0#P?4~tZGUfQ|eD2cN>e`JQVq|W)72lHfB zt{FCFy$)k|y>g{@!roECXDg;CsvdE_yisL>P(c4^l6j%;QoE_J zzVlnF{aJ6o_gcg5w+`L6f(o3T-@dux!3V!J!6A0zS;L!@yIx#) zc=(}u&*tv84x^WboqcjanD)t)?igS&YH9L0$#1@W_NrFL7bkz(`{`ij^gQidI^Q4V z74CYvt8iD*u6wSulcvvNn(`YB0w)H$Kl<$3Gv29whjQq+TV5?^HzhBhq~)iip&WGI zsBzWW*&ns#q&)vzRmnM<($=qhX$IF!eU#_K_q=|Wd;@#&!~N;BPb+`e+1a)Po}Q*| zAFy(M{z8Rge=J&m?6i^Xmu!cg%ahMA->vqMw=uO*NJuYVIQn45^=+{%TK|Ch%LMvqu`%S`;+MiwfCSeBkzH$Kfs_w2>i=0ox04m@5F;cauUn&mV>va{|}Jo&+*3dK*G}1n@-H7g z-~Be59rnGvrS_lTWTAd|);!agyY-!0D$E%_lf=A^?-q}}w9{^wi)<&z3hBVV9D~Kg zl&4Vt7hksek1jDWnxv2Ink{Qqt}yWoU>U4kAFytN0h<*Fqs7GNY!mn=Yr~ecnrxPz zf3OMLZ1Ug;6Zkjvc*bPS!692VnN41^(pqy-K+p!wxdw9#W==Mj(bUwW2d&>|vU>5- z|NR{P%WSgumMwuMGiHQ@gcyVv8UzG+&6s6uY&>J;>>0CX>%$2B;86c9YuWn#!CL=L z@_+Lz-Vp2=*&;ECe}Xe4StS`eOMd(gJEgrvt}9_(Ffo2+n>lv z(NEWqpBl}dkAI2&f__OY#e^B;vjM0?(ZYNdea3Ik{x_aJgCZ0n+`p$X_!N%CT!ud5 z*Abh`H1GE3iHR}9mMvar%NGCedSOu1?Xeox-$N!=Ez#|Nta&PVvR<*~1G#_1UQd-< zefn+NIZny0oo!DPr`-M4KWD1@TrszwJ-Y|K)U&O0YEc_ub zmm$HO_aLUMzqwEP|K^aAXHPo8(GJt>z0=jLjAkDpySO3ecyiOlJ$r9Azrf?ColxNJ zsLuKM{i8$PGW^yIiOF5h3;ohB7pC$va)mzVM_*S9&hlr34xFIY{l7(?lGM1B8RK%; zOZ(sL3_cc|V)*+^@Cx}D%vO67`mtO8*LZQ-2-&y$3aVoEI*Y95>k7@{u49+#-c-|` z2n}^Q70`~k3@i4V9F~`9+Ai*S^y)N;k8;K1KAdmg`S7h5A*fWe&W)Aq#ax96%@^?E zT|8vzmwx_zi4aYb(Xf~!M~~=?t~4!PL5LujM;pW5Sa&is|Kvx{|Jx~SAwuD?py_MT z=HopA^tzohp(GKtlJ|ScZ21cPj2&L9H93Dou>W(fmVlGFkz9hA{;Ys|dVD5rGi?D-) zP~tRg_=&2c_M*sX#nLN#j-ka5T!7^a*sT>7KOVr0!;^Ze%I(ffojyNq1NRh}i?cxK zv2Y%O`iiF4b-we?@Q(&)0-Rg3kZDDp3wX590|jAxCTD;= zqy`7wH>4FS@z{S{3U+RJf_RUu{8*Y9w(G}*PV`VSFq5%3re@rS+DFH{ib4k_krN7M zC~;VPPgCbJ*Aw@m?JFJ<7zX$pt%`W=>58s_^5Qsd6g)>f(Dm-%Br-{2Ch@2S;=vczw*-?+)a8a7t;a?2cQj>VF!z-hA_~C>kVt zGu#@uj4h=BTgf?lPw8SG;MuhtLFX8o3sR-_FW0={R;^#VD_O0nP3LE3`Q=|h>ry!+ zICU#?nc2&z6m!D!uO))+E8NP+xsu}C^O775%sZSLKU+wDDQiCwal$SMzQFLP(Yuzi z?Pti!;z4$JJ&LxhOsHomk;mRsVHZZ*GIDOlIttIA$vKSS8m3j_Go20-{`e-Htk2p= z|9&xT9a-H=U=Q0Ft9OxMQlAvrGIXntpIn9~PW`oGYa7j5na87>#xVpr!%dHF9y%axN`G$-iDt_E6MR?3ixp;TVjq7 zA~Rwy!?VI;ytO~i5TP5J2`b~ZyOVXU?ZYud_?N8Iq%rI4JnomJ^tF=Xvv&26)KJN^ z3&{FL4*!z^$dy&M9+#zk*F`&Y2DzUlYp0G5!2xj>x5 zb1$|-D?ARD*2VJm^)?x@kdnok!-}7pv@JRH@eER^ow-g-A!K2Zr4 zAAN3*RV0@-HdbKNm>!ejvHQ$oLboh<=+hp{CPykEBjd*@*v8-U-EQo!y>KdM&JDkf zqm+J=sa2Qaht$6bedeglZ1l+&J57v?*qgvl1tGd$*02bpRLiVyNWYZQPP3j*Uh|YT zm44=Sk`Y->p=9*$vq^A6Eu$8YxuoRdft9s8r=QrKIM>09{2^C1SrD9;lbF)K&UyiP zjV~=Hj%B;`Xr#v6cL^09y+o2UPlqe2i zB;3h}jbLy=0kv+iokI2|H61R`F+uRdgWUt%-sJkOJ-@gL{&7&|?LLbl=-ADPE-#O>p5wRLHIazV- zv0k6!(Ng5UYQgBHQd&>Uf{!09(O=a5fD?-q_KJ@7{P&d$hW8vrW23de9Q~@s?Vj?( zT-azf?brFjKk_Nt;@GUny>xfSK2`LWgVJyJY43^XE?S${lZ__Zsda)QjB*#D&A&z= zXzg^4hyhV7xq@wet6Kq4Ym|ySdsIMd0oK>Sp!9okX%5OeBi?GGS4B@d!Lg_|&e*}d zNY0ou1B7pOYJ;WLfISrBmiUG`qCGy9cpg(aTr=igyLg? zLQ_oN!)W1SgYDkvFK)oLIZupdY`%kJj-U$oUUhDEeEWx`+qa|9=D=~Ofl`L zrlk=|SPtp`D;o+Y$olyty>xv^B%HUw2`~1ez=9LJzU9{DzZS&V1BT^SIqsgd#?)ap-ed%D$OA)&}cS#Y$Lwr&ns*z+!SCz&}5wA1=! z!S_9%+9c&Al3QNl4EFK^&4Z>(>3Qe&wvr274wszyR&6cMev{oIa!CiR*JKGYG1xS~ zVbj)J#=JOaCvDmk8;Hgok@0h`j&7V*?YTk3ppw)W5n7!}+mG&mF0jRmN4iH5*>ByF zqfeT}&s6=mMuF^BN^vYG%-de-1#Fot`)TM8Km`wS@|uj;vmm35D`(Xvyj+8BtY%l6 zTyg&{%L!x9N?}&myNmtIyV+T>)&XaT+Y_4y#)9S;*5L#(k+iMPsbe4T;v}P??kjWru^xAJWQ@9~^8`;`iNf2384tC@KG-m>1xOm=a zdP-}<(!iG%si4tco!E;_J||f^w{g~cpS*GSvRxE3?c+IZZNC9!`;-14i%J1q`#e6l?+z`22co0*U#ONiH4szkr{g3ENYLcguHJC|i42xXGEVhgFB@dTS z4!Y;fCa2ab>h=U$;XI;fv!i^Z)Se7|I(H4a=O(fMA;mVyF@^i_0V`2h z-V?ggj^wFiA1v6%`l6HDhTgIpw8(6m%m+^=|1xn()=(H;W>fy2M@ftpOtrVF8a_Pl z9cK{J-U`=e<@Ki_J0(t%ug`i!k26h~Pu@OKlFQGOHXHdW{BI&%PAgFwJxaFrr9Hn) zhFHrb)|4}QKcI(e6v}HHYd!myAmrqN;4Rl*wSlZkYKzh#K~M4d4{rktRJp0L3tyAJ z>4MJab3Jdyx~qSO?2pl~Wzf*!%`596N2l4PbEBxM^7&_}CR4I*i6Rw1GlVKvY3P~M z2O6z7wGkT|aS|Y(SKCcPx=x(72&C$$t~GLGK~joBX za8ttCy*91MM`s})KmCMr^`jRtmaPf3URh)YZ$OweLXn-Q~Wk7K ztybkcFH8RZ6b*K6nAKIDYPXdPl$t|1d3h5$=Cs`oBJawS2m8pFd32-R-$YQ%;~X;S z3F1dF-?UWh=p|&-nc=~=$$uz=xWfTZjBf)my;sr>Jtecs>u6DC`O=tqt8bsnUE!rf zbXm9{N}r`H{)>p>v<-l|Cf|$DXKgS|nMp_v7kDaNuW!yZbQ{HKF98kH`e3^$75VL3 zD3j^ZgR+=EzoY%yD!@H@x!eZFOkPV$a69xEXqb$w6n%eG(j4;M*ODLQB5UGrrw!{R zcU5N^NW`Fp&QIR!BCIO}1ghtKt)4CJGOg$$F+EHlc)C01eNH??Xc_?StD)TN4k@$$ zFnB(AMY;R=CB1Y*HbS#Lm?ND(l8C>=@Bt}uI@M+~+T|R|)w2lk^V(FodkR`FWpldP z-Ecdd>L@aN43KIf-J~>P67v*akKpr+(Xf{<$)5MiuC^tj^IZ&*d2zbu9r(kw_NV9% zi+~*^z)aQ9cbM|)FgfPH(HqMTX9p{6|CZ?%M;6*DOK16H@KVB_+5Pp)tc#5V>u8hQ zw#6~#D;{)#DGP6(K?^%ag`ws~b$;@_gKqa0`9lKF z?6S)*eGws;ARqH?-;8x{!;oJ-fW#j+efLGX4QJ?4_i7-*ke>1_bq(P-eF^)9F`-VM zoRM&H0+G?@bu473GBYV(?=0aXS-Vnng<#C4ixi1YUx>iy|Nn-yAU7*_hny9SyYQid{D8HR@^jtr^T;R3m4;*!3>Q!M<8%^M3Is^_$sU|McH4ve4*6 zva3p;6qW_PI*~g*3%!?!e2R&qQ3p7d;bb^5yELt}cAK>}f!} zzaK`SXSVWz2Y7#~y!>UTGr|Ry6gub0_HSCS8!@$}^)evE@+ArTe@QC%hYj$H(nNY| znS}^ARi|KxI#YPsoiemFV^7H(KcB|#h2}v6pyst65vL?_R0$T^e4W=rY^Db zfS5>BwP=WO3S>Tflw-z~mLrRU5yIga(l-S-ho~Txu4&Bx+oigY@204;QX1`gi^>}3 zYTBEP_se!IjKB12KMZQ_b^KG87)}Z1S?GqAtfBP1sdLlT*e&Gjrbya1OmmF6f{5g; z4+gK=Yo9zR?8hd8$8FJ?P`!RDIihA=FgJFo)sG3uH4xuQST|k|Y=YNyiO0yQcEEYG zD~X}?Sg!`v93~aHi#5eLS%<7>7lr8Tc;8}qIfy)zNTg(4%2n(}d%*c@UQ$Er7L_Wh z?B}7s#VZb(bT&CJ;%;~&`Rf$LX-g>Q{^YjzD(Sqx+|M8cQ2^?|(9NakZr{s^Xbn=f zV=ApW&v)4RB$^<4QTOqD#~MX+HUJL^6dVio4S|P1zH`uP#5hj>I_yJ0B+8_ijx~!e z0Nh@GXk6y4+wl^G&~8zo$9el&(UptW9=wR#W9-JDjRt`I{^i!Z3kAMNj>KLB-QO{x zM(u4vg?leK7&!h_LX9oQLY-y|e~8W$;#^+uW1@Bd>S1q2_F4@J{nXemtC%}f5SAmQ z2udqBCB?6838(Zlx|qP^a`Z)$u0}{RzervVBh)>rh+EV`GZ^d2t%=>C?EEq z!<%kILCvl|0IG0t>3Z9Qb(883qZ8bVfva5wM7Z>s{0=dacFPoTwn zs^yg6PMvDO+|q;qvejT<=~Na@)r?p$5e zd07UH`?^?@7I|C7{6)7BI(7?Koa$lW_@8|Uq7>sSAB;i1y~1D4vXe!_K@5(TAqOHM zWveL9*4<{e676>%XgSsXs_2IF$>{a*Qyb)%SrLgSCxXE(sU%vlkld_)Dkuv{LboPVl*{EJm~L&k0n^SU4s0v*GtEw#Tk zZUY*}@SvQofb1I{2fJ|ut4Fe8pGB?l-3z+tMl`GfeMSEv2tn_cpYI9*`mne0qt(sw zE^vvQ72{ZNSob|`YP61b;@!DIG@f_v4Yo}IL4mtdwC#C_##(Hk3i=>|;-yx^l zqe!U70%Z7NuEn@|B5O4R^MUq`{Z-FHivkkx;b+Sx8`8TUv8G(=FaAz46F}8^f^a_^ zAAF%pt!CM15|9rUi~ve02NXZ{yx+6%@dUJ8H9d%vtlBGHoPPXM1A0z{%z{Uo45v@r ze+My>Af577Qupj=HRdbhH&A@8#HQTH(Iz5MGjGrXcV~EI@YEX)2fQ2<6kCVDPI8>eUC>(=&|iiX;?_#Xtydg5IKYWuO)W)TnIG<=teexyj|E!or~Pqu&laV}`YhKZ2W)P~!5MDe!`pI6 ziMTd{xhQAP=wXij2&&}5h)}in)9N=P@5=iRIMAGg!bkk2c@Db2Zae2A99$6JGuI}+ z2IC|vAnl|qW@C&4N%G0Qf!xEUMfl=HZ@}ysKmca zM}A9LOb#Uc9m1FD{^a{qyQIE?$srzju>YtB@8!$2R)}XcQv8!oG}n~_~3Ok zsrusSloe!N2@|Qx(u&K^u(N9msK0FWMZS9#VFF(Y8uL|2G(kW82BC?9hvna^acWW4 zzmRNJO$r*C2X0*P^xCz*fs0e=S^Y_9U<$ZL5(~oyyf=+R+EdedImm^$*41*qjsX5q zC!ui^`>QwM3^y-wt}@U=mJ{U!tPsD zgCIJ3gE0Bc*Xv9H)A|qe>NQk4sn=46 zBzN7IN>A1Et_Xcc93*ee8#Lx#C&WA93`4kW=en&j_V1`JQb)8Xg6O?P z^KTjr>;h&(=wgwD&IRy!TxWUnb!=*|!C*Vp`Ip&mSq^e^bM~jNOLZ}$M#2^K_ssUp z?-?VSa-lz%nVjL=(n2n-JX?8<0(XE@(j)hF2VOC_p9&W2D+lV+iu9j|c)ps0ipy|x z&sU^u#5j|wjDsVpCxx>crS`vtNW$M?5Vpgml#|56%FA^zzxg=dYPVZ~trYN}!%q;y$r zvP0Sj{B)&YIrb1N2UvN>LcPA)`YtT~C5kAW&^_?TRLFmUY1Fm6VY6jTQhk>OVoixr zO5nL1FinptJRvMG+U|$Q?Iu0{!EdlvB`tD-?D8$PW6*V&4gx3n%N=AGg)^k#+4Eua zQQfDT6S3tdMLq9iZOSk}Hc&jE>e^nW_pM_1B54)Vy5=-;5FIEj3MgDiK3)E@cR&=pv^^li@+3vLQ-Cf=+9^ z*lJDFDqW`#QRi&{#%zxyP7gQ(c>L4Xb`yS4nlqT5GDf4|xBL_Us(g4Jn^2}>I0YU{ zaGxC$^}f!7_ci;oqTWhur$C4xzQ(}v?Z2cESEytM-vVwEx0!pQw?HsgQMMx1sW;x@%%*$+puM)k~blU+^# zO=~N_rjnogaD&wC<$wJG;^|Z-loxw^8ZC~v<2nGn@Vr@Qsf^ehILyi?pZl9EqM~%L zr!pCIjn{PzFZPj7cB<&6%YiT2Ih~x4yrwl1AX59Z`68U=%xGwNz56A4x&94EYH{Vg zK|l4@(d?Szmy05&TOf#&VQ`H*LlpZO!vW@UPB@w=vXm82zTkP^6Z?49e*y4i)_lH8 z(Klr^dJ~x0$00=c+GeyO5^qxF5F%tg;*M9so&qF?fzWOck!1^E*V{6b{8DgE&dkR2 z;piPYlpjQ;PED)vL1vIQ#jGLan`dl&FgF%qx*GsTS1`7yoK~{|kJg2xg-yD#SPDOt z0Wo9|GBhCtOj8p>l!Y$Fq0%-!eu|jId^kLbTnorsha}53DYKY!oNA(C%M~Fr{3<`X zGdm$=W0W0AL*P+PV^&QCUk3~H1~w(PTL9bcR=4{F(!oD0f!(7s7d-oTBH~vUN;6Nt9;TaoXjIr@uJF^S$~K z9plx(m{)`>qmW!*U9dNKK^J^cm?!os$h-75UlJB5Sa3Lx;Wr7xDJlcx9vFOP=`X7=_BJHHjbP^viAQ_f zx4D^ega}lI2LN|ol;=KOmb_Y`RSKReziZuNl42)~j*)`VgthzBldx^J4m87u^?DWd z?-0^66EsofBRC~Vu9VqSv;Ro=>D6i<*PH1og)>W5fxNl+Az4LflO0YmECdOX z{G@36i(?CO2=xISqmpz!u3+mLIUI&RZD;>0cu>l0yK?TN1s%~Au&Yk0irZ<5Fwpb^OCuElQrjo)g z&8nPLiKLyR7&4$d6y0}^AH)5=18Dv3yv6SuD9WvHh@7EkuqDjR* zp5K0y_r-`!0jc#YjL(;4G?L@drSM&)>O%XRLL>xA1}mO2gB3!zr;6Dj0zf*vcAIlZ zmXd*k51B-23uGn~*OqVebmqNJIz#wvE0qay!1Rh$uYFP^dAtBnPs1Z$?p^(EAAW?; zokG8QG|nkMpB4F!P4=thL@1S5{U6?&v%mskhPqq>vZmxnlQ zCT|}Pa*wyRcR3*dBQ_JHdaa9fZrKquqcs?){LHx@?jlp_v@&Fmw3r|WFr2Xn=n-sK z!y5Rq4K7&Yc$9y{xd|3{PUptk9W$O*B%x#_iSg3O(##6K`(;Dn637||0!zCuLXQ+b zGpNd!s~)R(t6rhJmDs~n(ut4P$k2<5sThZArQ+qY3)w@H%3$9Pjfq46F=F$>1vYmJ zbdgnV4_c~b`+mZ$ke~*6r1ajXlt0NOd`-oOeyDN%-z5>mNR0E85)Ws}Q{z%=H)av> z+B^*)r_(cfKeybibrazc((3J2z-H%s5H}h{sYe?Siw@}Vz*UF zsz@n=JOtGiBf@A}TS9<+E^z4%S>Knu@#H)u#>>Jr&+fxckSmp=p~>vsh=tBP;PuqF zj*4w4%ddG7U`^3)T3!U%VXX%RBHCS_d~og+NVutV$X@il<3t437J0xv^jYfTQX#Rpgghh(qOSaiWa_CV_vP(LsByoa=P?&=eA6%4@4+@ zGgT_)v{(Hw&!z`YP1Vw_ii@|&d)bO4022fz1gpb_>k_tQ#KwaPQ0qM3t=OJ^lTbGk zOwKa?PIPlLtsNN+3AL{1CU{dNJpLPR*G0ea$yYwjBt~0wxHL28tS(6a6yw~6_ZZjY z5gU**mN<7!PUjuOY0B~pv0_Qj_GE#%Uc~67eY=FReY>XzfPaH?+!BR2g6f< zQ#L)_Mj#V%VusEt#h1=sm$u>%B`7vuC$ z`Ec8dHgUD_5;svv9H05S3g7XF@Ry3Fg35lIOcO%6gjvKmX_ByR9+X_U2ltW0Lg;4z zaS7qIg3rll3i+>YjE26t$0AJ_;(>wY=NjIf{~*|Vq8W(~h|^|J0gL%}gM$wU_n*8) z7)E}+El}1oSF2O4dTAsI7Yg*iC%p45{Ri@zOCCjbZl-|CKbypOLCAQ7s>OtS4XYO#dZa>$;S7`Cw5pNBHBV>2 zV{@VMl5PDnstMD5f>JnUdB^=dTua7FGI6U6BmmvIg>5f4AY62N?fdISi@2X4kSn!!La2oplLltpg1Qgb*#@S<&lWW?AK?V+_qRlBYRD|2nc2~hl(-9)MD3%q{9`7c`HmQKEgu7kMD{#`Gx)AUwDNh5Rnay- zAJLU)LBs?Kx`u?0AO&Y{3{*X&k4LM9)CZ`tTlJJs7qTF!qME8F8|R{TSzALIpy7<^ zfj$fGY3Lzj(V4^3XDu~jIqbPl6s4jfM4wijzhQIZ?s5X+ltAm4;>su69&Q6ua%cty zK*JXlG=47t{f{;d>l!rmYWi#p4FlYP;K**lH`0vYJF zbJp8*e0(~8oZxsVDi*M#-%TrbibGqMhf?-*c{D}*U}aOGeR`fR+MF}^rFC+Nn9r^V zDC}mw2zKL4(V+N!{+>G7g}vnBQKeO(6MdlM>PS0+k*J)}`=?G?d>HBjz|7!k4v`19 zZh>!?8hq4-zAkbJGH9U7gA&-h31zmJeNKQ(nINJOY@w*uaNAASV9O{|*`Za6iyOvl zaY_?^NbZIX6ygcP9PWMZy!lQSn>beB{g~J#+oNk(EhR-~Ii*;WN8cr)8(UrlE0OuU zA;G!q`b!z&^OZ2cQ+OuxZL8ZuLaOnQF&{c{|2HY_@YnW}e_bBVM!1$xZ`5^Ykxzz!T6IhwS0)jE{DZzc3pVb zO&3QTwV|4QTn9bfebDU**>=oIiRP>A!9PPUi zzWuZ^-4eQ#YEMr>caWh8@O@2o zvS62_$ctV|K!t9_s$O)dZ&1Ko@FUNnjP*FK01=MpuI!lh-x3!fL-dBBP2}62laEdD zA?bqLN{?wTpSs+<`L23ZjJcy+hI75!c+S{J-jEB$-H zZyb_txUCv7q=PF<>he<7k-e!dN;jp)7) zxHShP(#s@ENA?w+vkD`1Lg4}qWf1kl9DyD`>7;BFhQn?4QP`e;Ax`}u3bSZ z08t?@p2{WNtDX_F$h0{f|G>7v$FhcZS2zNlkNo_>DxueY9bTrXAsV<%UI4`bMp?T& z-xZ)AsDVBdn%Ct>oBg(Wsu7bgx{bRt|Eo$E$)|>d$wib)w{=v@`2vDXF&ZMl+_|&i zLtoSGw<>6znt^-3`%>VR8zR~;8r)^*P#@&T-QBnQ%_}^-O9AG29vwX4XWvZjrOL_0 z=+%OHIC-u10sYInNt$1{fCj+0&lc40Kk05Mqnb+`P^AAi3P z=~1Lj?Lqt0wy<@3={Pd98>(oz-Min6E3UWvb`BGJJ{bQ^!R%`>6JJdjjn8?v4zy|$ zE*MzQQ!K(8rzm^TZ$tkwv+n75qTOIS7iXt6yg$PK$-MR>08@M#Xy=Nu>;#rb_RGHk z*qpS&I)0OBB9^mf2d}N8E>4NF{u6F(29y>ob`WXf0@@II#JIfL=!j%3MC7&Uvno~7 z3&wE&OtHgF51G!@;bbE>c<#$=^PL~k14n^9l~rO!lLiPwUZ!9lpI zUUfaJWT|d3F6l8VKTfOkM24fc9%R|h{wycqTwR?if#5J5$iL%xtVPxZ|}Q{SV2bj!!Aw}05kukD5-`m z+fu)(X*>}QtqcT+RyjdfZbBEaTFilGE@+2D*Y$ZcjYM=A1y-1XX%#5UJLfcTT8cIm z>n>wr69vk{Ao``v&#Zd2jcsa1x&(>SZo}1o6LWIg2j3dj9V}r2!6sfG^T1RD5c;YK zu4tW5pEbF7gt`c1mIsk?y!rVvB@vfFgya6OA*G=ZST0t}`pv}Xoh?$pH5snO5yh(*Ifk|p;1KlQyV@U#4?Y|kflMmnV>TB&p)y&i)^7jNnye@6C#NL%oJbm|kODt? zj;_K*niAV!m%*v0GSm;Ux2dIJu5})CaJ+7nmLY?yYdY+x&$S*sV#I7)grIgZzQ^)JdpA%thr%s&s&m9a0AMfo!EPY&>%j*Goo?mll9WU zz-WOIYeQ}#1|-&x4JnspwanP(&B4~86j7f-(FeY*ndaEMUL|QTMSZFd7cUj)T z7wnXvNdwSMZH>Fg3$%6w0bD7t$vN3UItz<&9H6xw`&ZXO|rOe7EN+FQGnF^Ddh~oa&LH-y= z=snhwRdbp7orAmST2ZLR8Nd5hyhn+sqMvh@m+30c?{ZPBLmRPnr<|8sM<3zT?sCxz z%K4Jqvzd+++wQZGN{Y<~(V5_WOa}3p<_*g3(L0;bKC=#A1$S_w&Sty};Nij0+tZ9* z0OcQE1>Lv;xSCd@!G&Dsr#81^I`AJTn(*B}qetSjUcd}$UoAH}TGcwwMiMatol?7- zCKqcRuSW}vhe*G6NJr&eo4gAh*w(h-P)#c$XNDn%7j~F+t#A+jTcItsE2!e0=%wEe zy_tu&V>@t1%c`Tg=v^QVHM{76UoqvaXs!JiK%}JR?&BW4k3r9;)KT>M6^xdxc`BM|>_T;*8^)D=goi_C zERI*4`Y`S{bvwMs*TodrG zu^wt%C7RvLCMC}bcl0p7| zs8{V*)IrSwZ3Y9$WuH;|OMxGxBnE$Iym0(7N`aEt4uZ@0OGk8Cp07w1*dhw$vBm|G znkDugH4lQ5y)v$+uy{%&r`dz*Ty9*E;aFzWrHb?G_)r4q<9rpnS>tq}quR5o1Lnh? z{+}+DhlzoUIy<0w+t7KH*f+QBU=KGRwp?^H^AR)^Wu3!|h!-fa|B1QG#QE2AAVN@< zZ5~Im-85&eVKk`L?u;XHsTo|Dg6;f{UAPzBNlHJ@@wHeTxs#@d4lG?z_P5bx-sUuv z)9n#W9r>D98(B5k+KhXIm&VJ|SF*=DB%*#~5|1b&A&9^EwZlvTa!_?rKawXujCmhp zPYTsI9EwGS5#LRR^{1gSiWEt>TgO5wMtgEA3hmX%G(MEbw9B1TocRM~{tbR*Va%3m zF%>a*Fo%|N&`W=VLdfuK?x#@J1XY2hE zojYiav3EcnxfDy3Lz(2@ySeuBJMb$8_51gJ=fRWgL+e)6t zF?lcu*uxQ}yaA5N6osRxQ>zK-$Y+b>ZT0r^vO!Tq?GUvPGSa(pp%nEsV_S7wo z$I1OY02Y2u$|6}c$C;m`ab^D_+UKr0{;8#ej4M>Y`CC1+@xl)s+~{cmr}lwD{e$3v zL-W2T+TwmcT5!8u;-Y$n7{FAv&D-eS2jRS(i{Jr8O_@^TuNrNsO}+P$wf{m3a?}{EO4#Bqz77d2XM3 z&>vapoYAz6rV~9}h~R`2ci_z15pk*RC$LMP87KpyY`UN6syjrQYL+YletlyVc_0y| z9=MC|V2A17A)1O2djS&0n_@PKCZit&X6~%@`J!GwUgveVcA&**5enkXHcD;n?j4< zlI|iC*S4PFs{gYB9c_6+q#;5sjX<^WGaM0-ns-{g4C|7?btK*Uk{ z27+UD8(f&7KI81J$0oNAV{C5@2Tw+|V*;w>} zFzaV4xl$!g4V#xax2;ANR=8jeOuVYsseGer&F_|B`nAGb{!r5p0txpbo*QQ z(@l3gU2Be|CXp;mfjlKYmm4Kj9oXV>ft=28X%|ib+shi)+ISoS0aasMXY77ZF%5&_ z+bKym_t9stWwwVnqms=7(ty@xdTJNnsM90RJ!1zDD*bf(xXy9inVs1*a&_b&2yYng z5r@RlOp6AeWi`?F?T}Z=*bR&R0%(Ca>$^xvP8qnpmAQr~ovj2q0ke@-+-*jmU3@4E z^=lUBz#^_Lx1avYu7}o(U>vQOW{*nxq@Kfyf@9VM=3R)3bwa}3i2^)E(hEkLhB|F? zTtx_X04l2rws{s#0;En}t zJJ>swn74kQ-f04Fz-o@!TjQQH`XGc}Bh-WYbrre)4MM>Er^anidWkg5c9 z`LhpEE>q#gL7uCn628n-OKSevOyl_WKe{nTslX-ANZh=B;kmOSAKJ44Whj(PL$k^^ zPX04ea`d4H+J5e#?9RDsr~om)RnLR6Oo z%FR!X^$>~>;in?lN5uX7kXE(Au8D`MO%B{GTe3B4S%y_^xNmW0X2D=I777h(;LDfJHTf3+@)|u@> zH*~wd9t7~@N4JGJu?raCj3rd>5by&va=j3#%|QW!%7e6HL^WIG!NA44rMV$!s2k8n z?V$2kCy{X1U_rpGlOxpqPX;`bH4jIca8ee)n^cX6`GX@W69!%|5pz(hEQ^A7-7` z6tnp_#@eJ|Qv0|AbcN~^RMMCMcy&!;)d?^ACOg7X9(w>(oT`|F21;y{hO6CHwQ;L! z7NOVyprT`2mA`V3(pC-@WKm)cOys8#%i0u%xi<#2b+hMh0+P zN-J(JMaofgrY(s2&HkJRvIoqEKP5*BW)_WETxyHc8n=jZyuK;KqK2`@;m~TEPV*nx z=^iI>SI$Z3byF~grFBVc2|A$Z;P+@N&*{iOZuK!m*n*ZN`s%7U?KMn#zI{tT#y4`2 zp94Q<@H?f<3@74x`sV2%Iinp)ateHjk2aI~-cWZ@v<|F^iSaS4ssgKuoU+V|U?pWMfku5}g|ywN>Wdi5-Gi4d+UkP_R^i7IF<3 z6R8UYHs@$9uDNJ?4ORBp2d}pj3_)U`Luar$Aa1=5#)J`;QWmGNQ2AL^*wtchrH6#L znk9ci;Hu(^1`ZoC8o-QG*sK1m%0LMxEqYH1)c1MjyN|2vYKPMH)#L)q#~*I`rT#cQ zcrNOHMSbglH9E4zDyc{p_v5|0gYEaaTL&2s(Eo5MebcbW-FPM5kc2A)+$yd8sV(W) zBu=9eebt6>sn3$F*f|`7zf>QG1$xc@1VV3U)>R}a2GQc8Owap<-Ky4xzhpOuPpkRc z$Y*Fo0A}%|q(X@{qlzqOJRH%iTA$i=C@gTE5>0pK!neNPn@i{tm0bc=hs;-R%JCiZ z18#d{nsJHtk{qr#1Z{-$v(+yoSBiWR%8&|~s`ftLDQAm<2t0@vtgLLQT4zUW;PZM= z#B@Pcq?`9QX({^m?TM3-45l2~!;56kBbqZ}sou>abv5PoOpZeUyJ3oDsMEs=)1CRi_ zE7%sbIV(ia=ED#GPFZI5Z}X)$o=>C2#MAD7L`BWbvocOj$M5HgK~nO!3RgpjdKv<3+8#fAUMQ(;k_R@ z8wkNA@}&k0d`ye<0IP2}dM1)kSYC(vY&ckq`(oDR1>Yu1lp3JEC?=d(^&oh;ND2oB zLdf>jv)=lYtj2dOP{xI$oe?pnSh@)VkrXE9zdPd3h{vA)*xZfNMardt`aWlL@OF{e zPr~fey*8CQ#37+|1AGy+dgJX2&SpHJYv6wB;{o8&E-hO5#;4pF{bC$6CK7IIZ_KGX zc2FE!%)0;vsEsbMzZ)g8l7&>b(Na0XY^Yd)5b5xjIw(Rzbv(_w#=89;3kV4(slk(0 z&dO?zpNxo`4Oy@mHzRtg3=~8Z_GAcl{bf3td5Wux%7!_2DThU`ZB5Dh3y4m!QNR`c zb_v8_2Gh*4q58ooLyce!k%Wm|65P*Sl?7!(I)9$aRQbY7yPfUHum@Qj6%P`F2oV-J_F;<99s*QS>a57Fowlv(lr8oSc4Ca)}v z3W}(s6~&DPsa2FEjHNC>SX`+n1SbTHpyDtJ5m6~9QLzP48B0y9ip9Ys$l${!SVRKB zEv_g6!IFZ2VUcJ=jDQif=wQ#q=jnGo(jVi`7?OPV-gE9b@B5x}_Oz$ZS7IPoZEU}} zlU{K~TwI|rdi$O*fK z$}{uV@ysa3n3M~#nS7^5J@#lLYy9B6g<7$1zC@#Q30gH)bl2b`>luu^#>U=&MU*$W z16WZQi&mlNVg_WjL51QC^UenQE&5gXyH^t8WZkn4TAQ9!7~_+qeVQq25aEuhuStju zT_ZbwTZ@k^EZ@If9t)F@B||a_nubWV{QO6uv>*9%&-7%X+lZDhk8nqzFu=pZxy>5o z0E8X@W!9nMIf&6oXd|Xj_jz)|A&-$2C^qziOG3&`Z8w{`3(pfi1PcQQ_28?}p5I9y zno3-tW3mNxVQFbR*aJx z!>=MB0}j_5zo+eS{6O8iptZ_?GwCqP^^WVZz0YKn(T;=i69DtIgTV(d<&u3_-;Pz| zuHRPRc=c^denx*jz>z8=BU_@@FM2YchE+6=WHI^C+pfFLs7FRO+ZLQ;b$Vze2QX=> zog|UtzUjWqi9*krU_o4!R2p4bo55U$&aP*x%}{p1zltPPdVCEz0^l)_uLROY9Ya{k zoBWl?21jqp$$8o$YwGb~1r*OS=-N6r)j*O7^B)OmoQ+A+QV_Z+cQ#=09<-W=!Ph5b zePWtY(Gl*T{&V-``^slYCRtCy>j7zxP0343kI2V!npP}8QHLTKJQj#F#FM7c{(uSD z{121b-r!y6_9cNQm|Z!Ou~*P+Ek}C~V`^di$5?iiMOg%Lo$f?rGVftwlGgmEPIUbJ zCqe*mkyHHrOT0UdVAfu(zc1F{;@e!vgm|%CrTcRoVldSjHy$(~Qumz{g9dl&K@y%` zOy4m|jbTSo7)ut+|Nyqb=YYQ|xwN zW%8$^ea6H}K;yeF!2O#SoUoVjBH)}y00h49j4tsf48f6xGVPwvGt|*dXno=)0x&1c z?6-Zg1g&NT$tKQ)t_YI9ly5|@Up3Plli76!Z@=2lcBj-vfCZYsb6iVq_^yRpy8A7v zfHq3lPBQ6@+G!^+MhkE!+{VXz9_7@tXzLLRr``~#hII7()UJgE=>`Dww>M_!;;dg` z6~+Kv{txzVv&wMCkY?hM%tu)UbxZDY(Ie%;?dqH%Eaem*q#Y49iL)Z+HK_|tq(26u z?mAi_vb;D@O?oSrjm!H?T^evUJ$1C;{N&3fOf%w?_aY3|I z{eQj{ETpSY^`^%^GV?u34_dhdG46X1$OuGcnQcD+r&qYq#O`t9K!PLFFDl1bfcGdc zB<_B->)H2oM1BTj6T9^}E79Q@H`{)C_k?W{8YOWlUZGc)XQ8)EumJxXG)-Ws3Mft9 zhRi6T1P1hO=LMsal%5Ekbk8JjL9uNsFd~f3hUUkm=v;Y5!htJ~1tc;}5I2pj+f|0k zGk1aXy=gAAk#2~(jJHk(pOh$WTo;4MsLK-}S{?4XJ&N`_NUhFCAm4OM+9x-gZ3U0? z-Ak-vFs>j>=yJ)0busPevEg&wSe-MXwE3cB^zsA(h5IsRKk}m0Gmtj3B`G^^i5Ivq zQJ?|6Hz4ik-3o-8_kv%msJwN0H@SL5d2ttr@pYA*a6UPbG`vjxZ9@nmYqN4}(T7ZjOm`TqFp{Y5EIqbuW~uk& zF(@-@2PvfzOsU-pPpB^=)H_qMEuV|0@Io?Je@Z1}c7KB|$r>++Kyq!Ilqqq2{@Hk> z=N&NMsP)$$_S+%3as(kchr7yCK}=Ss#wt}J87Rnb;9oM-|FxG_6{?=3;Y{5%7d5$Qq9kmxT2QjcytaETT@FTG82{O2Y9xSHTJc$w-AIMnh? zKdvZF(lW9xI-e}#L?g*uNLl6U@5d}L~nMiQJM~WN5V~kc8zND#vo}O zZQ_I}E7rOEIF4qPfJFw~e0~Daguu6tW<_)gt(DKTo;{R>tTh7?{#*dk58hJsFgOCSHO?{OgwA%F^BQSa8D zlQ7>5THBKs8*bKS=XqoE1$lzz^a$Me+j#BBrK-a3v$$+p7t##`6WOZi@k0w)vx>N; z3;-#`21Iy);`j(o(4+Z%d?cqBXfPzS%J40!wnacig4C2H>!M)~&p;%hJy&UAP>S(Y z_vy}t>iXda=b$WY2pQ=^BsPLC(UE;N1Cl?l=8jrk3i{FAZ)^6)FC?V}bo@jV@5b7< zCkHzgi7_}*w)7o>s)h``4M6APF){C{<7ygbu_OF?*fc5n7Qf)us2lB-`ycCQ?|d;- zlo0mu7QU%WCrknfog>4cd1VQ*SyCz{`Ozi9tx5eKnT-{##*L_K?R4*&AKW++gQG@L zyLL}5?5MUA*`c53ZvoY7r5yPYT1i|iBv6rO#i3SoW`#6NwW$?y8eQfE&{{Zu0C!jP zOVtvT+XBCJdSEV3AAOjcCCQnu6eg7qsz$Txj0WY~e+e=3)?4Wa@5lKD`y zFMU2@!ZmahYnDK-`@t$xAWMJSx;;D?K|1MWpa!{;NPAWhY=!%GFR=8$R7KJVJFm|9 zHDVl$@DvBMMMv0ZYi2`9oOWT6LT+-~wF9Sj0y0o8ZmhDe?Y&@qd@#O#3J9RyF23t> z=P%1uzj1YR!L_O&2w_MJ1R+q@8u#7_Pc-&~K|Zp~{N}1lp=fDMby5L_V&SluB#@HZK!E%VGM;MZgS5Q-ZXb(n4xJG~Y`x8EGj^X4lA#>Of=664Z zdg>6;W2Qwe)Hr4J+EScZ4fFz1>bzO?Y5ggAR5x=Y(t0e@p@K!E#yZymPihMiA!!QI zSk{Uc?ZYz?KO^t=o~NGjAPN`1d#gpGpbEQurC=As~wTn?vfm z(b=c|{2$LC7_%bF=TePuhJfBc{*>j9js%eYV7xcY)_%?TjCx{I7|UxeX&;s*VC=>~ mndc_>vbSW=l!5Z5f5evYFJ`(0yQ_`h-->0vOA8il#hD=EpgRf_NpP;kyKN>wn`Gto0pvg1-vP_QXVNwW%aaf50H@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl_7?}%yCIAPA7k(ZJAqt^EPam;r1D_71MxugoY_A5<1@ldvHflYX0 z-Lo2{`RD&T*R@97~0td=x5u70S+WYENq{*M;2^Cr-S- z&OdsEUWUdsX0Lvxy*-zGxrDdqoPNgi^pE=f?IIsbZRGShwSN08X5|UtyLI@xe`BD= zf2q%EtR+^i(*LD(k4nqQ{p&ldU6=pjE)&<(_}L~h&VMZ|ul z&25r1GBPGVZ#VfbBN)PR-TR;`d!vnp2-orrygTf456#lgl-bc{wRx$`i`Y*(JNoCx z-*1c1xpv-l@|H)Ll8=&iHhsBaB$e=%>)l+Y^B&=pIyfy!Taob z(}nd+KU&_q1pejO(f3LrFeafkKQ~u*$&?e@B=2pMPt|bc=H{-gX<7GRwo`71e($f@ z8$DevzuCLw#eSCbj+;9#+HP1A9v;rmFh{M)Q11KYZ5pc_O)B5yZJsB3=krZgxpz}? T54e^}gUS$3S3j3^P6%v~lu(#6A0if2aaq{$_T)Y+=jIp_O4@Avz@@Avb5KJWYe=bIJi@3YLn!TeV2NE;~m`(KY0Ev1mUuyzr(#`{H5XjI(YhcjDQgaR9KwJ=+ zL*BC+OJgPi5mC%YI>1j%(x5>g93QK36X~1?1V1r>!N&64kY5p4jjv6kk%+GlPP`kE zyeAOh$z;(Hn*kR9gTxyk5C|MADjG{9cz-X~L~h7f4krnVM)P<)fVT-?vSQFquCA_V zj5FHV8Kps>*oPRL2tJCzw*E%)4-bLPrm^CZIB`q{LdzQw$xPw6A(2|4AM0D6oVe(J zl^E>rV`&CNYj4m_00#YoTT_bDX0ZXRIJ!nz%a3=$eMSB+_gx2v){6h9nQxPR&1y!) z8{p7Co(*rXyVdRh2&5XP|pFR1B5KfmOs>La~{_$#)*=HTySM{hc0E-{7$dD$ZwPY|B@#fKLc(H~$% zU8S85;b_>0L3ZPGYSVPt#F3%05XVnH^(z#SS(Lh(8YdI4$2_pDLakOu)*qDayB;)F zSy{i}9fo~FzvOYEtuXE0q zuez;)@spC?fkK#b)Q+c4RNZ^^_3v#e`sIo$Xy!nTiY%@__?D@zrO{|jJ2O4;tEUX+ zOrtuXC#)0RNCg7HNIOk0y>FdtrTGvo`PS*&+`;pXse4J3S}w1)hqRz99v!8x{=-Zs z=V)d7W@P}BlRleQC}A83YkiCn z$H&K)pKO)rVx!8Tr0Km@FbC5jJIiZb0$V{Cg_5?W<<^`lt#GovwmBTk6?AQ`0(VnG zoJuFh9qP6Rq}=0npKM8u+MckA#637GKDNiO4etNZByL{v+F49*9qSVcg-y9@8qu8n%b48E>H!PrJD#|b4tg~C+)O;OzLZ(thOy|2%#?VS`#Mx zQ0Q^VJx<}Gmb^v0v}fmU%@%yKS5hN+&-*SDy?50rs#hH@6Zv$ z+bO5i7)S_$1AYNsx>PsYY0>fQBka1a&o#X+W2$XPs(s_Q{uf5tHd+1ipD_| z1#*_XBe?ITQ}_O7C05B_h!n~Yq${@3Yc`N49u^iC8^OGtA4J^kFiXobYG^E2?|Kn7 zZ6vIrj>QBWECB+@cJd{rXQ#Fmk61oGnsN5&mdC$rpPKLG=6Afj#=}~`C&iD^WcP{j z@lwcaB^6hsTtBtG+$elTX4@8idY#|Jt^@`H@6Y%wsHuq_k>ibiJ~r^B?8M diff --git a/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@3x.png b/ios/playground/WeexDemo/Assets.xcassets/back.imageset/back@3x.png deleted file mode 100644 index 818055811708d8d3851906e44effcc7ed9932e4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2179 zcmY*bdpr|rAK%Vgwjm2OmriDGAv092TXP>)F1anlXk)o-*)UEnu|(~B7`ZMB(K*7T zSVTBN8tLdlF4fU=tWH#KPL4~wQ@y?K`+PpX=XrkL=lguW&+qv>e>{2KhuxH*nos}$ zpyZBs_LYu~(l`K?llF{xuY=M7$nbS@1PDfVy_O~rI-bY?02EZW0tl$Ms4gWCseVDs zphE=PNLn0*t zphMmWCt3m-u^+V$g+^kb2n51D;W)+C*V*;kc4>w|Ml+doTQjrd2jDe+7a%QT*$`&HyWI?iN9WCE4Wq|)LMTe_qOS|SsJL~a> zsYOB0W~%&n=l#XXj%2HQXBH~$%54~<85{E>1 zw)9_`(r>|vug<2|H8m~JZyEe?kPMvO(MXg7E0>m(qz~c_Ao>AumT61p#|{d+y4F33 z#7X&7VTVVYrrWdeOthsXgJx0Qm8-LSWZr@RH7M3o$?JLj;?dNUZKR1_{It&1Pjc+~ z`ufhDaJamQv9T~bR{=`xsd*R2oSuIE9BVWwOciLr&Ow}4%O*0P=`SgQ)F z&Yw#L7=-+>yEHZ!F|OwtJy;tX8u|>fo+8hIfl)<;i)Vvx%d3v2Ciq9CbtuMT@DzDa zUw?o9ba8R29EK4^5jXyXK^N-5ZR9YO%mYesty|*96UzenUC7L7c2u$#+Q_q z-kqPHe{g?vv^$0aVI=$XQSEWRztt!8C5ghk1uqwoChmkh)g!3cfKE*#4*Hxisb)PT2$pN&QI_PQl+|k-M4{pk=<)F0 z6iUmTV4cQtgolp!z)j3s9f8KALzEr9Gt1m@v5F1RUoA$bbYz)=uj>@DjkMKefsU3} zP8XwFMi#b}qX)vBBD=Dk%z+6Tt?OboB_tk~QOts>Yx`SNAWt zt!2bz{jX>yOiM3HSD%3Gys^7dnjrCI5k7o0nMfhdUhv)y-^TrvV?#Q}O}%SP(#(Cs zzV~pk@z3#LLjr5tgf+;-xIGHe`fIz#=I*2-+nlhE!vp)5JPskOD|bc(*&|^E;;sbp z5Hz$^uBNW;)sYJsN6!AjStLM?@5%|ijW%(ZtSGNGU53yDGOfqL{QcW5nF@QamE7s5 z6HX+Yuk0#YIU2qPytZUAb$P#TZTW>i)mHZ7{!yWTWn!#=GL;VFh`$s^qSe5K!TW~O zKxZ_|mP?lD&)=Jd$0lNO#Q1I*4XbwAyx*$TQqf_Ts2o*YnJX0Kfz6tB)ueT!V|MCQ zR!`k=EE&WDC1vG6yP+!2e}*-{PUQ79!{`nB9@)n&av+=-jU1R=JP$`QCekW+@RLyh6v{uC(u=%!yfT0JvPp|>f?vSnD|{loyTk1Rr16P+mU zm8YUUlMl0BX2?(YMSm_(m7G&d93xg;Yve~Lj}0pvJ57oMTd*_B{$`q&J{ihHUyF1$ zTH1hSygNB!{;>H|u1y9Ef2ntYqBun1ILdtT)*OhTEsL+h)^KxS(pFqB>gqljvx`-?xUzu3}LTFw&~g z8abJkmUd>0*r$+Kj&OT_N&#+zx@B3SU?(F8D9Ucs)7I$ld9zS^;pZP*sgxx>Y;*qI zizWUvLYn4#MVn!=?u2V;NSuP>jS=80gH%3`_Y(+)di_Xycc_Y>EUBS!4+tIGFbCy~ zwDeujRaJA&<8ry3C%NwcPQ1NvE1xcJ*k_=3KPN1kqg8uoEEDa==kwD6PJ-~EG!fkU zVSxNXK$}k|L2&(YLqiNUw|ZqtZDv2`haA!BM&7@$xb|143zB|(gzA0vHb6V-?kXws z)9DH|B``Iz*ZbNXm(-QI1`u_1(^dbPj=N@0DT}-D=0I%M9%C4_;WlF8@#B5H39DFC z&57WEU%h6gpWX(kH?t6S(~*B&@*YN4B_NU;xXk@krCXc!cp+l zw$`I-Q&UqD5I($3vvJ%Y5R(&=9iXI(y;xzy`nuumK~$28_T6FaaHb5f}j`0B+nsPf9{4`IR^}Qq@+rpZ%OX zry;)vz_{b~0M4ngMy}!%tPP_+ynMWq8%Fn zi>{phx!Mqw6|k?&GBT_jvk>qr)w@W-pS{Qd&rBscTB=I_mW`O{WT?t&U_U^h+GxGC z#BAn1c-nP5CInfB0vU2Kt0t{HKuNNW^Q)x>Qr~t{o?tRx~F?5te8v&z`F))0=t?2`UGBpX^YKPzyf&(2z03k^dazGst~Vh0W6Sjm0*MI zCtz>UfDg>OU%&>Skmn@mXx&`SnoG%0odaja$sB*0UKZfOn?cn0TW;XOn?b60Vco%Y`_Ri!1MOzdQPi1P1_{x<;|Zo>B+C> zE9d4+pivN*h{KdXE)WL*R(e2x2k-#kqsJQFsi{G10JsCN8es#3a0uW&!dkzUNC|?Q ze*v%@S@2B&uaVbGY8w1dg3gF)7bC=VRsA96F&xvOGb9&L;|##*5R#1K zorS+42xfiPBN1u{F^aro7B!dw_6cu8Y#_!v8Oe%hmNI%#_RY=Z!H14!Y~vWfg*(?UA_N`X+iFBL)onXJ2Q-_=F-N!wd1>2?EErT6SO{J6sAFMz2pS< zmDg+~iyLGSrf%5c%oPAehq^I35TODw#ocl{@_j-3+%o`br$7kAR0pIH&K3khAf|PL znNyWUNF$^XKdFLD!=VrefhZ@?(gv-~g4()V-!pEr%!2HCm8%OLX_P3*k~Umpf<2D3kmW8c%; z6?z?^CAt+uf33-ki@bz?!5=3obA@Lst!T}ZtfhgPBzt;#lT;Afd z-Gte$7q)3(q@c08f}8wqHV{pM4E=wB2uRs`B~(=J>djatLeZPnE2`AS1ntz2WUhGr Y8w%WxQf`|J+yDRo07*qoM6N<$f@wuA4FCWD diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json deleted file mode 100644 index e2cd5afd43..0000000000 --- a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "reload.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "reload@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "reload@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload.png b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload.png deleted file mode 100644 index 1fd4bac7972176417731f5a9b44183365407b426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)s*2RV)PpHM-dfprzpJlXY|@5fZqU?g&6iCa_OAg z3~_Z`-)K-T1VRXlwry{T=zA%<;k$_38)HtbwM`=b31It7K+6$h{0m@_A>WEflS-uT zM;VM}vm>ID^!6m6k;fSSjmRGWteJVEkqrqGUWwKKzD{KOB;dWjA4Vl2cgC2rG4Yrv zl~n8fBbW7|MA~ft*BwB~opW89#a0YzKE^&~;Jw#T>(YE+=2a>3j_DP0g={G`HVmZC ztE##wh7F)V{wUzRzW{L65i;|aInmD`?*;w<_|=V7RaM3L*Tw=kY<1ylG=qM6-rC#} z`(bB3L*UINniF}4d3TfNihO8H=ZNGMZO_bh&Zy27sO$QKh;9d`V&j}UokLK<^yfNr z>^8=j^HL`1s$MbkWe(d5B;amzdK(eBNYuQ^;>i_@%07*qoM6N<$f_L`@D*ylh diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@2x.png deleted file mode 100644 index 6e972351463eee12e69fbbfb33450db28ff8de7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)be(K#?JYB}gb=GFNxrqgpp^PTM4MIwplM^wMZlDd$acOW^TZI03EosWAp-3v!bV|%Gd!P zPCzO3iHK$$Kt*r0)?TD(x+peQfDa>3voRV_%MD8@<%b3g%`TK>nP%om#Nitvx+bD~ zWSY@v^pGy|JU?=B5I4wJuOnn4$m`s;oGQ)}&%nO{Ya z*?qN|fKm$n4!`%Ug%DyEn*Mf$X|2b3p3j*1z3-r!=lcX)w)yT6xDi5}g=*Xf4i?Gt zeAU7l+XP&m*Pc{)Cxkd{tMxiE?(7v2o%jfso^KNfaGg6TWlT^PyGjC113w$S zuyC76-(-h_L z!LCLELWs9XlAu00*!6!CcquOQvV+)jf$24k4iQMc57}Buc|63yeaS3pAvBRHZ$d+q z5`BS(oPSo#^+m#4PNT=;tbqQ^!L6s}u2KpBD;rMM+N(58k*yAHl?gQVf(|tno(Q0< z&hs1-l)6qCT-$P5tGlAN+8jdo+nAtD#g0y?q_B$-_oL#Q#&KevTPaA zHNF%=T!mWX=H})NTI+5|SY@to@2SG&xMq7={qlo0ED=f2;3uPzU4c=>N(~Q z)6jSdCQzJ&422PBi)l(DnHa5?1w|8Z*1%s4;8w^aT`hvi=1d52-R2A5ia=Qd#l+G5 z*&}p3^n-|QVV2qhhX&6dQ_upwp_i_y00000NkvXX Hu0mjf2twaP diff --git a/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png b/ios/playground/WeexDemo/Assets.xcassets/reload.imageset/reload@3x.png deleted file mode 100644 index ab75ee71e0f85088bc15bc075ad108041295102c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1516 zcmV_AzTCskDe z#wla$h;xqL#-fzE$?8P7(0Wc(7WbT6R>WC5TDXC-8j9W^-u!`fAS8f z1?GHeM;)IBsB2eHZ8%;5!I;%`{WrwYabUh5TWL^`E>h{j@dhZ*^Y@(ds|cz@8fdH1 zRw;FnW!c*FU>}^xfFLzhRek21!_F+ZKZ za8`{Iiq$ml3yxCi2V)GL@tqLjF-_CEArP>0j4`P5iBbw)_bKQ6MF4QUuOtJ~Y6Y9) zT$EB@;Qdl&m9a+97kqur`5WiX5FaD~(gyjPtIYwJBuTDZowpI`IJPZmcEuXP*aJpDd7gi@^>bijIOiXvls8^`Yj{~v6dxF4 z@aDahQ9zCjJ_#YtVuU05DClqsCIBynd=QXUt$!@-&UYci>5#|j?XwzQq*V^m`{&d) z2La`Ieq(9;76GRLLU95q@OlC1kOicNTA)@Zb4!kIICx(#ARFm{K~9ncYBg)@I0T$t zKn~J#5qq{85^G;-)qek;1ldRrW9(i^Nea4Cb=9?A2sphGR20R()R{{N@hY?vNC6fK z&K@9}#VD2!S(X`B!;}F|sS^^;9-utW*VF~z5~L?IoIVL6sn-&uCkC7yK-&AnqSRQF zQg5e*ER2neREPy<2M~4L1-~cDve`ndG2!e0qS_y&)NPh!v+QEThSQZGggy68SoBEx zrIZq}m#Ae9I9))BGGe_eFc?FoyyMX7JRe>tih=}4N*Uy^!;+!#vMf*Qx<<^|SbhT< zNAz7vd19palU1;hpv5dsV}66*fDE*40Bxj{uVQ|^CA4J&i2agA+Gd&;LcCl`>^YWn zS@}V~vZJ`@rA91i>1*d%f(~J^Iv1oy#i;w*TPfwsxjH*XyU&0QDPR^G(*KLkJkPh3 zP5(J#Lb2hXy*8kO3fjkl)dqyqtE6LgO9cJu_j!Rd3P_)qMy$yC%yBH0(~^!8_I=5HlOY**Nioa)qe30h zvW8>@$d|fVLi1JKDHF*WPy?y1YcCl!zD93&k8`q(6Ce!<7Yjh$f~7=yf_E*Y#LW;+ z#Tii3n)X8wM+%X~?KCL;kdsPv8=MTNk*2z?G4o3r6meShC{0!ZfpRUl}|9uSb_j*e`UQSXs+n;1q)DcMb}N} zjf3ETIJ&@J-D1^9+8NG}OXv})Uezn$Do0t&B`t=_bQUy6{ SFCDc20000OeD diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json deleted file mode 100644 index 798ba85488..0000000000 --- a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "scan.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "scan@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "scan@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan.png b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan.png deleted file mode 100644 index 618310545fc8ad4baca64f56d9ecdd489d07eee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 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 JskHKm|2GUTPfq{< diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png b/ios/playground/WeexDemo/Assets.xcassets/scan.imageset/scan@3x.png deleted file mode 100644 index 76c7e0b86421b2824d2ab55249dd8db3c7e79ed4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3723 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 diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json deleted file mode 100644 index e972e4e90c..0000000000 --- a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "history.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "history@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "history@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png deleted file mode 100644 index 48aac03f75007cdea6b02a66a0ad995c1f14c90a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)>Y5g-CC0z^Oth=BTS&D-joo!Q+hUA2GgPItfV z*B`Sp4a=6KeM!fX)+HSz^%qIsk{%^3C4JW1%qj;syOJ~?3Bbp9lFkxn$D{;6w6`hZ ziT)ckGFqgpTDu&8h;beT3W)G6J)G^P2Yo1v0totzL;xax2%7JbP9?#&h4(K>_u(6L z!Qp23c4#{T!1+g@1?L!&c63f%kWQ4zjzD(OId_0~IrUlzh#zU7r^WZyT41|KR40|;j+C4a>h2hx0 kEndT{b^o?7sMTip15}K6*Qwd-ng9R*07*qoM6N<$f)`Bi)&Kwi diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png deleted file mode 100644 index dd94cb76c9319339c30c70af2cc964658ffc90bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)L{!)IQm;0*_9ISX6a8E?!Sp_=l z4l*A_x{wA!)0N&2mqd(Z5eq^YDMWnN+G$mL4cX|jL1XQ zst?o&5_?+`@MZzwgQP_>ub5f{_%BjD zecr14|`jse30=DgS2z->a_J zC16R^niOia)0x?4Y%L;I3SDkh#LO7-j11pNBL7v2xZXRsMZATKCNYP@tINl+pBHW%%uJXhPUu~?F){`#>J8~Ie4{Y0Do zz>y`P)LeZ(6hJf}Drws*ijMhWvztrB1Uz zs~^+`@KZjs*5FVHR_v{!!K~vSmFu#RexF>12-hqk00%S|wbN}Q1k|~H^F^(qFN_u- zPQO_cNzW8;b-0E=4GJ<8yQ+*Tjz)+XR%KF^qBw^@*DwAHeU0j_S?jzQ00000NkvXX Hu0mjfhs@Q2 diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png deleted file mode 100644 index 2d5f2b46dd662033e11ffb3c2e6fb5ecb3a56284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1628 zcmV-i2BZ0jP);M zFGMpp^X8o`*`M{#vVHgLc>2K1J~Fe9&5XbKK+C`XG&4Ss|NY9$UN8QC$jI*`P@J9c_Lzv!Bfju!hqf0DWO*-z`jM z_@FBc(JbV?7%6ZhKxYB7#$zZ@BLKqLKAZi^$i?gBg`aw2W;pjW^#b(mtk&rP9MBQ7 zdzzJ#1&GM>(+z4(4F|O8aVFwr0K%kxH8VhZn}~Ga)2PWs0V0<{b9%uc;bT>CsQ3s5 zzxEX@1adr~L^cU#40O($4inHl+0lT?6M zJAKkK&bQ| zL7(&2yuE0y&T2O9V;DH*7|mbkkJ&s3poFXsx1w7MAj}HEDxo#_s)&!Nr3`2V`Ad`+ zAVsu^g~Z&7v;`3MO(Liglc7(P7~m(BPT$XF8s#}`>@|S!JHH1;B}avVS+$%$CXn%C z(Wv{dWY#r+BBqrE2dtEpCU2pfk)a4kMN=yQ6k(b*E1#?a&=E3xJXecd0*I)kRQ+(s zByBx(1VD@r4OARAri@A7(HbCCdkE$DsYrw=0eKWaL`u>IB?Y+9qBTIO_DET%pjt-( z#8A+7_K_{R(4r+kDuWTGb)*kk0-~DQU0_%Oq;}4R-7`(hW#e11k`}RloDLftAZ+yS zRD)?<9swb{*BOvowft zq9Lus@i71?gS-oSQ3M+871_OevDy$6zxxz`q=v~_PYX{4Aiv4c;;H4{Keh%Z*#dY4x8e*?r!ET+tO z!At?@6#%^vM$jtm3oMFFjxaG7T&heq=l(7MRPv(|KuSKamx(EAp4HBEzl@2!KHEt% z2_=g5f>g?-l*N&wSkK8qYjTuYqKADgp3CoRXKQkpKQmEWPJ~KP65$~!hPqk3Iu419MTR)<1a!e2e&~RmG_u1Sz3@ zkAm4*;3);Osl*d0x&EKbOxa#tlw8%K{a(BJBQ;6Me;Ch2(Oy0F*}QCY4<~h}R$X)||TkA`IH%k9?yhxNI+()v`krpdO#pGqDkU!{8t^0}%a) z6lju~ZI75>4-Y~)W*L54k_E^I8%-vACYkNqwH4|G$W4y?|m* zviAhY1^e%9_>a8xnjo6uSAzj19GN1kaRfl?@sRv2uex|f43Pf7g!|1t@#W71;&2bG a6#NIHMQ9bDN}SdJ0000 - -@interface DemoBaseViewController : UIViewController - -@end diff --git a/ios/playground/WeexDemo/DemoBaseViewController.m b/ios/playground/WeexDemo/DemoBaseViewController.m deleted file mode 100644 index edfb8a1c28..0000000000 --- a/ios/playground/WeexDemo/DemoBaseViewController.m +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "DemoBaseViewController.h" -#import "UIViewController+WXDemoNaviBar.h" - -@interface DemoBaseViewController () - -@end - -@implementation DemoBaseViewController - -- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. - [self setupNaviBar]; -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/ios/playground/WeexDemo/DemoDefine.h b/ios/playground/WeexDemo/DemoDefine.h deleted file mode 100644 index 04840bbe43..0000000000 --- a/ios/playground/WeexDemo/DemoDefine.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -#define CURRENT_IP [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"localServer-ip" ofType:@".txt"] encoding:NSUTF8StringEncoding error:nil] - -#if TARGET_IPHONE_SIMULATOR - #define DEMO_HOST @"127.0.0.1" -#else - #define DEMO_HOST CURRENT_IP -#endif - -#define DEMO_URL(path) [NSString stringWithFormat:@"http://%@:12580/%s", DEMO_HOST, #path] - -#define HOME_URL [NSString stringWithFormat:@"http://%@:12580/examples/build/vue/index.js", DEMO_HOST] - -#define BUNDLE_URL [NSString stringWithFormat:@"file://%@/bundlejs/landing.weex.js",[NSBundle mainBundle].bundlePath] - -#define UITEST_HOME_URL @"http://test?_wx_tpl=http://localhost:12580/test/build/TC__Home.js" - -#define QRSCAN @"com.taobao.WeexDemo.scan" -#define QRSCAN_HISTORY @"com.taobao.WeexDemo.scan.history" -#define WEEX_COLOR [UIColor colorWithRed:0.27 green:0.71 blue:0.94 alpha:1] -#define WX_SCANNER_HISTORY @"wx_scanner_history" diff --git a/ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json b/ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json deleted file mode 100644 index e37b649490..0000000000 --- a/ios/playground/WeexDemo/Images.xcassets/Brand Assets.launchimage/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "orientation" : "portrait", - "idiom" : "iphone", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "minimum-system-version" : "7.0", - "subtype" : "retina4", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ios/playground/WeexDemo/Info.plist b/ios/playground/WeexDemo/Info.plist deleted file mode 100644 index 49abc9ada5..0000000000 --- a/ios/playground/WeexDemo/Info.plist +++ /dev/null @@ -1,94 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - WeexPlayground - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 2.2 - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleURLSchemes - - wxpage - - - - CFBundleVersion - 3 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSCameraUsageDescription - $(PRODUCT_NAME) will access your camera,so that you can scan qr code to show your page - NSLocationWhenInUseUsageDescription - $(PRODUCT_NAME) will access your location, so that you can get current location where you are - NSPhotoLibraryAddUsageDescription - $(PRODUCT_NAME) needs access your photo Album, so that you can save image to your photo library. - NSPhotoLibraryUsageDescription - $(PRODUCT_NAME) needs access your photo Album,so that you can save image to your photo library. - UIApplicationShortcutItems - - - UIApplicationShortcutItemIconFile - scan_history - UIApplicationShortcutItemSubtitle - history - UIApplicationShortcutItemTitle - Scan history - UIApplicationShortcutItemType - com.taobao.WeexDemo.scan.history - - - UIApplicationShortcutItemIconFile - scan - UIApplicationShortcutItemSubtitle - scan QR code - UIApplicationShortcutItemTitle - Scan QR - UIApplicationShortcutItemType - com.taobao.WeexDemo.scan - - - UIRequiredDeviceCapabilities - - armv7 - - UIStatusBarStyle - UIStatusBarStyleLightContent - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h deleted file mode 100644 index 2dee545bdf..0000000000 --- a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -@interface WXScannerHistoryVC : UITableViewController - -@end diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m deleted file mode 100644 index b60c9757d0..0000000000 --- a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXScannerHistoryVC.h" -#import "DemoDefine.h" -#import "WXDemoViewController.h" -#import "UIViewController+WXDemoNaviBar.h" -#import - -@interface WXScannerHistoryVC () -@property(nonatomic)NSMutableArray * scanner_history; -@property(nonatomic)UIImageView * qrCodeImageView; -@end - -@implementation WXScannerHistoryVC - -- (instancetype)init { - if (self = [super init]) { - _scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy]; - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - [self setupNaviBar]; - UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)]; - [self.tableView addGestureRecognizer:tapGestureRecognizer]; - tapGestureRecognizer.delegate = self; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadHistory) name:NSUserDefaultsDidChangeNotification object:nil]; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 88.0f; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return [_scanner_history count]; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WX_SCANNER_HISTORY_CELL"]; - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WX_SCANNER_HISTORY_CELL" forIndexPath:indexPath]; - if (!cell) { - cell = [UITableViewCell new]; - } - UILongPressGestureRecognizer * longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; - longPressGesture.minimumPressDuration = 1.0; - longPressGesture.delegate = self; - [cell addGestureRecognizer:longPressGesture]; - NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%ld %@",(long)indexPath.row+1,[_scanner_history objectAtIndex:indexPath.row]]]; - [attributeString addAttribute:(NSString*)NSForegroundColorAttributeName value:(id)[UIColor redColor].CGColor range:NSMakeRange(0, 1)]; - NSDictionary *attributes = @{ - NSForegroundColorAttributeName:[UIColor redColor], - NSFontAttributeName: [UIFont boldSystemFontOfSize:25.0], - }; - [attributeString addAttributes:attributes range:NSMakeRange(0, 2)]; - cell.textLabel.attributedText = attributeString; - cell.textLabel.numberOfLines = 0; - - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - NSString *urlStr = _scanner_history[indexPath.row]; - if (urlStr) { - WXDemoViewController * demoVC = [WXDemoViewController new]; - demoVC.url = [NSURL URLWithString:urlStr]; - [self.navigationController pushViewController:demoVC animated:YES]; - } -} - -- (void)reloadHistory -{ - if ([_scanner_history count]) { - [_qrCodeImageView removeFromSuperview]; - [_scanner_history removeAllObjects]; - _scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy]; - [self.tableView reloadData]; - } -} - -- (void)handleClick:(UITapGestureRecognizer*)gestureRecognizer -{ - CGPoint clickPoint = [gestureRecognizer locationInView:self.tableView]; - if (!CGRectContainsPoint(_qrCodeImageView.frame, clickPoint)) { - [_qrCodeImageView removeFromSuperview]; - } -} - -- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch -{ - if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) { - if ([_qrCodeImageView superview]) { - return YES; - } - } - if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) { - return YES; - } - return NO; -} - -- (void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer -{ - if (gestureRecognizer.state != UIGestureRecognizerStateBegan) { - return ; - } - CGPoint pressPoint = [gestureRecognizer locationInView:self.tableView]; - NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pressPoint]; - if (indexPath == nil) { - return; - } - - NSString * url = _scanner_history[indexPath.row]; - UIImage * qrCodeImage = [self getQRCodeWithData:url size:CGSizeMake(300, 300)]; - _qrCodeImageView.contentMode = UIViewContentModeScaleAspectFill; - if (![_qrCodeImageView superview]) { - _qrCodeImageView = [[UIImageView alloc] initWithImage:qrCodeImage]; - [_qrCodeImageView setCenter:self.view.center]; - [self.view addSubview:_qrCodeImageView]; - }else { - _qrCodeImageView.image = qrCodeImage; - } -} - -- (UIImage*)getQRCodeWithData:(NSString*)url size:(CGSize)size { - CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; - [filter setDefaults]; - NSString *info = url; - NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding]; - [filter setValue:infoData forKeyPath:@"inputMessage"]; - - CIImage *outputImage = [filter outputImage]; - CGRect extent = CGRectIntegral(outputImage.extent); - CGFloat scale = MIN(size.width/CGRectGetWidth(extent), size.width/CGRectGetHeight(extent)); - - size_t width = CGRectGetWidth(extent) * scale; - size_t height = CGRectGetHeight(extent) * scale; - CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray(); - CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone); - CIContext *context = [CIContext contextWithOptions:nil]; - CGImageRef bitmapImage = [context createCGImage:outputImage fromRect:extent]; - CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone); - CGContextScaleCTM(bitmapRef, scale, scale); - CGContextDrawImage(bitmapRef, extent, bitmapImage); - - CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); - CGContextRelease(bitmapRef); - CGImageRelease(bitmapImage); - return [UIImage imageWithCGImage:scaledImage]; -} - -/* -// Override to support conditional editing of the table view. -- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { - // Return NO if you do not want the specified item to be editable. - return YES; -} -*/ - -/* -// Override to support editing the table view. -- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { - if (editingStyle == UITableViewCellEditingStyleDelete) { - // Delete the row from the data source - [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; - } else if (editingStyle == UITableViewCellEditingStyleInsert) { - // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view - } -} -*/ - -/* -// Override to support rearranging the table view. -- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { -} -*/ - -/* -// Override to support conditional rearranging of the table view. -- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { - // Return NO if you do not want the item to be re-orderable. - return YES; -} -*/ - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - -@end diff --git a/ios/playground/WeexDemo/Scanner/WXScannerVC.h b/ios/playground/WeexDemo/Scanner/WXScannerVC.h deleted file mode 100644 index aff1805446..0000000000 --- a/ios/playground/WeexDemo/Scanner/WXScannerVC.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXScannerVC : UIViewController - -@end diff --git a/ios/playground/WeexDemo/Scanner/WXScannerVC.m b/ios/playground/WeexDemo/Scanner/WXScannerVC.m deleted file mode 100644 index 01b3262df0..0000000000 --- a/ios/playground/WeexDemo/Scanner/WXScannerVC.m +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "WXScannerVC.h" -#import "AppDelegate.h" -#import "UIViewController+WXDemoNaviBar.h" -#import "WXDemoViewController.h" -#import "WXDebugTool.h" -#import "WXDevTool.h" -#import - -@interface WXScannerVC () - -@property (nonatomic, strong) AVCaptureSession * session; -@property (nonatomic, strong) AVCaptureVideoPreviewLayer *captureLayer; -@property (nonatomic, strong) UIView *sanFrameView; - -@end - -@implementation WXScannerVC - -#pragma mark - lifeCircle - -- (void)dealloc { - [_captureLayer removeFromSuperlayer]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - self.edgesForExtendedLayout = UIRectEdgeNone; - -#if !(TARGET_IPHONE_SIMULATOR) - self.session = [[AVCaptureSession alloc]init]; - [_session setSessionPreset:AVCaptureSessionPresetHigh]; - AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; - AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; - AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init]; - if (output && input && device) { - [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; - [_session addInput:input]; - [_session addOutput:output]; - output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]; - } - - _captureLayer = [AVCaptureVideoPreviewLayer layerWithSession:_session]; - _captureLayer.videoGravity=AVLayerVideoGravityResizeAspectFill; - _captureLayer.frame=self.view.layer.bounds; -#endif -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:NO]; - [self setupNaviBar]; - [self.view.layer addSublayer:_captureLayer]; - [_session startRunning]; -} - -- (void) viewDidDisappear:(BOOL)animated -{ - [super viewDidDisappear:animated]; - - [_captureLayer removeFromSuperlayer]; - [_session stopRunning]; -} - -- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection -{ - [_captureLayer removeFromSuperlayer]; - [_session stopRunning]; - AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); - if (metadataObjects.count > 0) { - AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex: 0]; - [self recordScannerHistory:metadataObject.stringValue]; - [self openURL:metadataObject.stringValue]; - } -} - -- (void)openURL:(NSString*)URL -{ - NSString *transformURL = URL; - NSArray* elts = [URL componentsSeparatedByString:@"?"]; - if (elts.count >= 2) { - NSArray *urls = [elts.lastObject componentsSeparatedByString:@"="]; - for (NSString *param in urls) { - if ([param isEqualToString:@"_wx_tpl"]) { - transformURL = [[urls lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - break; - } - } - } - NSURL *url = [NSURL URLWithString:transformURL]; - if ([self remoteDebug:url]) { - return; - } - [self jsReplace:url]; - WXDemoViewController * controller = [[WXDemoViewController alloc] init]; - controller.url = url; - controller.source = @"scan"; - - NSMutableDictionary *queryDict = [NSMutableDictionary new]; - if (WX_SYS_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) { - NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO]; - NSArray *queryItems = [components queryItems]; - - for (NSURLQueryItem *item in queryItems) - [queryDict setObject:item.value forKey:item.name]; - }else { - queryDict = [self queryWithURL:url]; - } - NSString *wsport = queryDict[@"wsport"] ?: @"8082"; - NSURL *socketURL = [NSURL URLWithString:[NSString stringWithFormat:@"ws://%@:%@", url.host, wsport]]; - controller.hotReloadSocket = [[SRWebSocket alloc] initWithURL:socketURL protocols:@[@"echo-protocol"]]; - controller.hotReloadSocket.delegate = controller; - [controller.hotReloadSocket open]; - - [[self navigationController] pushViewController:controller animated:YES]; -} - -- (NSMutableDictionary*)queryWithURL:(NSURL *)url { - NSMutableDictionary * queryDic = nil; - if (![url query]) { - return queryDic; - } - queryDic = [NSMutableDictionary new]; - NSArray* components = [[url query] componentsSeparatedByString:@"&"]; - for (NSUInteger i = 0; i < [components count]; i ++) { - NSString * queryParam = [components objectAtIndex:i]; - NSArray* component = [queryParam componentsSeparatedByString:@"="]; - [queryDic setValue:component[1] forKey:component[0]]; - } - - return queryDic; -} - -#pragma mark - Replace JS - -- (void)jsReplace:(NSURL *)url -{ - if ([[url host] isEqualToString:@"weex-remote-debugger"]){ - NSString* path = [url path]; - if ([path isEqualToString:@"/dynamic/replace/bundle"]){ - for (NSString * param in [[url query] componentsSeparatedByString:@"&"]) { - NSArray* elts = [param componentsSeparatedByString:@"="]; - if ([elts count] < 2) { - continue; - } - if ([[elts firstObject] isEqualToString:@"bundle"]){ - [WXDebugTool setReplacedBundleJS:[NSURL URLWithString:[elts lastObject]]]; - } - } - } - - if ([path isEqualToString:@"/dynamic/replace/framework"]){ - for (NSString * param in [[url query] componentsSeparatedByString:@"&"]) { - NSArray* elts = [param componentsSeparatedByString:@"="]; - if ([elts count] < 2) { - continue; - } - if ([[elts firstObject] isEqualToString:@"framework"]){ - [WXDebugTool setReplacedJSFramework:[NSURL URLWithString:[elts lastObject]]]; - } - } - } - } -} - -#pragma mark Remote debug -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" -- (BOOL)remoteDebug:(NSURL *)url -{ - if ([url.scheme isEqualToString:@"ws"]) { - [WXSDKEngine connectDebugServer:url.absoluteString]; - [WXSDKEngine initSDKEnvironment]; - - return YES; - } - - NSString *query = url.query; - for (NSString *param in [query componentsSeparatedByString:@"&"]) { - NSArray *elts = [param componentsSeparatedByString:@"="]; - if([elts count] < 2) continue; - if ([[elts firstObject] isEqualToString:@"_wx_debug"]) { - [WXDebugTool setDebug:YES]; - [WXSDKEngine connectDebugServer:[[elts lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; - if ([[[self.navigationController viewControllers] objectAtIndex:0] isKindOfClass:NSClassFromString(@"WXDemoViewController")]) { - WXDemoViewController * vc = (WXDemoViewController*)[[self.navigationController viewControllers] objectAtIndex:0]; - [vc performSelector:NSSelectorFromString(@"loadRefreshCtl")]; - [self.navigationController popToViewController:vc animated:NO]; - } - return YES; - } else if ([[elts firstObject] isEqualToString:@"_wx_devtool"]) { - NSString *devToolURL = [[elts lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - [WXDevTool launchDevToolDebugWithUrl:devToolURL]; - if ([[[self.navigationController viewControllers] objectAtIndex:0] isKindOfClass:NSClassFromString(@"WXDemoViewController")]) { - WXDemoViewController * vc = (WXDemoViewController*)[[self.navigationController viewControllers] objectAtIndex:0]; - [self.navigationController popToViewController:vc animated:NO]; - } - - return YES; - } - } - - return NO; -} -#pragma clang diagnostic pop - -- (void)recordScannerHistory:(NSString*)urlStr { - - NSMutableArray * scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy]; - if (!scanner_history) { - scanner_history = [NSMutableArray new]; - } - if ([scanner_history containsObject:urlStr]) { - [scanner_history removeObject:urlStr]; - } - if ([scanner_history count] >= 7) { - [scanner_history removeLastObject]; - } - [scanner_history insertObject:urlStr atIndex:0]; - [[NSUserDefaults standardUserDefaults] setObject:scanner_history forKey:WX_SCANNER_HISTORY]; -} - -@end diff --git a/ios/playground/WeexDemo/UIView+UIThreadCheck.h b/ios/playground/WeexDemo/UIView+UIThreadCheck.h deleted file mode 100644 index 154b6027f3..0000000000 --- a/ios/playground/WeexDemo/UIView+UIThreadCheck.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -@interface UIView (UIThreadCheck) - -+ (void)wx_checkUIThread; - -@end diff --git a/ios/playground/WeexDemo/UIView+UIThreadCheck.m b/ios/playground/WeexDemo/UIView+UIThreadCheck.m deleted file mode 100644 index b8d4ed875e..0000000000 --- a/ios/playground/WeexDemo/UIView+UIThreadCheck.m +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "UIView+UIThreadCheck.h" -#import - -#define WXCheckUIThread() NSAssert([NSThread isMainThread], \ -@"You must change UI on main thread!") - -@implementation UIView (UIThreadCheck) - -+ (void)wx_checkUIThread -{ - [self weex_swizzle:[self class] Method:@selector(setNeedsLayout) withMethod:@selector(wx_setNeedsLayout)]; - [self weex_swizzle:[self class] Method:@selector(setNeedsDisplay) withMethod:@selector(wx_setNeedsDisplay)]; - [self weex_swizzle:[self class] Method:@selector(setNeedsDisplayInRect:) withMethod:@selector(wx_setNeedsDisplayInRect:)]; -} - -- (void)wx_setNeedsLayout -{ - WXCheckUIThread(); - [self wx_setNeedsLayout]; -} - -- (void)wx_setNeedsDisplay -{ - WXCheckUIThread(); - [self wx_setNeedsDisplay]; -} - -- (void)wx_setNeedsDisplayInRect:(CGRect)rect -{ - WXCheckUIThread(); - [self wx_setNeedsDisplayInRect:rect]; -} - -@end diff --git a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h b/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h deleted file mode 100644 index 3ddbfd8cf3..0000000000 --- a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "DemoDefine.h" - -@interface UIViewController (WXDemoNaviBar) - -/** - * back button click action - * @param sender responder - */ -- (void)backButtonClicked:(id)sender; - -- (void)setupNaviBar; - -@end - diff --git a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m b/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m deleted file mode 100644 index 09b41056fd..0000000000 --- a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "UIViewController+WXDemoNaviBar.h" -#import "WXScannerVC.h" -#import "WXScannerHistoryVC.h" -#import "WXDefine.h" -#import - -@implementation UIViewController (WXDemoNaviBar) - -- (void)setupNaviBar -{ - UIScreenEdgePanGestureRecognizer *edgePanGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(edgePanGesture:)]; - edgePanGestureRecognizer.delegate = self; - edgePanGestureRecognizer.edges = UIRectEdgeLeft; - [self.view addGestureRecognizer:edgePanGestureRecognizer]; - - NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; - if ([[ver objectAtIndex:0] intValue] >= 7) { - // iOS 7.0 or later - self.navigationController.navigationBar.barTintColor = WEEX_COLOR; - self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; - [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}]; - self.navigationController.navigationBar.translucent = NO; - } - if (!self.navigationItem.leftBarButtonItem) { - UIBarButtonItem *leftItem; - if(![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) { - leftItem = [self backButtonItem]; - } else { - leftItem = [self leftBarButtonItem]; - } - self.navigationItem.leftBarButtonItems = @[leftItem]; - } - if ([self isKindOfClass:[WXScannerVC class]]) { - UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scan_history"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(historyButtonClicked:)]; - self.navigationItem.rightBarButtonItems = @[historyItem]; - } - if([self isKindOfClass:[WXScannerHistoryVC class]]) { - UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"delete"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(clearScannerHistory:)]; - self.navigationItem.rightBarButtonItems = @[historyItem]; - } -} - -- (void)edgePanGesture:(UIScreenEdgePanGestureRecognizer*)edgePanGestureRecognizer -{ - [self.navigationController popViewControllerAnimated:YES]; -} - -#pragma mark- UIGestureRecognizerDelegate -- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer -{ - if (self.navigationController && [self.navigationController.viewControllers count] == 1) { - return NO; - } - return YES; -} - -#pragma mark - -#pragma mark - UIBarButtonItems - -- (UIBarButtonItem *)leftBarButtonItem -{ - UIBarButtonItem *leftItem = objc_getAssociatedObject(self, _cmd); - - if (!leftItem) { - leftItem = [[UIBarButtonItem alloc] - initWithImage:[UIImage imageNamed:@"scan"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(scanQR:)]; - leftItem.accessibilityHint = @"click to scan qr code"; - leftItem.accessibilityValue = @"scan qr code"; - objc_setAssociatedObject(self, _cmd, leftItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - return leftItem; -} - -- (UIBarButtonItem *)backButtonItem -{ - UIBarButtonItem *backButtonItem = objc_getAssociatedObject(self, _cmd); - if (!backButtonItem) { - backButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(backButtonClicked:)]; - objc_setAssociatedObject(self, _cmd, backButtonItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - return backButtonItem; -} - -#pragma mark - -#pragma mark - UIBarButtonItem actions - -- (void)scanQR:(id)sender { - - WXScannerVC * scanViewController = [[WXScannerVC alloc] init]; - [self.navigationController pushViewController:scanViewController animated:YES]; -} - -- (void)backButtonClicked:(id)sender { - - [self.navigationController popViewControllerAnimated:YES]; -} - -- (void)historyButtonClicked:(id)sender { - - [self.navigationController pushViewController:[WXScannerHistoryVC new] animated:YES]; -} - -- (void)clearScannerHistory:(id)sender { - [[NSUserDefaults standardUserDefaults] removeObjectForKey:WX_SCANNER_HISTORY]; -} - -@end diff --git a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h b/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h deleted file mode 100644 index 2889a4ae93..0000000000 --- a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "WXConfigCenterProtocol.h" - -@interface WXConfigCenterDefaultImpl : NSObject - -@end diff --git a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m b/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m deleted file mode 100644 index d127edbe6e..0000000000 --- a/ios/playground/WeexDemo/WXConfigCenterDefaultImpl.m +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXConfigCenterDefaultImpl.h" - -@implementation WXConfigCenterDefaultImpl - -- (id)configForKey:(NSString *)key defaultValue:(id)defaultValue isDefault:(BOOL *)isDefault -{ - NSArray* keys = [key componentsSeparatedByString:@"."]; - if ([keys[0] isEqualToString:@"iOS_weex_ext_config"] && [keys[1] isEqualToString:@"text_render_useCoreText"]){ - return @YES; - } - if ([keys[0] isEqualToString:@"iOS_weex_ext_config"] && [keys[1] isEqualToString:@"slider_class_name"]){ - return @"WXCycleSliderComponent"; - } - if ([keys[0] isEqualToString:@"iOS_weex_prerender_config"] && [keys[1] isEqualToString:@"is_switch_on"]){ - return @YES; - } - if ([keys[0] isEqualToString:@"iOS_weex_prerender_config"] && [keys[1] isEqualToString:@"cacheTime"]){ - return @300000; - } - if ([keys[0] isEqualToString:@"iOS_weex_prerender_config"] && [keys[1] isEqualToString:@"max_cache_num"]){ - return @2; - } - return defaultValue; -} - -@end diff --git a/ios/playground/WeexDemo/WXDemoViewController.h b/ios/playground/WeexDemo/WXDemoViewController.h deleted file mode 100644 index be2935d354..0000000000 --- a/ios/playground/WeexDemo/WXDemoViewController.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXDemoViewController : UIViewController - -@property (nonatomic, strong) NSString *script; -@property (nonatomic, strong) NSURL *url; -@property (nonatomic, assign) BOOL showNavigationBar; -@property (nonatomic, strong) SRWebSocket *hotReloadSocket; -@property (nonatomic, strong) NSString *source; - -@end - diff --git a/ios/playground/WeexDemo/WXDemoViewController.m b/ios/playground/WeexDemo/WXDemoViewController.m deleted file mode 100644 index c3e321d7bd..0000000000 --- a/ios/playground/WeexDemo/WXDemoViewController.m +++ /dev/null @@ -1,348 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXDemoViewController.h" -#import -#import -#import -#import -#import -#import "UIViewController+WXDemoNaviBar.h" -#import "DemoDefine.h" -#import "WXPrerenderManager.h" -#import "WXMonitor.h" -#import "AppDelegate.h" - -@interface WXDemoViewController () -@property (nonatomic, strong) WXSDKInstance *instance; -@property (nonatomic, strong) UIView *weexView; - -@property (nonatomic, strong) NSArray *refreshList; -@property (nonatomic, strong) NSArray *refreshList1; -@property (nonatomic, strong) NSArray *refresh; -@property (nonatomic) NSInteger count; - -@property (nonatomic, assign) CGFloat weexHeight; -@property (nonatomic, weak) id originalDelegate; - -@end - -@implementation WXDemoViewController - -- (instancetype)init -{ - if (self = [super init]) { - } - - return self; -} - -- (void)setInterfaceOrientation:(UIDeviceOrientation)orientation -{ - if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) { - [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:orientation] - forKey:@"orientation"]; - } -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - self.view.backgroundColor = [UIColor whiteColor]; - [self.view setClipsToBounds:YES]; - - _showNavigationBar = NO; - [self.navigationController setNavigationBarHidden:_showNavigationBar]; - _weexHeight = self.view.frame.size.height - CGRectGetMaxY(self.navigationController.navigationBar.frame); - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationRefreshInstance:) name:@"RefreshInstance" object:nil]; - [self render]; -} - -- (void)viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; - [self updateInstanceState:WeexInstanceAppear]; - - AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; - appDelegate.allowRotation = NO; - [_instance isKeepingRawCssStyles:^(BOOL value) { - appDelegate.allowRotation = value; - }]; -} - -- (void)viewDidDisappear:(BOOL)animated -{ - [super viewDidDisappear:animated]; - [_instance didDisappear]; - [self updateInstanceState:WeexInstanceDisappear]; -} - -- (void)viewWillDisappear:(BOOL)animated -{ - [super viewWillDisappear:animated]; - // restore to protrait - AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; - appDelegate.allowRotation = NO; - [self setInterfaceOrientation:UIDeviceOrientationPortrait]; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - [_instance willAppear]; - [self setupNaviBar]; - [self setupRightBarItem]; - [self.navigationController setNavigationBarHidden:_showNavigationBar]; -} - -//TODO get height -- (void)viewDidLayoutSubviews -{ - _weexHeight = [UIScreen mainScreen].bounds.size.height - CGRectGetMaxY(self.navigationController.navigationBar.frame); - UIEdgeInsets safeArea = UIEdgeInsetsZero; -#ifdef __IPHONE_11_0 - if (@available(iOS 11.0, *)) { - safeArea = self.view.safeAreaInsets; - } else { - // Fallback on earlier versions - } -#endif - _instance.frame = CGRectMake(safeArea.left, safeArea.top, self.view.frame.size.width-safeArea.left-safeArea.right, _weexHeight-safeArea.top-safeArea.bottom); -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void)dealloc -{ - - [_instance destroyInstance]; -#ifdef DEBUG - [_instance forceGarbageCollection]; -#endif - - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)render -{ - CGFloat width = self.view.frame.size.width; -// if ([_url.absoluteString isEqualToString:HOME_URL]) { -// [self.navigationController setNavigationBarHidden:YES]; -// } - [_instance destroyInstance]; - _instance = [[WXSDKInstance alloc] init]; - if([WXPrerenderManager isTaskExist:[self.url absoluteString]]){ - _instance = [WXPrerenderManager instanceFromUrl:self.url.absoluteString]; - } - - _instance.isMainContainerStack = YES; - _instance.viewController = self; - UIEdgeInsets safeArea = UIEdgeInsetsZero; - -#ifdef __IPHONE_11_0 - if (@available(iOS 11.0, *)) { - safeArea = self.view.safeAreaInsets; - } else { - // Fallback on earlier versions - } -#endif - - _instance.frame = CGRectMake(self.view.frame.size.width-width, 0, width, _weexHeight-safeArea.bottom); - - __weak typeof(self) weakSelf = self; - _instance.onCreate = ^(UIView *view) { - [weakSelf.weexView removeFromSuperview]; - weakSelf.weexView = view; - [weakSelf.view addSubview:weakSelf.weexView]; - UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, weakSelf.weexView); - }; - _instance.onFailed = ^(NSError *error) { - if ([[error domain] isEqualToString:@"1"]) { - dispatch_async(dispatch_get_main_queue(), ^{ - NSMutableString *errMsg=[NSMutableString new]; - [errMsg appendFormat:@"ErrorType:%@\n",[error domain]]; - [errMsg appendFormat:@"ErrorCode:%ld\n",(long)[error code]]; - [errMsg appendFormat:@"ErrorInfo:%@\n", [error userInfo]]; - - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"render failed" message:errMsg delegate:weakSelf cancelButtonTitle:nil otherButtonTitles:@"ok", nil]; - [alertView show]; - }); - } - }; - - __weak WXSDKInstance* theInstance = _instance; - _instance.renderFinish = ^(UIView *view) { - WXLogDebug(@"%@", @"Render Finish..."); - [weakSelf updateInstanceState:WeexInstanceAppear]; - - AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; - appDelegate.allowRotation = NO; - [theInstance isKeepingRawCssStyles:^(BOOL value) { - appDelegate.allowRotation = value; - }]; - }; - - _instance.updateFinish = ^(UIView *view) { - WXLogDebug(@"%@", @"Update Finish..."); - }; - if (!self.url) { - WXLogError(@"error: render url is nil"); - return; - } - if([WXPrerenderManager isTaskExist:[self.url absoluteString]]){ - WX_MONITOR_INSTANCE_PERF_START(WXPTJSDownload, _instance); - WX_MONITOR_INSTANCE_PERF_END(WXPTJSDownload, _instance); - WX_MONITOR_INSTANCE_PERF_START(WXPTFirstScreenRender, _instance); - WX_MONITOR_INSTANCE_PERF_START(WXPTAllRender, _instance); - [WXPrerenderManager renderFromCache:[self.url absoluteString]]; - return; - } - _instance.viewController = self; - NSURL *URL = [self testURL: [self.url absoluteString]]; - NSString *randomURL = [NSString stringWithFormat:@"%@%@random=%d",URL.absoluteString,URL.query?@"&":@"?",arc4random()]; - [_instance renderWithURL:[NSURL URLWithString:randomURL] options:@{@"bundleUrl":URL.absoluteString} data:nil]; - [self.navigationController.navigationBar setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: - [UIColor whiteColor], NSForegroundColorAttributeName, nil]]; - if([_instance.pageName hasPrefix:@"http://dotwe.org"] || [_instance.pageName hasPrefix:@"https://dotwe.org"]) { - self.navigationItem.title = @"Weex Online Example"; - } else { - self.navigationItem.title = _instance.pageName; - } -} - -- (void)updateInstanceState:(WXState)state -{ - if (_instance && _instance.state != state) { - _instance.state = state; - - if (state == WeexInstanceAppear) { - [[WXSDKManager bridgeMgr] fireEvent:_instance.instanceId ref:WX_SDK_ROOT_REF type:@"viewappear" params:nil domChanges:nil]; - } - else if (state == WeexInstanceDisappear) { - [[WXSDKManager bridgeMgr] fireEvent:_instance.instanceId ref:WX_SDK_ROOT_REF type:@"viewdisappear" params:nil domChanges:nil]; - } - } -} - -#pragma mark - refresh -- (void)refreshWeex -{ - [self render]; -} - -#pragma mark - UIBarButtonItems - -- (void)setupRightBarItem -{ - if ([self.url.scheme hasPrefix:@"http"]) { - [self loadRefreshCtl]; - } -} - -- (void)loadRefreshCtl { - UIBarButtonItem *refreshButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reload"] style:UIBarButtonItemStylePlain target:self action:@selector(refreshWeex)]; - refreshButtonItem.accessibilityHint = @"click to reload curent page"; - self.navigationItem.rightBarButtonItem = refreshButtonItem; -} - -#pragma mark - websocket -- (void)webSocketDidOpen:(SRWebSocket *)webSocket -{ - -} - -- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message -{ - if ([@"refresh" isEqualToString:message]) { - [self render]; - } -} - -- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error -{ - -} - -# pragma mark - orientation - -- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation -{ - if (_instance) { - CGFloat w = [UIScreen mainScreen].bounds.size.width; - CGFloat h = [UIScreen mainScreen].bounds.size.height; - [_instance setPageRequiredWidth:w height:h]; - [_instance reloadLayout]; - } -} - -#pragma mark - localBundle -/*- (void)loadLocalBundle:(NSURL *)url -{ - NSURL * localPath = nil; - NSMutableArray * pathComponents = nil; - if (self.url) { - pathComponents =[NSMutableArray arrayWithArray:[url.absoluteString pathComponents]]; - [pathComponents removeObjectsInRange:NSRangeFromString(@"0 3")]; - [pathComponents replaceObjectAtIndex:0 withObject:@"bundlejs"]; - - NSString *filePath = [NSString stringWithFormat:@"%@/%@",[NSBundle mainBundle].bundlePath,[pathComponents componentsJoinedByString:@"/"]]; - localPath = [NSURL fileURLWithPath:filePath]; - }else { - NSString *filePath = [NSString stringWithFormat:@"%@/bundlejs/index.js",[NSBundle mainBundle].bundlePath]; - localPath = [NSURL fileURLWithPath:filePath]; - } - - NSString *bundleUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/bundlejs/",[NSBundle mainBundle].bundlePath]].absoluteString; - [_instance renderWithURL:localPath options:@{@"bundleUrl":bundleUrl} data:nil]; -}*/ - -#pragma mark - load local device bundle -- (NSURL*)testURL:(NSString*)url -{ - NSRange range = [url rangeOfString:@"_wx_tpl"]; - if (range.location != NSNotFound) { - NSString *tmp = [url substringFromIndex:range.location]; - NSUInteger start = [tmp rangeOfString:@"="].location; - NSUInteger end = [tmp rangeOfString:@"&"].location; - ++start; - if (end == NSNotFound) { - end = [tmp length] - start; - } - else { - end = end - start; - } - NSRange subRange; - subRange.location = start; - subRange.length = end; - url = [tmp substringWithRange:subRange]; - } - return [NSURL URLWithString:url]; -} - -#pragma mark - notification -- (void)notificationRefreshInstance:(NSNotification *)notification { - [self refreshWeex]; -} - -@end diff --git a/ios/playground/WeexDemo/WXExtModule.h b/ios/playground/WeexDemo/WXExtModule.h deleted file mode 100644 index e440c58b40..0000000000 --- a/ios/playground/WeexDemo/WXExtModule.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -#import - -@interface WXExtModule : NSObject - -@end diff --git a/ios/playground/WeexDemo/WXExtModule.m b/ios/playground/WeexDemo/WXExtModule.m deleted file mode 100644 index 16b2e0a44b..0000000000 --- a/ios/playground/WeexDemo/WXExtModule.m +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXExtModule.h" - -@implementation WXExtModule - -WX_EXPORT_METHOD(@selector(generateCover:)) - -- (void)generateCover:(WXModuleKeepAliveCallback)callback -{ -#if DEBUG -#if !TARGET_IPHONE_SIMULATOR - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *documentsDirectory = [paths objectAtIndex:0]; - setenv("GCOV_PREFIX", [documentsDirectory cStringUsingEncoding:NSUTF8StringEncoding], 1); - setenv("GCOV_PREFIX_STRIP", "6", 1); -#endif - -#if defined __cplusplus - extern "C" { -#endif - extern void __gcov_flush(void); - __gcov_flush(); -#if defined __cplusplus - }; -#endif - - if (callback) { - NSDictionary * result = @{@"ok": @true}; - callback(result,NO); - } -#else - if (callback) { - NSDictionary * result = @{@"ok": @false,@"msg":@"only debug mode support"}; - callback(result,NO); - } -#endif -} - -@end diff --git a/ios/playground/WeexDemo/WXExtendCallNativeTest.h b/ios/playground/WeexDemo/WXExtendCallNativeTest.h deleted file mode 100644 index 4671779782..0000000000 --- a/ios/playground/WeexDemo/WXExtendCallNativeTest.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "WXExtendCallNativeProtocol.h" - -@interface WXExtendCallNativeTest : NSObject - -@end diff --git a/ios/playground/WeexDemo/WXExtendCallNativeTest.m b/ios/playground/WeexDemo/WXExtendCallNativeTest.m deleted file mode 100644 index ba11caf39c..0000000000 --- a/ios/playground/WeexDemo/WXExtendCallNativeTest.m +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXExtendCallNativeTest.h" - -@implementation WXExtendCallNativeTest - -#pragma mark - -#pragma WXExtendCallNativeProtocol - -+ (BOOL)checkParameters:(NSDictionary *)parameters -{ - if(!parameters || ![parameters isKindOfClass:[NSDictionary class]]){ - return NO; - } - - if(!parameters[@"className"]){ - return NO; - } - - return YES; -} - - -+ (id)excuteCallNative:(NSDictionary *)parameters -{ - NSLog(@"weex test"); - return @{@"value":@"test"}; -} - -@end diff --git a/ios/playground/WeexDemo/WXNavigationHandlerImpl.h b/ios/playground/WeexDemo/WXNavigationHandlerImpl.h deleted file mode 100644 index bfd402075d..0000000000 --- a/ios/playground/WeexDemo/WXNavigationHandlerImpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXNavigationHandlerImpl : NSObject - -@end diff --git a/ios/playground/WeexDemo/WXNavigationHandlerImpl.m b/ios/playground/WeexDemo/WXNavigationHandlerImpl.m deleted file mode 100644 index 67b129c42d..0000000000 --- a/ios/playground/WeexDemo/WXNavigationHandlerImpl.m +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "WXNavigationHandlerImpl.h" -#import "WXDemoViewController.h" - -@implementation WXNavigationHandlerImpl - - - -- (void)clearNavigationItemWithParam:(NSDictionary *)param position:(WXNavigationItemPosition)position completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container { - -} - -- (id)navigationControllerOfContainer:(UIViewController *)container { - return container.navigationController; -} - -- (void)popViewControllerWithParam:(NSDictionary *)param completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container { - BOOL animated = YES; - id obj = [param objectForKey:@"animated"]; - if (obj) { - animated = [WXConvert BOOL:obj]; - } - [container.navigationController popViewControllerAnimated:animated]; -} - -- (void)pushViewControllerWithParam:(NSDictionary *)param completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container { - BOOL animated = YES; - NSString *obj = [[param objectForKey:@"animated"] lowercaseString]; - if (obj && [obj isEqualToString:@"false"]) { - animated = NO; - } - - WXDemoViewController *vc = [[WXDemoViewController alloc] init]; - vc.url = [NSURL URLWithString:param[@"url"]]; - vc.hidesBottomBarWhenPushed = YES; - [container.navigationController pushViewController:vc animated:animated]; -} - -- (void)setNavigationBackgroundColor:(UIColor *)backgroundColor withContainer:(UIViewController *)container { - -} - -- (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated withContainer:(UIViewController *)container { - if (![container isKindOfClass:[WXBaseViewController class]]) { - return; - } - - container.navigationController.navigationBarHidden = hidden; -} - -- (void)setNavigationItemWithParam:(NSDictionary *)param position:(WXNavigationItemPosition)position completion:(WXNavigationResultBlock)block withContainer:(UIViewController *)container { - -} - -@end diff --git a/ios/playground/WeexDemo/WXSyncTestModule.h b/ios/playground/WeexDemo/WXSyncTestModule.h deleted file mode 100644 index 254af6f311..0000000000 --- a/ios/playground/WeexDemo/WXSyncTestModule.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXSyncTestModule : NSObject - -@end diff --git a/ios/playground/WeexDemo/WXSyncTestModule.m b/ios/playground/WeexDemo/WXSyncTestModule.m deleted file mode 100644 index 784502df49..0000000000 --- a/ios/playground/WeexDemo/WXSyncTestModule.m +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXSyncTestModule.h" - -@implementation WXSyncTestModule - -WX_EXPORT_METHOD_SYNC(@selector(getString)) -WX_EXPORT_METHOD_SYNC(@selector(getNumber)) -WX_EXPORT_METHOD_SYNC(@selector(getArray)) -WX_EXPORT_METHOD_SYNC(@selector(getObject)) - -- (NSString *)getString -{ - return @"testString"; -} - -- (NSUInteger)getNumber -{ - return 111111; -} - -- (NSArray *)getArray -{ - return @[@(111111),@"testString",@"testString2"]; -} - -- (NSDictionary *)getObject -{ - return @{@"number":@(111111), @"string1":@"testString",@"string2":@"testString2"}; -} - -@end diff --git a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h b/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h deleted file mode 100644 index 8bb36b5a37..0000000000 --- a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import -#import - -@interface SRWebSocket (Weex) - -@property (nonatomic, copy) NSString *wx_Identifier; -@property (nonatomic, weak) id wx_WebSocketDelegate; - -@end diff --git a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m b/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m deleted file mode 100644 index afdbcfaf2c..0000000000 --- a/ios/playground/WeexDemo/Websocket/SRWebSocket+Weex.m +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "SRWebSocket+Weex.h" -static char wx_IdentifierKey; -static char wx_WebSocketDelegateKey; - - -@implementation SRWebSocket (Weex) - --(void)setWx_Identifier:(NSString *)wx_Identifier -{ - objc_setAssociatedObject(self, &wx_IdentifierKey, wx_Identifier, OBJC_ASSOCIATION_COPY); -} - --(NSString *)wx_Identifier -{ - return objc_getAssociatedObject(self, &wx_IdentifierKey); -} - --(void)setWx_WebSocketDelegate:(id)wx_WebSocketDelegate -{ - objc_setAssociatedObject(self, &wx_WebSocketDelegateKey, wx_WebSocketDelegate, OBJC_ASSOCIATION_COPY); -} - --(NSString *)wx_WebSocketDelegate -{ - return objc_getAssociatedObject(self, &wx_WebSocketDelegateKey); -} - -@end diff --git a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h b/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h deleted file mode 100644 index 620e71ab3b..0000000000 --- a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXWebSocketDefaultImpl : NSObject - -@end diff --git a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m b/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m deleted file mode 100644 index 60c9d349a7..0000000000 --- a/ios/playground/WeexDemo/Websocket/WXWebSocketDefaultImpl.m +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXWebSocketDefaultImpl.h" -#import -#import "SRWebSocket+Weex.h" - -@interface WXWebSocketDefaultImpl() - -@end - -@implementation WXWebSocketDefaultImpl -{ - NSMutableDictionary *_webSockets; -} - -#pragma mark - WXWebSocketHandler -- (void)open:(NSString *)url protocol:(NSString *)protocol identifier:(NSString *)identifier withDelegate:(id)delegate -{ - if(!_webSockets) - { - _webSockets = [NSMutableDictionary new]; - } - if([_webSockets objectForKey:identifier]){ - SRWebSocket *webSocket = [_webSockets objectForKey:identifier]; - webSocket.delegate = nil; - [webSocket close]; - - } - NSArray *protols; - if([protocol length]>0){ - protols = [NSArray arrayWithObject:protocol]; - } - SRWebSocket *webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:url] protocols:protols]; - webSocket.delegate = self; - [webSocket open]; - webSocket.wx_Identifier = identifier; - webSocket.wx_WebSocketDelegate = delegate; - [_webSockets setObject:webSocket forKey:identifier]; -} - -- (void)send:(id)identifier data:(NSString *)data -{ - SRWebSocket *webSocket = [_webSockets objectForKey:identifier]; - if(webSocket) { - [webSocket send:data]; - } -} - -- (void)close:(NSString *)identifier -{ - SRWebSocket *webSocket = [_webSockets objectForKey:identifier]; - if(webSocket) { - [webSocket close]; - } -} - -- (void)close:(NSString *)identifier code:(NSInteger)code reason:(NSString *)reason -{ - SRWebSocket *webSocket = [_webSockets objectForKey:identifier]; - if(webSocket) { - [webSocket closeWithCode:code reason:reason]; - } -} - -- (void)clear:(NSString *)identifier -{ - SRWebSocket *webSocket = [_webSockets objectForKey:identifier]; - if(webSocket) { - webSocket.delegate = nil; - [webSocket close]; - [_webSockets removeObjectForKey:identifier]; - } -} - -#pragma mark -SRWebSocketDelegate -- (void)webSocketDidOpen:(SRWebSocket *)webSocket; -{ - if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didOpen)]) { - [webSocket.wx_WebSocketDelegate didOpen]; - } -} - -- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error; -{ - if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didFailWithError:)]) { - [webSocket.wx_WebSocketDelegate didFailWithError:error]; - } -} - -- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message; -{ - if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didReceiveMessage:)]) { - [webSocket.wx_WebSocketDelegate didReceiveMessage:message]; - } -} - -- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean; -{ - if (webSocket.wx_WebSocketDelegate && [webSocket.wx_WebSocketDelegate respondsToSelector:@selector(didCloseWithCode:reason:wasClean:)]) { - [webSocket.wx_WebSocketDelegate didCloseWithCode:code reason:reason wasClean:wasClean]; - } -} -@end diff --git a/ios/playground/WeexDemo/debug/DebugAnalyzer.h b/ios/playground/WeexDemo/debug/DebugAnalyzer.h deleted file mode 100644 index 99838d02e1..0000000000 --- a/ios/playground/WeexDemo/debug/DebugAnalyzer.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - - -@interface DebugAnalyzer :NSObject -@end diff --git a/ios/playground/WeexDemo/debug/DebugAnzlyzer.m b/ios/playground/WeexDemo/debug/DebugAnzlyzer.m deleted file mode 100644 index 0a84bb8aea..0000000000 --- a/ios/playground/WeexDemo/debug/DebugAnzlyzer.m +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import -#import "DebugAnalyzer.h" - - -@implementation DebugAnalyzer -- (void)transfer:(NSDictionary *) value -{ - NSLog(@"DebugAnalyzer value : %@",value); -} -@end diff --git a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.h b/ios/playground/WeexDemo/debug/WXATLoggerPlugin.h deleted file mode 100644 index 1bfbffae50..0000000000 --- a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXATLoggerPlugin : NSObject - -@end diff --git a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.m b/ios/playground/WeexDemo/debug/WXATLoggerPlugin.m deleted file mode 100644 index 66eaf81e2b..0000000000 --- a/ios/playground/WeexDemo/debug/WXATLoggerPlugin.m +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXATLoggerPlugin.h" -#import - -@implementation WXATLoggerPlugin - -- (void)pluginDidLoadWithArgs:(NSArray *)args -{ - -} - -- (void)pluginWillOpenInContainer:(UIViewController *)container withArg:(NSArray *)args -{ - NSURL *URL = [NSURL URLWithString:@"http://127.0.0.1:8687/launchDebugger"]; - NSURLRequest *request = [NSURLRequest requestWithURL:URL]; - - NSURLSession *session = [NSURLSession sharedSession]; - NSURLSessionDataTask *task = [session dataTaskWithRequest:request - completionHandler: - ^(NSData *data, NSURLResponse *response, NSError *error) { - // ... - }]; - - [task resume]; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [WXSDKEngine connectDebugServer:@"ws://127.0.0.1:8687/debugger/0/renderer"]; - }); -} - -- (void)pluginWillClose -{ - -} - -- (void)pluginDidUnload -{ - -} - -- (CGRect)wantReactArea -{ - return CGRectZero; -} - - -@end diff --git a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h b/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h deleted file mode 100644 index 0609e42bee..0000000000 --- a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -//#import -//#import -// -//@interface WXATViewHierarchyPlugin : NSObject -// -//@end diff --git a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m b/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m deleted file mode 100644 index 6c5fa2707d..0000000000 --- a/ios/playground/WeexDemo/debug/WXATViewHierarchyPlugin.m +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -//#import "WXATViewHierarchyPlugin.h" -//#import -// -//@implementation WXATViewHierarchyPlugin -//{ -// WXViewHierarchy *_hierarchy; -//} -// -//- (void)pluginDidLoadWithArgs:(NSArray *)args -//{ -// _hierarchy = [[WXViewHierarchy alloc] init]; -// _hierarchy.hidden = YES; -//} -// -//- (void)pluginWillOpenInContainer:(UIViewController *)container withArg:(NSArray *)args -//{ -// [_hierarchy show]; -//} -// -//- (void)pluginWillClose -//{ -// [_hierarchy hide]; -//} -// -//- (void)pluginDidUnload -//{ -// _hierarchy = nil; -//} -// -//- (CGRect)wantReactArea -//{ -// return CGRectZero; -//} -// -//@end diff --git a/ios/playground/WeexDemo/extend/component/WXSelectComponent.h b/ios/playground/WeexDemo/extend/component/WXSelectComponent.h deleted file mode 100644 index a50bd5ba9f..0000000000 --- a/ios/playground/WeexDemo/extend/component/WXSelectComponent.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXSelectComponent : WXComponent - -@end diff --git a/ios/playground/WeexDemo/extend/component/WXSelectComponent.m b/ios/playground/WeexDemo/extend/component/WXSelectComponent.m deleted file mode 100644 index 20bb348bbe..0000000000 --- a/ios/playground/WeexDemo/extend/component/WXSelectComponent.m +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXSelectComponent.h" -#import "WXUtility.h" -#import "WXComponent+Events.h" - -@interface WXSelectComponent() - -@property (nonatomic, strong) UITapGestureRecognizer *tap; -@property (nonatomic, strong) UIPickerView *pickerView; -@property (nonatomic, strong) NSArray *options; -@property (nonatomic, assign) NSInteger selectIndex; -@property (nonatomic, assign) BOOL disabled; - -@end - -@implementation WXSelectComponent -- (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance -{ - self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance]; - if (self) { - _tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(popupPicker)]; - _tap.delegate = self; - - if (attributes[@"options"]) { - _options = [attributes[@"options"] componentsSeparatedByString:@","]; - } - if (attributes[@"selectIndex"]) { - _selectIndex = [attributes[@"selectIndex"] integerValue]; - } - if (attributes[@"disabled"]) { - _disabled = [attributes[@"disabled"] boolValue]; - } - - if (styles[@""]) { - // setting style when init - } - - UIWindow * window = [UIApplication sharedApplication].keyWindow; - CGSize windowSize = window.rootViewController.view.frame.size; - CGFloat pickerViewHeight = 200.0; - _pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, windowSize.width, pickerViewHeight)]; - [_pickerView setBackgroundColor:[UIColor redColor]]; - _pickerView.dataSource = self; - _pickerView.delegate = self; - } - - return self; -} - -- (void)viewDidLoad -{ - [_pickerView selectRow:_selectIndex inComponent:0 animated:YES]; - // show selected item - _pickerView.showsSelectionIndicator=YES; -} - -- (void)viewWillUnload -{ -} - -- (UIView *)loadView { - - return _pickerView; -} - -- (void)updateAttributes:(NSDictionary *)attributes -{ - if (attributes[@"options"]) { - _options = [attributes[@"options"] componentsSeparatedByString:@","]; - } - if (attributes[@"selectIndex"]) { - _selectIndex = [attributes[@"selectIndex"] integerValue]; - } - if (attributes[@"disabled"]) { - _disabled = [attributes[@"disabled"] boolValue]; - } - [_pickerView reloadAllComponents]; -} - -- (void)updateStyles:(NSDictionary *)styles -{ - -} - -#pragma mark - action -- (void)popupPicker -{ - if (_disabled) - return; - - [self fireEvent:@"focus" params:nil]; -} - -- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer -{ - if (gestureRecognizer == _tap) - return YES; - - if (otherGestureRecognizer == _tap) - return YES; - - return [super gestureRecognizer:gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer]; -} - -#pragma mark - pickerView delegate -- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { - return 1; -} - - -- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { - return [_options count]; -} - -- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { - - return self.calculatedFrame.size.width; -} - -- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component -{ - [self fireEvent:@"change" params:@{@"index":[NSNumber numberWithInteger:row], - @"value":[_options objectAtIndex:row]}]; -} - --(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component -{ - return [_options objectAtIndex:row]; -} - -@end diff --git a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h b/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h deleted file mode 100644 index c3255e52ad..0000000000 --- a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "WXApmProtocol.h" - -@interface WXApmGeneratorImpl : NSObject - -@end diff --git a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m b/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m deleted file mode 100644 index 64c8e259e7..0000000000 --- a/ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXApmGeneratorImpl.h" -#import "WXApmImpl.h" - -@implementation WXApmGeneratorImpl - -- (id)gengratorApmInstance:(NSString *) type -{ - id instance = [[WXApmImpl alloc] init]; - return instance; -} - -@end diff --git a/ios/playground/WeexDemo/extend/handler/WXApmImpl.h b/ios/playground/WeexDemo/extend/handler/WXApmImpl.h deleted file mode 100644 index 5af87521d0..0000000000 --- a/ios/playground/WeexDemo/extend/handler/WXApmImpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "WXApmProtocol.h" - -@interface WXApmImpl : NSObject - -@end diff --git a/ios/playground/WeexDemo/extend/handler/WXApmImpl.m b/ios/playground/WeexDemo/extend/handler/WXApmImpl.m deleted file mode 100644 index 214fb80e0c..0000000000 --- a/ios/playground/WeexDemo/extend/handler/WXApmImpl.m +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXApmImpl.h" -#import "WXUtility.h" -#import "WXComponentManager.h" - -@interface WXApmImpl() -@property(nonatomic,strong) NSMutableDictionary* stageMap; -@property(nonatomic,strong) NSMutableDictionary* propertyMap; -@property(nonatomic,strong) NSMutableDictionary* statisticMap; -@property(nonatomic,strong) NSMutableDictionary* eventMap; - -@end - -@implementation WXApmImpl - -- (instancetype)init -{ - self = [super init]; - if (self) { - _stageMap = [[NSMutableDictionary alloc] init]; - _propertyMap = [[NSMutableDictionary alloc] init]; - _statisticMap = [[NSMutableDictionary alloc] init]; - _eventMap = [[NSMutableDictionary alloc] init]; - } - return self; -} - - -- (void) onStart:(NSString *)instanceId topic:(NSString *)topic -{ - -} - -- (void) onEnd -{ - __weak typeof(self) weakSelf = self; - WXPerformBlockOnComponentThread(^{ - [weakSelf _printApmInfo]; - }); - -} - -- (void) onEvent:(NSString *)name withValue:(id)value -{ - __weak typeof(self) weakSelf = self; - WXPerformBlockOnComponentThread(^{ - [weakSelf.eventMap setObject:value forKey:name]; - }); -} - -- (void) onStage:(NSString *)name withValue:(long)timestamp -{ - __weak typeof(self) weakSelf = self; - WXPerformBlockOnComponentThread(^{ - [weakSelf.stageMap setObject:[NSNumber numberWithLong:timestamp] forKey:name]; - }); -} - -- (void) addProperty:(NSString *)name withValue:(id)value -{ - __weak typeof(self) weakSelf = self; - WXPerformBlockOnComponentThread(^{ - [weakSelf.propertyMap setObject:value forKey:name]; - }); -} - -- (void) addStatistic:(NSString *)name withValue:(double)value -{ - __weak typeof(self) weakSelf = self; - WXPerformBlockOnComponentThread(^{ - [weakSelf.statisticMap setObject:[NSNumber numberWithDouble:value] forKey:name]; - }); -} - -- (void) addBiz:(NSString *)bizID withValue:(NSDictionary *)properties -{ - -} - -- (void) addBizAbTest:(NSString *)bizID withValue:(NSDictionary *)abTest -{ - -} - -- (void) addBizStage:(NSString *)bizID withValue:(NSDictionary *)stage -{ - -} - -- (void) onSubProcedureBegin:(NSString *)subProcedureName -{ - -} - -- (void) onSubProcedureEndFailed:(NSString *)subProcedureName -{ - -} - -- (void) onSubProcedureEndSucceed:(NSString *)subProcedureName -{ - -} - -- (void)pauseApmRecord { - -} - - -- (void)resumeApmRecord { - -} - - -- (void) _printApmInfo -{ - NSDictionary* InfoMap = @{ - @"stage":self.stageMap, - @"property":self.propertyMap, - @"statistic":self.statisticMap, - @"event":self.eventMap - }; - NSString* jsonStr = [WXUtility JSONString:InfoMap]; - NSLog(@"wxApmForInstance: %@",jsonStr); - - NSNumber* stageRenderOrigin = self.stageMap[KEY_PAGE_STAGES_RENDER_ORGIGIN]; - NSNumber* stageInteraction = self.stageMap[KEY_PAGE_STAGES_INTERACTION]; - NSLog(@"wxApmForInstance interaction time: %lld", [stageInteraction longLongValue] - [stageRenderOrigin longLongValue]); -} - -@end diff --git a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h b/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h deleted file mode 100644 index cfc354c0a8..0000000000 --- a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - -@interface WXImgLoaderDefaultImpl : NSObject -@end diff --git a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m b/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m deleted file mode 100644 index 13836b3f63..0000000000 --- a/ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXImgLoaderDefaultImpl.h" -#import -#import -#import - -#define MIN_IMAGE_WIDTH 36 -#define MIN_IMAGE_HEIGHT 36 - -#if OS_OBJECT_USE_OBJC -#undef WXDispatchQueueRelease -#undef WXDispatchQueueSetterSementics -#define WXDispatchQueueRelease(q) -#define WXDispatchQueueSetterSementics strong -#else -#undef WXDispatchQueueRelease -#undef WXDispatchQueueSetterSementics -#define WXDispatchQueueRelease(q) (dispatch_release(q)) -#define WXDispatchQueueSetterSementics assign -#endif - -@interface WXImgLoaderDefaultImpl() - -@property (WXDispatchQueueSetterSementics, nonatomic) dispatch_queue_t ioQueue; - -@end - -@implementation WXImgLoaderDefaultImpl - -#pragma mark - -#pragma mark WXImgLoaderProtocol - -- (id)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)userInfo completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock -{ - [self _recoredImgLoad:url options:userInfo]; - if ([url hasPrefix:@"//"]) { - url = [@"http:" stringByAppendingString:url]; - } - return (id)[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:url] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) { - - } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { - if (completedBlock) { - completedBlock(image, error, finished); - } - [self _recoredFinish:imageURL error:error loadOptions:userInfo]; - }]; -} - -- (void)setImageViewWithURL:(UIImageView *)imageView url:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(NSDictionary *)options progress:(void (^)(NSInteger, NSInteger))progressBlock completed:(void (^)(UIImage *, NSError *, WXImageLoaderCacheType, NSURL *))completedBlock -{ - [self _recoredImgLoad:url.absoluteString options:options]; - SDWebImageOptions sdWebimageOption = SDWebImageRetryFailed; - if (options && options[@"sdWebimageOption"]) { - [options[@"sdWebimageOption"] intValue]; - } - - [imageView sd_setImageWithURL:url placeholderImage:placeholder options:sdWebimageOption progress:^(NSInteger receivedSize, NSInteger expectedSize) { - if (progressBlock) { - progressBlock(receivedSize, expectedSize); - } - } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { - if (completedBlock) { - completedBlock(image, error, (WXImageLoaderCacheType)cacheType, imageURL); - } - [self _recoredFinish:imageURL error:error loadOptions:options]; - }]; -} - -- (void) _recoredImgLoad:(NSString *)url options:(NSDictionary *)options -{ - if (nil == url) { - return; - } - NSString* instanceId = [options objectForKey:@"instanceId"]; - if (nil == instanceId) { - WXLogWarning(@"please set instanceId in userInfo,for url %@:",url); - return; - } - WXSDKInstance* instance =[WXSDKManager instanceForID:instanceId]; - if (nil == instance) { - return; - } - [instance.apmInstance updateDiffStats:KEY_PAGE_STATS_IMG_LOAD_NUM withDiffValue:1]; -} - -- (void) _recoredFinish:(NSURL*)imgUrl error:(NSError*)error loadOptions:(NSDictionary*)options -{ - NSString* instanceId = [options objectForKey:@"instanceId"]; - if (nil == instanceId) { - WXLogWarning(@"please set instanceId in userInfo,for url %@:",imgUrl.absoluteString); - return; - } - WXSDKInstance* instance =[WXSDKManager instanceForID:instanceId]; - if (nil == instance) { - return; - } - bool loadSucceed = error == nil; - [instance.apmInstance actionImgLoadResult:loadSucceed withErrorCode:nil]; -} - -@end diff --git a/ios/playground/WeexDemo/extend/module/WXEventModule.h b/ios/playground/WeexDemo/extend/module/WXEventModule.h deleted file mode 100644 index 2fec4ec192..0000000000 --- a/ios/playground/WeexDemo/extend/module/WXEventModule.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import -#import - -@interface WXEventModule : NSObject - -@end diff --git a/ios/playground/WeexDemo/extend/module/WXEventModule.m b/ios/playground/WeexDemo/extend/module/WXEventModule.m deleted file mode 100644 index 1cebd624f8..0000000000 --- a/ios/playground/WeexDemo/extend/module/WXEventModule.m +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXEventModule.h" -#import "WXDemoViewController.h" -#import "WXScannerVC.h" -#import - -@implementation WXEventModule - -@synthesize weexInstance; - -WX_EXPORT_METHOD(@selector(openURL:)) - -WX_EXPORT_METHOD(@selector(fireNativeGlobalEvent:callback:)) - -- (void)openURL:(NSString *)url -{ - NSString *newURL = url; - if ([url hasPrefix:@"//"]) { - newURL = [NSString stringWithFormat:@"http:%@", url]; - } else if ([url hasPrefix:@"weex://go/scan"]){ - WXScannerVC * sannerVC = [WXScannerVC new]; - [[weexInstance.viewController navigationController] pushViewController:sannerVC animated:YES]; - return; - } else if (![url hasPrefix:@"http"]) { - // relative path - newURL = [NSURL URLWithString:url relativeToURL:weexInstance.scriptURL].absoluteString; - } - - UIViewController *controller = [[WXDemoViewController alloc] init]; - ((WXDemoViewController *)controller).url = [NSURL URLWithString:newURL]; - - [[weexInstance.viewController navigationController] pushViewController:controller animated:YES]; -} - - -/** - a test method for macaca case, you can fire globalEvent when download finish、device shaked and so on. - @param event event name - */ -- (void)fireNativeGlobalEvent:(NSString *)event callback:(WXKeepAliveCallback)callback -{ - [weexInstance fireGlobalEvent:event params:@{@"eventParam":@"eventValue"}]; - if (callback) { - NSDictionary * result = @{@"ok": @true}; - callback(result,false); - } -} - -@end - diff --git a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.h b/ios/playground/WeexDemo/extend/module/WXTitleBarModule.h deleted file mode 100644 index 057c6187d8..0000000000 --- a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// WXTitleBarModule.h -// WeexDemo -// -// Created by zifan.zx on 2018/1/15. -// Copyright © 2018年 taobao. All rights reserved. -// - -#import -#import - -@interface WXTitleBarModule : NSObject - -@end diff --git a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.m b/ios/playground/WeexDemo/extend/module/WXTitleBarModule.m deleted file mode 100644 index 09c0182ffc..0000000000 --- a/ios/playground/WeexDemo/extend/module/WXTitleBarModule.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// WXTitleBarModule.m -// WeexDemo -// -// Created by zifan.zx on 2018/1/15. -// Copyright © 2018年 taobao. All rights reserved. -// - -#import "WXTitleBarModule.h" -#import "WXDemoViewController.h" - -@implementation WXTitleBarModule -@synthesize weexInstance; - -WX_EXPORT_METHOD(@selector(setTitle:)) -WX_EXPORT_METHOD(@selector(showTitleBar:)) -WX_EXPORT_METHOD(@selector(setStyle:)) - -- (void)setTitle:(NSString*)title -{ - if (title) { - [weexInstance.viewController.navigationItem setTitle:title]; - } -} - -- (void)setStyle:(NSDictionary*)styles -{ - if (styles[@"backgroundColor"]) { - weexInstance.viewController.navigationController.navigationBar.barTintColor = [WXConvert UIColor:styles[@"backgroundColor"]]; - } - if (styles[@"foregroundColor"]) { - weexInstance.viewController.navigationController.navigationBar.tintColor = [WXConvert UIColor:styles[@"foregroundColor"]]; - [weexInstance.viewController.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[WXConvert UIColor:styles[@"foregroundColor"]]}]; - } -} - -- (void)dealloc -{ - weexInstance.viewController.navigationController.navigationBar.tintColor = [UIColor whiteColor]; -} - -- (void)showTitleBar:(bool)show -{ - [weexInstance.viewController.navigationController setNavigationBarHidden:!show]; - ((WXDemoViewController*)weexInstance.viewController).showNavigationBar = !show; -} - -@end diff --git a/ios/playground/WeexDemo/main.m b/ios/playground/WeexDemo/main.m deleted file mode 100644 index f59fa14029..0000000000 --- a/ios/playground/WeexDemo/main.m +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/ios/playground/WeexDemo/weex-icon.png b/ios/playground/WeexDemo/weex-icon.png deleted file mode 100644 index 396b78f426b596bda67457711bc713ce6044f97b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53574 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 E=~~=QXt_w12J8y?vD0?Ip;$!mW%@o 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 - - - - NSLocationWhenInUseUsageDescription - $(PRODUCT_NAME) will access your location - NSCameraUsageDescription - $(PRODUCT_NAME) will access your camera - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/ios/playground/WeexDemoTests/WeexDemoTests.m b/ios/playground/WeexDemoTests/WeexDemoTests.m deleted file mode 100644 index c1430381c2..0000000000 --- a/ios/playground/WeexDemoTests/WeexDemoTests.m +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -@interface WeexDemoTests : XCTestCase - -@end - -@implementation WeexDemoTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/ios/playground/WeexUITestDemo-Info.plist b/ios/playground/WeexUITestDemo-Info.plist deleted file mode 100644 index 42d0202a90..0000000000 --- a/ios/playground/WeexUITestDemo-Info.plist +++ /dev/null @@ -1,52 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 99.0 - CFBundleSignature - ???? - CFBundleVersion - 10000 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UIStatusBarStyle - UIStatusBarStyleLightContent - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/ios/playground/WeexUITestDemoUITests/Info.plist b/ios/playground/WeexUITestDemoUITests/Info.plist deleted file mode 100644 index ba72822e87..0000000000 --- a/ios/playground/WeexUITestDemoUITests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m b/ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m deleted file mode 100644 index cbeca4698f..0000000000 --- a/ios/playground/WeexUITestDemoUITests/WeexUITestDemoUITests.m +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -@interface WeexUITestDemoUITests : XCTestCase - -@end - -@implementation WeexUITestDemoUITests - -- (void)setUp { - [super setUp]; - - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - self.continueAfterFailure = NO; - // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. - [[[XCUIApplication alloc] init] launch]; - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. -} - -@end diff --git a/ios/playground/bundlejs/about.weex.js b/ios/playground/bundlejs/about.weex.js deleted file mode 100644 index c685047033..0000000000 --- a/ios/playground/bundlejs/about.weex.js +++ /dev/null @@ -1,3309 +0,0 @@ -// { "framework": "Vue" } -"use weex:vue"; - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 38); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(30); -var toPrimitive = __webpack_require__(17); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(11)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(1); -var createDesc = __webpack_require__(12); -module.exports = __webpack_require__(2) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(51); -var defined = __webpack_require__(15); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(21)('wks'); -var uid = __webpack_require__(13); -var Symbol = __webpack_require__(0).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(4); -var ctx = __webpack_require__(47); -var hide = __webpack_require__(5); -var has = __webpack_require__(3); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(8); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(34); -var enumBugKeys = __webpack_require__(22); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(21)('keys'); -var uid = __webpack_require__(13); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(4); -var global = __webpack_require__(0); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(9) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(1).f; -var has = __webpack_require__(3); -var TAG = __webpack_require__(7)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(7); - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(4); -var LIBRARY = __webpack_require__(9); -var wksExt = __webpack_require__(24); -var defineProperty = __webpack_require__(1).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined; - -var _stringify = __webpack_require__(41); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(28); - -var _typeof3 = _interopRequireDefault(_typeof2); - -exports.createLink = createLink; -exports.createURL = createURL; -exports.i18n = i18n; -exports.parseLanguage = parseLanguage; -exports.setLanguage = setLanguage; -exports.clearStorageLanguage = clearStorageLanguage; -exports.getStorageLanguage = getStorageLanguage; -exports.getSystemLanguage = getSystemLanguage; -exports.getLanguage = getLanguage; -exports.jumpTo = jumpTo; -exports.viewSource = viewSource; -exports.setTitleBar = setTitleBar; -exports.fetchData = fetchData; -exports.saveData = saveData; -exports.readData = readData; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var stream = weex.requireModule('stream'); -var storage = weex.requireModule('storage'); -var navigator = weex.requireModule('navigator'); - -var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) { - return x; -}; - -function encodeParams(params) { - if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') { - return ''; - } - var array = []; - for (var key in params) { - if (typeof params[key] === 'string') { - array.push(encoder(key) + '=' + encoder(params[key])); - } - } - return array.join('&'); -} - -function createLink(name) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var args = []; - for (var key in params) { - if (typeof params[key] === 'string') { - args.push(encoder(key) + '=' + encoder(params[key])); - } - } - if (WXEnvironment.platform === 'Web') { - args.unshift('page=' + name + '.web.js'); - return '/?' + args.join('&'); - } - var base = getBaseURL(); - return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : ''); -} - -function createURL(hash, params) { - if (WXEnvironment.platform === 'Web') { - return 'http://dotwe.org/raw/htmlVue/' + hash; - } - var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx'; - var paramString = encodeParams(params); - if (WXEnvironment.appName === 'TB') { - return url + '?_wx_tpl=' + url + '&' + paramString; - } - if (WXEnvironment.appName === 'WXSample') { - return url + '?' + paramString; - } - return url + '?wx_weex=true&' + paramString; -} - -function getBaseURL() { - var bundleUrl = weex.config.bundleUrl; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - return 'file://assets/'; - } else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - return ''; -} - -function i18n(text, language) { - if (typeof text === 'string') { - return text; - } - if (Object.prototype.toString.call(text) === '[object Object]') { - var lang = this && this.language || language || 'en'; - return text[lang]; - } -} - -var supportedLanguageRE = /(en|zh)\_?\w*/i; -function parseLanguage(language) { - var match = supportedLanguageRE.exec(language + ''); - if (match && match[1]) { - return match[1]; - } - return ''; -} - -function setLanguage(language) { - var lang = parseLanguage(language); - if (lang) { - storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang); - } -} - -function clearStorageLanguage() { - storage.removeItem('WEEX_PLAYGROUND_LANGUAGE'); -} - -function getStorageLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - try { - storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) { - if (event.result === 'success') { - var lang = parseLanguage(event.data); - lang ? done(lang) : fail(); - } else { - fail(event); - } - }); - } catch (err) { - fail(err); - } -} - -function getSystemLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - if (WXEnvironment.platform.toLowerCase() === 'web') { - var lang = parseLanguage(window.navigator.language); - lang ? done(lang) : fail(); - } else { - try { - var locale = weex.requireModule('locale') || weex.requireModule('local'); - var useSync = false; - var resSync = locale.getLanguage(function (language) { - var lang = parseLanguage(language); - if (lang) { - useSync || done(lang); - } else { - fail(); - } - }); - var langSync = parseLanguage(resSync); - if (langSync) { - useSync = true; - done(langSync); - } else { - fail(); - } - } catch (e) { - fail(e); - } - } -} - -var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i; -function getLanguage() { - var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - - var match = languageRE.exec(weex.config.bundleUrl || ''); - var lang = parseLanguage(match && match[1]); - if (lang) { - done(lang); - } else { - getStorageLanguage(done, function () { - getSystemLanguage(done, function () { - done('en'); - }); - }); - } -} - -function jumpTo(url, title, lang) { - getLanguage(function (language) { - storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language)); - navigator.push({ - url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) }) - }); - }); -} - -function viewSource(hash) { - getLanguage(function (language) { - navigator.push({ - url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language }) - }); - }); -} - -function setTitleBar(options) { - var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en'; - - if (Object.prototype.toString.apply(options) !== '[object Object]') { - return; - } - var titleBar = weex.requireModule('titleBar'); - if (options.color || options.backgroundColor) { - try { - titleBar.setStyle({ - foregroundColor: options.color || '#FFFFFF', - backgroundColor: options.backgroundColor || '#00B4FF' - }); - } catch (e) {} - } - var title = i18n(options.title, language); - if (title) { - try { - titleBar.setTitle(title); - } catch (e) {} - } -} - -var storageKeys = { - doodle: 'WEEX_PLAYGROUND_APP_DOODLE', - guide: 'WEEX_PLAYGROUND_APP_GUIDE', - examples: 'WEEX_PLAYGROUND_APP_EXAMPLES', - news: 'WEEX_PLAYGROUND_APP_NEWS', - about: 'WEEX_PLAYGROUND_APP_ABOUT' -}; -function fetchData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - try { - stream.fetch({ - url: 'http://dotwe.org/query/weex-playground-app', - method: 'post', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - type: 'json', - body: 'name=' + name - }, function (res) { - if (res.ok && res.data && res.data.success) { - done(res.data); - } else { - fail(res); - } - }); - } catch (err) { - fail(err); - } -} -function saveData(name, result) { - var key = storageKeys[name]; - if (!key) return; - if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') { - result.timestamp = Date.now(); - storage.setItem(key, (0, _stringify2.default)(result)); - } -} -function readData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - var key = storageKeys[name]; - if (!key) return fail(); - try { - storage.getItem(key, function (event) { - if (event.result === 'success') { - var result = JSON.parse(event.data); - if (result && Array.isArray(result[name])) { - return done(result[name]); - } - } - fail(event); - }); - } catch (e) { - fail(e); - } -} - -var fetchExamples = exports.fetchExamples = function fetchExamples() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return fetchData.apply(undefined, ['examples'].concat(args)); -}; -var saveExamples = exports.saveExamples = function saveExamples() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return saveData.apply(undefined, ['examples'].concat(args)); -}; -var readExamples = exports.readExamples = function readExamples() { - for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - - return readData.apply(undefined, ['examples'].concat(args)); -}; - -var fetchGuide = exports.fetchGuide = function fetchGuide() { - for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - args[_key4] = arguments[_key4]; - } - - return fetchData.apply(undefined, ['guide'].concat(args)); -}; -var saveGuide = exports.saveGuide = function saveGuide() { - for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - args[_key5] = arguments[_key5]; - } - - return saveData.apply(undefined, ['guide'].concat(args)); -}; -var readGuide = exports.readGuide = function readGuide() { - for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - return readData.apply(undefined, ['guide'].concat(args)); -}; - -var fetchAbout = exports.fetchAbout = function fetchAbout() { - for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { - args[_key7] = arguments[_key7]; - } - - return fetchData.apply(undefined, ['about'].concat(args)); -}; -var saveAbout = exports.saveAbout = function saveAbout() { - for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { - args[_key8] = arguments[_key8]; - } - - return saveData.apply(undefined, ['about'].concat(args)); -}; -var readAbout = exports.readAbout = function readAbout() { - for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { - args[_key9] = arguments[_key9]; - } - - return readData.apply(undefined, ['about'].concat(args)); -}; - -var fetchDoodle = exports.fetchDoodle = function fetchDoodle() { - for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - args[_key10] = arguments[_key10]; - } - - return fetchData.apply(undefined, ['doodle'].concat(args)); -}; -var fetchNews = exports.fetchNews = function fetchNews() { - for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; - } - - return fetchData.apply(undefined, ['news'].concat(args)); -}; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(43); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(62); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(9); -var $export = __webpack_require__(16); -var redefine = __webpack_require__(32); -var hide = __webpack_require__(5); -var Iterators = __webpack_require__(18); -var $iterCreate = __webpack_require__(49); -var setToStringTag = __webpack_require__(23); -var getPrototypeOf = __webpack_require__(56); -var ITERATOR = __webpack_require__(7)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(2) && !__webpack_require__(11)(function () { - return Object.defineProperty(__webpack_require__(31)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -var document = __webpack_require__(0).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(5); - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(10); -var dPs = __webpack_require__(50); -var enumBugKeys = __webpack_require__(22); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(31)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(55).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(3); -var toIObject = __webpack_require__(6); -var arrayIndexOf = __webpack_require__(52)(false); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(34); -var hiddenKeys = __webpack_require__(22).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -__webpack_require__(39); - -var _About = __webpack_require__(73); - -var _About2 = _interopRequireDefault(_About); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// show title bar -try { - var titleBar = weex.requireModule('titleBar'); - titleBar.showTitleBar(true); -} catch (e) {} - -_About2.default.el = '#root'; -new Vue(_About2.default); - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _mixin = __webpack_require__(40); - -var _mixin2 = _interopRequireDefault(_mixin); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// use shared mixins -Vue.mixin(_mixin2.default); - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _index = __webpack_require__(27); - -var utils = _interopRequireWildcard(_index); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var storage = weex.requireModule('storage'); - -exports.default = { - filters: { - i18n: utils.i18n, - url: utils.createURL, - link: utils.createLink - }, - methods: { - createLink: utils.createLink, - createURL: utils.createURL, - i18n: utils.i18n, - getLanguage: utils.getLanguage, - fetchData: utils.fetchData, - saveData: utils.saveData, - readData: utils.readData, - jumpTo: utils.jumpTo - }, - created: function created() { - var _this = this; - - // get and set language - utils.getLanguage(function (language) { - _this.language = language; - utils.setTitleBar(_this.navigationBarOptions, language); - }); - - // listen to the language change event - var channel = new BroadcastChannel('language'); - channel.onmessage = function (event) { - if (event.data && event.data.language) { - _this.language = event.data.language; - } - }; - }, - beforeDestroy: function beforeDestroy() { - storage.removeItem('CURRENT_DOCUMENT_URL'); - storage.removeItem('CURRENT_SOURCE_HASH'); - } -}; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(42), __esModule: true }; - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(4); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(44), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(45); -__webpack_require__(58); -module.exports = __webpack_require__(24).f('iterator'); - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(46)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(29)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(14); -var defined = __webpack_require__(15); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(48); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(33); -var descriptor = __webpack_require__(12); -var setToStringTag = __webpack_require__(23); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(5)(IteratorPrototype, __webpack_require__(7)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(1); -var anObject = __webpack_require__(10); -var getKeys = __webpack_require__(19); - -module.exports = __webpack_require__(2) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(35); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(6); -var toLength = __webpack_require__(53); -var toAbsoluteIndex = __webpack_require__(54); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(14); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(14); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(0).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(3); -var toObject = __webpack_require__(57); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(15); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(59); -var global = __webpack_require__(0); -var hide = __webpack_require__(5); -var Iterators = __webpack_require__(18); -var TO_STRING_TAG = __webpack_require__(7)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(60); -var step = __webpack_require__(61); -var Iterators = __webpack_require__(18); -var toIObject = __webpack_require__(6); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(29)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 60 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(63), __esModule: true }; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(64); -__webpack_require__(70); -__webpack_require__(71); -__webpack_require__(72); -module.exports = __webpack_require__(4).Symbol; - - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(0); -var has = __webpack_require__(3); -var DESCRIPTORS = __webpack_require__(2); -var $export = __webpack_require__(16); -var redefine = __webpack_require__(32); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(11); -var shared = __webpack_require__(21); -var setToStringTag = __webpack_require__(23); -var uid = __webpack_require__(13); -var wks = __webpack_require__(7); -var wksExt = __webpack_require__(24); -var wksDefine = __webpack_require__(25); -var enumKeys = __webpack_require__(66); -var isArray = __webpack_require__(67); -var anObject = __webpack_require__(10); -var isObject = __webpack_require__(8); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(17); -var createDesc = __webpack_require__(12); -var _create = __webpack_require__(33); -var gOPNExt = __webpack_require__(68); -var $GOPD = __webpack_require__(69); -var $DP = __webpack_require__(1); -var $keys = __webpack_require__(19); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(37).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(26).f = $propertyIsEnumerable; - __webpack_require__(36).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(9)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(5)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(13)('meta'); -var isObject = __webpack_require__(8); -var has = __webpack_require__(3); -var setDesc = __webpack_require__(1).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(11)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(19); -var gOPS = __webpack_require__(36); -var pIE = __webpack_require__(26); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(35); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(6); -var gOPN = __webpack_require__(37).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(26); -var createDesc = __webpack_require__(12); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(17); -var has = __webpack_require__(3); -var IE8_DOM_DEFINE = __webpack_require__(30); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(2) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('asyncIterator'); - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('observable'); - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(74) -) - -/* script */ -__vue_exports__ = __webpack_require__(75) - -/* template */ -var __vue_template__ = __webpack_require__(86) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/pages/about/About.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-13681c5e" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 74 */ -/***/ (function(module, exports) { - -module.exports = { - "list": { - "backgroundColor": "#F5F5F5" - }, - "item": { - "paddingTop": "30", - "paddingBottom": "30", - "paddingLeft": "60", - "paddingRight": "40", - "borderBottomWidth": "1", - "borderBottomStyle": "solid", - "borderBottomColor": "#E6E6E6", - "backgroundColor": "#FFFFFF", - "flexDirection": "row", - "justifyContent": "space-between", - "alignItems": "center" - }, - "item-1": { - "borderTopWidth": "1", - "borderTopStyle": "solid", - "borderTopColor": "#E6E6E6" - }, - "item-title": { - "fontSize": "42", - "color": "#606060" - }, - "item-value": { - "fontSize": "36", - "color": "#999999" - }, - "arrow-icon": { - "width": "22", - "height": "36" - }, - "copyright": { - "marginTop": "50", - "paddingBottom": "20" - }, - "copyright-text": { - "fontSize": "22", - "color": "#A0A0A0", - "textAlign": "center" - } -} - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _utils = __webpack_require__(27); - -var utils = _interopRequireWildcard(_utils); - -var _mock = __webpack_require__(76); - -var _AppInfoCard = __webpack_require__(82); - -var _AppInfoCard2 = _interopRequireDefault(_AppInfoCard); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var picker = weex.requireModule('picker'); // -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -var channel = new BroadcastChannel('language'); -exports.default = { - components: { AppInfoCard: _AppInfoCard2.default }, - data: function data() { - return { - language: 'en', - followSystemLanguage: true, - navigationBarOptions: { - title: { - zh: '关于 Weex', - en: 'About Weex' - } - }, - dict: { - FOLLOW_SYSTEM: { en: 'Follow System', zh: '跟随系统' }, - LANGUAGE: { en: 'Language', zh: '语言' } - }, - aboutApp: _mock.aboutApp - }; - }, - - watch: { - language: function language() { - channel.postMessage({ language: this.language }); - } - }, - computed: { - languageName: function languageName() { - if (this.followSystemLanguage) { - return this.i18n(this.dict.FOLLOW_SYSTEM); - } - return this.i18n({ en: 'English', zh: '简体中文' }); - } - }, - created: function created() { - var _this = this; - - utils.readAbout(function (about) { - _this.aboutApp = about; - }); - utils.getStorageLanguage(function (lang) { - return _this.followSystemLanguage = false; - }, function () { - return _this.followSystemLanguage = true; - }); - }, - - methods: { - chooseLanguage: function chooseLanguage() { - var _this2 = this; - - var options = ['', 'en', 'zh']; - var index = this.followSystemLanguage ? 0 : options.indexOf(this.language); - picker.pick({ - index: index, - items: [this.i18n(this.dict.FOLLOW_SYSTEM), 'English', '中文'] - }, function (_ref) { - var result = _ref.result, - data = _ref.data; - - if (result === 'success') { - var select = options[data]; - if (select) { - _this2.followSystemLanguage = false; - _this2.language = select; - utils.setLanguage(select); - } else { - _this2.followSystemLanguage = true; - utils.clearStorageLanguage(); - utils.getSystemLanguage(function (lang) { - _this2.language = lang; - }, function (error) { - _this2.language = 'en'; - }); - } - } - }); - } - } -}; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.aboutApp = exports.guideLessons = undefined; - -var _sliders = __webpack_require__(77); - -var _sliders2 = _interopRequireDefault(_sliders); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var guideLessons = exports.guideLessons = _sliders2.default; - -var aboutApp = exports.aboutApp = [{ - title: { en: 'Weex Official Website', zh: 'Weex 官方网站' }, - link: { - en: 'http://weex-project.io/', - zh: 'http://weex-project.io/cn/' - } -}, { - title: { en: 'Apache Software Foundation', zh: 'Apache 软件基金会' }, - link: 'http://www.apache.org/' -}, { - title: { en: 'Who is using Weex', zh: '谁在使用 Weex' }, - link: { - en: 'http://weex-project.io/who-is-using-weex.html', - zh: 'http://weex-project.io/cn/who-is-using-weex.html' - } -}, { - title: { en: 'Contribution', zh: '参与贡献' }, - link: { - en: 'http://weex-project.io/guide/contributing.html', - zh: 'http://weex-project.io/cn/guide/contributing.html' - } -}, { - title: { en: 'Release Note', zh: '版本变更' }, - link: { - en: 'http://weex-project.io/releasenote.html', - zh: 'http://weex-project.io/cn/releasenote.html' - } -}, { - title: { en: 'FAQ', zh: '常见问题' }, - link: { - en: 'http://weex-project.io/faq.html', - zh: 'http://weex-project.io/cn/faq.html' - } -}]; - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _defineProperty2 = __webpack_require__(78); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _ref, _ref2, _ref3; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = [{ - subject: 'weex', - mainColor: '#00B4FF', - title: { zh: '学习 Weex', en: 'Learn Weex' }, - poster: 'https://gw.alicdn.com/tfs/TB1.8Vdl9_I8KJjy0FoXXaFnVXa-3799-1615.png', - posterBg: '#E5F7FF', - posterStyle: { - width: '650px', - height: '304px' - }, - copyright: { - zh: '来自 http://weex-project.io/cn/', - en: 'From http://weex-project.io/' - }, - lessons: [{ - title: { - zh: '快速入门', - en: 'Getting Started' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/index.html', - en: 'http://weex-project.io/guide/index.html' - } - }, { - title: { - zh: '工作原理', - en: 'How it Works' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/index.html', - en: 'http://weex-project.io/wiki/index.html' - } - }, { - title: { - zh: 'Weex 中的前端框架', - en: 'Front-end Frameworks' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/front-end-frameworks.html', - en: 'http://weex-project.io/guide/front-end-frameworks.html' - } - }, { - title: { - zh: '在 Weex 中使用 Vue.js', - en: 'Use Vue.js on Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/use-vue.html', - en: 'http://weex-project.io/guide/use-vue.html' - } - }, { - title: { - zh: '与 Web 平台的差异', - en: 'Platform difference with Web' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/platform-difference.html', - en: 'http://weex-project.io/wiki/platform-difference.html' - } - }, { - title: { - zh: '集成 Weex 到已有应用', - en: 'Integrate to Your App' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/integrate-to-your-app.html', - en: 'http://weex-project.io/guide/integrate-to-your-app.html' - } - }, { - title: { - zh: '搭建开发环境', - en: 'Set Up Dev Environment' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/set-up-env.html', - en: 'http://weex-project.io/guide/set-up-env.html' - } - }, { - title: { - zh: '通用样式', - en: 'Common Styles' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/common-styles.html', - en: 'http://weex-project.io/wiki/common-styles.html' - } - }, { - title: { - zh: '通用事件', - en: 'Common Events' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/common-events.html', - en: 'http://weex-project.io/wiki/common-events.html' - } - }, { - title: { - zh: 'Weex 实例变量', - en: 'The "weex" Variable' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/weex-variable.html', - en: 'http://weex-project.io/references/weex-variable.html' - } - }, { - title: { - zh: '内置组件', - en: 'Built-in Components' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/components/index.html', - en: 'http://weex-project.io/references/components/index.html' - } - }, { - title: { - zh: '内置模块', - en: 'Built-in Modules' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/modules/index.html', - en: 'http://weex-project.io/references/modules/index.html' - } - }, { - title: { - zh: '扩展 Android 组件/模块', - en: 'Extend Android' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/extend-android.html', - en: 'http://weex-project.io/guide/extend-android.html' - } - }, { - title: { - zh: '扩展 iOS 组件/模块', - en: 'Extend iOS' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/extend-ios.html', - en: 'http://weex-project.io/guide/extend-ios.html' - } - }, { - title: { - zh: '使用 weex-toolkit', - en: 'Use weex-toolkit' - }, - docLink: { - zh: 'http://weex-project.io/cn/tools/toolkit.html', - en: 'http://weex-project.io/tools/toolkit.html' - } - }, { - title: { - zh: '如何参与贡献', - en: 'How to Contribute' - }, - docLink: { - zh: 'http://weex-project.io/cn/contributing.html', - en: 'http://weex-project.io/contributing.html' - } - }] -}, (_ref = { - subject: 'vue', - mainColor: '#42b983', - title: { zh: '学习 Vue.js', en: 'Learn Vue.js' }, - poster: 'https://gw.alicdn.com/tfs/TB1J_uKcMMPMeJjy1XdXXasrXXa-400-400.png', - posterBg: '#E7FBF2', - posterStyle: { - width: '300px', - height: '300px' - } -}, (0, _defineProperty3.default)(_ref, 'title', { - zh: '学习 Vue.js', - en: 'Learn Vue.js' -}), (0, _defineProperty3.default)(_ref, 'copyright', { - zh: '来自 https://cn.vuejs.org/', - en: 'From https://vuejs.org/' -}), (0, _defineProperty3.default)(_ref, 'lessons', [{ - title: { - zh: 'Vue.js 是什么?', - en: 'What is Vue.js ?' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/index.html', - en: 'https://vuejs.org/v2/guide/index.html' - } -}, { - title: { - zh: '单文件组件', - en: 'Single File Components' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/single-file-components.html', - en: 'https://vuejs.org/v2/guide/single-file-components.html' - } -}, { - title: { - zh: '模板语法', - en: 'Template Syntax' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/syntax.html', - en: 'https://vuejs.org/v2/guide/syntax.html' - } -}, { - title: { - zh: 'Class 与 Style 绑定', - en: 'Class and Style Bindings' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/class-and-style.html', - en: 'https://vuejs.org/v2/guide/class-and-style.html' - } -}, { - title: { - zh: '条件渲染', - en: 'Conditional Rendering' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/conditional.html', - en: 'https://vuejs.org/v2/guide/conditional.html' - } -}, { - title: { - zh: '列表渲染', - en: 'List Rendering' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/list.html', - en: 'https://vuejs.org/v2/guide/list.html' - } -}, { - title: { - zh: '事件处理', - en: 'Event Handling' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/events.html', - en: 'https://vuejs.org/v2/guide/events.html' - } -}, { - title: { - zh: '表单输入绑定', - en: 'Form Input Bindings' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/forms.html', - en: 'https://vuejs.org/v2/guide/forms.html' - } -}, { - title: { - zh: 'Vue 实例', - en: 'The Vue Instance' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/instance.html', - en: 'https://vuejs.org/v2/guide/instance.html' - } -}, { - title: { - zh: '在 Weex 中使用 Vue.js', - en: 'Use Vue.js on Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/use-vue.html', - en: 'http://weex-project.io/guide/use-vue.html' - } -}, { - title: { - zh: '混合(mixins)', - en: 'Mixins' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/mixins.html', - en: 'https://vuejs.org/v2/guide/mixins.html' - } -}, { - title: { - zh: '过滤器(filters)', - en: 'Filters' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/filters.html', - en: 'https://vuejs.org/v2/guide/filters.html' - } -}, { - title: { - zh: '插件(plugins)', - en: 'Plugins' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/plugins.html', - en: 'https://vuejs.org/v2/guide/plugins.html' - } -}, { - title: { - zh: '自定义指令', - en: 'Custom Directives' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/custom-directive.html', - en: 'https://vuejs.org/v2/guide/custom-directive.html' - } -}, { - title: { - zh: '状态管理', - en: 'State Management' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/state-management.html', - en: 'https://vuejs.org/v2/guide/state-management.html' - } -}, { - title: { - zh: '深入响应式原理', - en: 'Reactivity in Depth' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/reactivity.html', - en: 'https://vuejs.org/v2/guide/reactivity.html' - } -}, { - title: { - zh: '渲染函数', - en: 'Render Functions' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/render-function.html', - en: 'https://vuejs.org/v2/guide/render-function.html' - } -}, { - title: { - zh: 'TypeScript 支持', - en: 'TypeScript Support' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/typescript.html', - en: 'https://vuejs.org/v2/guide/typescript.html' - } -}, { - title: 'API', - docLink: { - zh: 'https://cn.vuejs.org/v2/api/', - en: 'https://vuejs.org/v2/api/' - } -}]), _ref), (_ref2 = { - subject: 'javascript', - mainColor: '#F7BD2A', - title: { zh: '学习 Javascript', en: 'Learn Javascript' }, - poster: 'https://gw.alicdn.com/tfs/TB1bT98hMoQMeJjy0FpXXcTxpXa-1500-700.png', - posterBg: '#FAF3EB', - posterStyle: { - width: '750px', - height: '350px' - } -}, (0, _defineProperty3.default)(_ref2, 'title', { - zh: '学习 Javascript', - en: 'Learn Javascript' -}), (0, _defineProperty3.default)(_ref2, 'copyright', { - zh: '来自 MDN (Mozilla Developer Network)', - en: 'From MDN (Mozilla Developer Network)' -}), (0, _defineProperty3.default)(_ref2, 'lessons', [{ - title: { - zh: '什么是 Javascript ?', - en: 'What is Javascript ?' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript' - } -}, { - title: { - zh: 'JavaScript基础', - en: 'JavaScript basics' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics', - en: 'https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics' - } -}, { - title: { - zh: '重新介绍 JavaScript', - en: 'A re-introduction to JavaScript' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript' - } -}, { - title: { - zh: '语法和数据类型', - en: 'Grammar and types' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope' - } -}, { - title: { - zh: '数据类型和数据结构', - en: 'Data types and data structures' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures' - } -}, { - title: { - zh: '变量', - en: 'Variables' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Variables', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables' - } -}, { - title: { - zh: '数字和操作符', - en: 'Numbers and operators' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Math', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Math' - } -}, { - title: { - zh: '字符串', - en: 'Handling text' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Strings', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings' - } -}, { - title: { - zh: '常用的 String 方法', - en: 'Useful string methods' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Useful_string_methods', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods' - } -}, { - title: { - zh: '数组', - en: 'Arrays' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Arrays', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Arrays' - } -}, { - title: { - zh: '函数', - en: 'Functions' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions' - } -}, { - title: { - zh: 'JavaScript 对象基础', - en: 'JavaScript object basics' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics' - } -}, { - title: { - zh: '使用对象', - en: 'Working with objects' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects' - } -}, { - title: { - zh: '使用 JSON 数据', - en: 'Working with JSON' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON' - } -}, { - title: { - zh: '对象模型的细节', - en: 'Details of the object model' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model' - } -}, { - title: { - zh: '对象原型', - en: 'Object prototypes' - }, - docLink: { - zh: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes', - en: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes' - } -}, { - title: { - zh: 'JavaScript 中的继承', - en: 'Inheritance in JavaScript' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Inheritance', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance' - } -}, { - title: { - zh: '继承与原型链', - en: 'Inheritance and the prototype chain' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain' - } -}, { - title: { - zh: '严格模式', - en: 'Strict mode' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode' - } -}, { - title: { - zh: '内存管理', - en: 'Memory Management' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Memory_Management', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management' - } -}, { - title: { - zh: '并发模型与事件循环', - en: 'Concurrency model and Event Loop' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop' - } -}, { - // title: { - // zh: '索引集合类', - // en: 'Indexed collections' - // }, - // docLink: { - // zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections', - // en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Indexed_collections' - // } - // }, { - // title: { - // zh: '带键的集合', - // en: 'Keyed collections' - // }, - // docLink: { - // zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Keyed_collections', - // en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Keyed_collections' - // } - // }, { - title: { - zh: 'JavaScript 标准库', - en: 'Standard built-in objects' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects' - } -}]), _ref2), (_ref3 = { - subject: 'css', - mainColor: '#F56FC6', - title: { zh: '学习 CSS', en: 'Learn CSS' }, - titleColor: '#FFFFFF', - poster: 'https://gw.alicdn.com/tfs/TB1k6anhMMPMeJjy1XdXXasrXXa-427-190.jpg', - posterBg: '#FFA2DE', - posterStyle: { - width: '517px', - height: '230px' - } -}, (0, _defineProperty3.default)(_ref3, 'title', { - zh: '学习 CSS', - en: 'Learn CSS' -}), (0, _defineProperty3.default)(_ref3, 'copyright', { - zh: '来自 MDN (Mozilla Developer Network)', - en: 'From MDN (Mozilla Developer Network)' -}), (0, _defineProperty3.default)(_ref3, 'lessons', [{ - title: { - zh: '什么是 CSS ?', - en: 'What is CSS ?' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Getting_started/What_is_CSS', - en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/What_is_CSS' - } -}, { - title: { - zh: 'CSS 语法', - en: 'CSS Syntax' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Syntax', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Syntax' - } -}, { - title: { - zh: 'CSS的值和单位', - en: 'CSS Values and Units' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Values_and_units', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Values_and_units' - } -}, { - title: { - zh: '盒模型', - en: 'The Box Model' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Box_model', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Box_model' - } -}, { - title: { - zh: '盒模型的属性', - en: 'Box Model Properties' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Box_Model', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model' - } -}, { - title: { - zh: '定位布局', - en: 'Positioning' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/%E5%AE%9A%E4%BD%8Dx', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/positioning' - } -}, { - title: { - zh: '定位布局的属性', - en: 'CSS Positioning' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Positioning', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning' - } -}, { - title: { - zh: 'Flexbox 布局', - en: 'Flexbox Layout' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox' - } -}, { - title: { - zh: 'Flexbox 布局的属性', - en: 'CSS Flexible Box Layout' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout' - } -}, { - title: { - zh: 'Weex 中的通用样式', - en: 'Common Styles in Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/common-style.html', - en: 'http://weex-project.io/references/common-style.html' - } -}, { - title: { - zh: 'Weex 中的文本样式', - en: 'Text Styles in Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/text-style.html', - en: 'http://weex-project.io/references/text-style.html' - } -}, { - title: { - zh: '块格式化上下文(BFC)', - en: 'Block Formatting Context' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context', - en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context' - } -}, { - title: { - zh: '视觉格式化模型', - en: 'Visual Formatting Model' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Visual_formatting_model', - en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Visual_formatting_model' - } -}, { - title: 'CSS Reference', - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/Reference' - } -}]), _ref3)]; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__(79); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, key, value) { - if (key in obj) { - (0, _defineProperty2.default)(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(80), __esModule: true }; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(81); -var $Object = __webpack_require__(4).Object; -module.exports = function defineProperty(it, key, desc) { - return $Object.defineProperty(it, key, desc); -}; - - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(16); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__(2), 'Object', { defineProperty: __webpack_require__(1).f }); - - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(83) -) - -/* script */ -__vue_exports__ = __webpack_require__(84) - -/* template */ -var __vue_template__ = __webpack_require__(85) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/components/AppInfoCard.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-0ba305b6" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 83 */ -/***/ (function(module, exports) { - -module.exports = { - "card": { - "width": "650", - "justifyContent": "center", - "borderWidth": "1", - "borderColor": "#DDDDDD", - "borderRadius": "20", - "paddingTop": "50", - "paddingRight": "50", - "paddingBottom": "50", - "paddingLeft": "50", - "marginTop": "50", - "marginRight": "50", - "marginBottom": "50", - "marginLeft": "50", - "backgroundColor": "#FFFFFF" - }, - "title": { - "fontSize": "34", - "textAlign": "center", - "color": "#808080", - "marginBottom": "20" - }, - "version": { - "fontSize": "80", - "textAlign": "center", - "marginBottom": "30", - "color": "#323232" - }, - "group": { - "marginTop": "10", - "flexDirection": "row" - }, - "label": { - "width": "260", - "fontSize": "32", - "textAlign": "right", - "color": "#888888" - }, - "value": { - "width": "230", - "paddingLeft": "50", - "fontSize": "32", - "color": "#414141" - } -} - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof2 = __webpack_require__(28); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -var invalid = '- invalid -'; -var unknown = '- - -'; -exports.default = { - data: function data() { - return { - version: invalid, - jsfmVersion: invalid, - platform: invalid, - osVersion: invalid, - deviceModel: invalid - }; - }, - created: function created() { - try { - this.jsfmVersion = getJSFMVersion(); - } catch (e) { - this.jsfmVersion = '≤ 0.15.6'; - } - if ((typeof WXEnvironment === 'undefined' ? 'undefined' : (0, _typeof3.default)(WXEnvironment)) === 'object') { - this.version = WXEnvironment.weexVersion || unknown; - this.platform = WXEnvironment.platform || unknown; - this.osVersion = WXEnvironment.osVersion || unknown; - this.deviceModel = WXEnvironment.deviceModel || unknown; - } - } -}; - -/***/ }), -/* 85 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('div', { - staticClass: ["card"] - }, [_c('div', { - staticClass: ["info"] - }, [_c('text', { - staticClass: ["title"] - }, [_vm._v("Weex SDK Version")]), _c('text', { - staticClass: ["version"] - }, [_vm._v(_vm._s(_vm.version))]), _c('div', { - staticClass: ["group"] - }, [_c('text', { - staticClass: ["label"] - }, [_vm._v("JS Framework")]), _c('text', { - staticClass: ["value"] - }, [_vm._v(_vm._s(_vm.jsfmVersion))])]), _c('div', { - staticClass: ["group"] - }, [_c('text', { - staticClass: ["label"] - }, [_vm._v("platform")]), _c('text', { - staticClass: ["value"] - }, [_vm._v(_vm._s(_vm.platform))])]), _c('div', { - staticClass: ["group"] - }, [_c('text', { - staticClass: ["label"] - }, [_vm._v("osVersion")]), _c('text', { - staticClass: ["value"] - }, [_vm._v(_vm._s(_vm.osVersion))])]), _c('div', { - staticClass: ["group"] - }, [_c('text', { - staticClass: ["label"] - }, [_vm._v("deviceModel")]), _c('text', { - staticClass: ["value"] - }, [_vm._v(_vm._s(_vm.deviceModel))])])])]) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }), -/* 86 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('list', { - staticClass: ["list"] - }, [_c('cell', { - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_c('app-info-card')], 1), _vm._l((_vm.aboutApp), function(item, i) { - return _c('cell', { - key: i, - class: ['item-cell', ("item-cell-" + (i+1))], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [(item.link) ? _c('div', { - class: ['item', ("item-" + (i+1))], - on: { - "click": function($event) { - _vm.jumpTo(item.link, _vm.i18n(item.title)) - } - } - }, [_c('text', { - staticClass: ["item-title"] - }, [_vm._v(_vm._s(_vm.i18n(item.title)))]), _c('image', { - staticClass: ["arrow-icon"], - attrs: { - "src": "https://gw.alicdn.com/tfs/TB1iL2fkLDH8KJjy1XcXXcpdXXa-32-49.png" - } - })]) : _vm._e()]) - }), _c('cell', { - staticClass: ["item-cell"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_c('div', { - staticClass: ["item"], - on: { - "click": _vm.chooseLanguage - } - }, [_c('text', { - staticClass: ["item-title"] - }, [_vm._v(_vm._s(_vm.i18n(_vm.dict.LANGUAGE)))]), _c('text', { - staticClass: ["item-value"] - }, [_vm._v(_vm._s(_vm.languageName))])])]), _vm._m(0)], 2) -},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('cell', { - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_c('div', { - staticClass: ["copyright"] - }, [_c('text', { - staticClass: ["copyright-text"] - }, [_vm._v("Copyright(c) 2017 The Apache Software Foundation.")]), _c('text', { - staticClass: ["copyright-text"] - }, [_vm._v("Licensed under the Apache License, Version 2.0")])])]) -}]} -module.exports.render._withStripped = true - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/ios/playground/bundlejs/examples.weex.js b/ios/playground/bundlejs/examples.weex.js deleted file mode 100644 index 68d81c8530..0000000000 --- a/ios/playground/bundlejs/examples.weex.js +++ /dev/null @@ -1,2598 +0,0 @@ -// { "framework": "Vue" } -"use weex:vue"; - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 37); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var createDesc = __webpack_require__(12); -module.exports = __webpack_require__(4) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(29); -var toPrimitive = __webpack_require__(17); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(11)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(51); -var defined = __webpack_require__(16); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(21)('wks'); -var uid = __webpack_require__(13); -var Symbol = __webpack_require__(0).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined; - -var _stringify = __webpack_require__(40); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(42); - -var _typeof3 = _interopRequireDefault(_typeof2); - -exports.createLink = createLink; -exports.createURL = createURL; -exports.i18n = i18n; -exports.parseLanguage = parseLanguage; -exports.setLanguage = setLanguage; -exports.clearStorageLanguage = clearStorageLanguage; -exports.getStorageLanguage = getStorageLanguage; -exports.getSystemLanguage = getSystemLanguage; -exports.getLanguage = getLanguage; -exports.jumpTo = jumpTo; -exports.viewSource = viewSource; -exports.setTitleBar = setTitleBar; -exports.fetchData = fetchData; -exports.saveData = saveData; -exports.readData = readData; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var stream = weex.requireModule('stream'); -var storage = weex.requireModule('storage'); -var navigator = weex.requireModule('navigator'); - -var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) { - return x; -}; - -function encodeParams(params) { - if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') { - return ''; - } - var array = []; - for (var key in params) { - if (typeof params[key] === 'string') { - array.push(encoder(key) + '=' + encoder(params[key])); - } - } - return array.join('&'); -} - -function createLink(name) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var args = []; - for (var key in params) { - if (typeof params[key] === 'string') { - args.push(encoder(key) + '=' + encoder(params[key])); - } - } - if (WXEnvironment.platform === 'Web') { - args.unshift('page=' + name + '.web.js'); - return '/?' + args.join('&'); - } - var base = getBaseURL(); - return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : ''); -} - -function createURL(hash, params) { - if (WXEnvironment.platform === 'Web') { - return 'http://dotwe.org/raw/htmlVue/' + hash; - } - var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx'; - var paramString = encodeParams(params); - if (WXEnvironment.appName === 'TB') { - return url + '?_wx_tpl=' + url + '&' + paramString; - } - if (WXEnvironment.appName === 'WXSample') { - return url + '?' + paramString; - } - return url + '?wx_weex=true&' + paramString; -} - -function getBaseURL() { - var bundleUrl = weex.config.bundleUrl; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - return 'file://assets/'; - } else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - return ''; -} - -function i18n(text, language) { - if (typeof text === 'string') { - return text; - } - if (Object.prototype.toString.call(text) === '[object Object]') { - var lang = this && this.language || language || 'en'; - return text[lang]; - } -} - -var supportedLanguageRE = /(en|zh)\_?\w*/i; -function parseLanguage(language) { - var match = supportedLanguageRE.exec(language + ''); - if (match && match[1]) { - return match[1]; - } - return ''; -} - -function setLanguage(language) { - var lang = parseLanguage(language); - if (lang) { - storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang); - } -} - -function clearStorageLanguage() { - storage.removeItem('WEEX_PLAYGROUND_LANGUAGE'); -} - -function getStorageLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - try { - storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) { - if (event.result === 'success') { - var lang = parseLanguage(event.data); - lang ? done(lang) : fail(); - } else { - fail(event); - } - }); - } catch (err) { - fail(err); - } -} - -function getSystemLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - if (WXEnvironment.platform.toLowerCase() === 'web') { - var lang = parseLanguage(window.navigator.language); - lang ? done(lang) : fail(); - } else { - try { - var locale = weex.requireModule('locale') || weex.requireModule('local'); - var useSync = false; - var resSync = locale.getLanguage(function (language) { - var lang = parseLanguage(language); - if (lang) { - useSync || done(lang); - } else { - fail(); - } - }); - var langSync = parseLanguage(resSync); - if (langSync) { - useSync = true; - done(langSync); - } else { - fail(); - } - } catch (e) { - fail(e); - } - } -} - -var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i; -function getLanguage() { - var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - - var match = languageRE.exec(weex.config.bundleUrl || ''); - var lang = parseLanguage(match && match[1]); - if (lang) { - done(lang); - } else { - getStorageLanguage(done, function () { - getSystemLanguage(done, function () { - done('en'); - }); - }); - } -} - -function jumpTo(url, title, lang) { - getLanguage(function (language) { - storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language)); - navigator.push({ - url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) }) - }); - }); -} - -function viewSource(hash) { - getLanguage(function (language) { - navigator.push({ - url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language }) - }); - }); -} - -function setTitleBar(options) { - var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en'; - - if (Object.prototype.toString.apply(options) !== '[object Object]') { - return; - } - var titleBar = weex.requireModule('titleBar'); - if (options.color || options.backgroundColor) { - try { - titleBar.setStyle({ - foregroundColor: options.color || '#FFFFFF', - backgroundColor: options.backgroundColor || '#00B4FF' - }); - } catch (e) {} - } - var title = i18n(options.title, language); - if (title) { - try { - titleBar.setTitle(title); - } catch (e) {} - } -} - -var storageKeys = { - doodle: 'WEEX_PLAYGROUND_APP_DOODLE', - guide: 'WEEX_PLAYGROUND_APP_GUIDE', - examples: 'WEEX_PLAYGROUND_APP_EXAMPLES', - news: 'WEEX_PLAYGROUND_APP_NEWS', - about: 'WEEX_PLAYGROUND_APP_ABOUT' -}; -function fetchData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - try { - stream.fetch({ - url: 'http://dotwe.org/query/weex-playground-app', - method: 'post', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - type: 'json', - body: 'name=' + name - }, function (res) { - if (res.ok && res.data && res.data.success) { - done(res.data); - } else { - fail(res); - } - }); - } catch (err) { - fail(err); - } -} -function saveData(name, result) { - var key = storageKeys[name]; - if (!key) return; - if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') { - result.timestamp = Date.now(); - storage.setItem(key, (0, _stringify2.default)(result)); - } -} -function readData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - var key = storageKeys[name]; - if (!key) return fail(); - try { - storage.getItem(key, function (event) { - if (event.result === 'success') { - var result = JSON.parse(event.data); - if (result && Array.isArray(result[name])) { - return done(result[name]); - } - } - fail(event); - }); - } catch (e) { - fail(e); - } -} - -var fetchExamples = exports.fetchExamples = function fetchExamples() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return fetchData.apply(undefined, ['examples'].concat(args)); -}; -var saveExamples = exports.saveExamples = function saveExamples() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return saveData.apply(undefined, ['examples'].concat(args)); -}; -var readExamples = exports.readExamples = function readExamples() { - for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - - return readData.apply(undefined, ['examples'].concat(args)); -}; - -var fetchGuide = exports.fetchGuide = function fetchGuide() { - for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - args[_key4] = arguments[_key4]; - } - - return fetchData.apply(undefined, ['guide'].concat(args)); -}; -var saveGuide = exports.saveGuide = function saveGuide() { - for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - args[_key5] = arguments[_key5]; - } - - return saveData.apply(undefined, ['guide'].concat(args)); -}; -var readGuide = exports.readGuide = function readGuide() { - for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - return readData.apply(undefined, ['guide'].concat(args)); -}; - -var fetchAbout = exports.fetchAbout = function fetchAbout() { - for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { - args[_key7] = arguments[_key7]; - } - - return fetchData.apply(undefined, ['about'].concat(args)); -}; -var saveAbout = exports.saveAbout = function saveAbout() { - for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { - args[_key8] = arguments[_key8]; - } - - return saveData.apply(undefined, ['about'].concat(args)); -}; -var readAbout = exports.readAbout = function readAbout() { - for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { - args[_key9] = arguments[_key9]; - } - - return readData.apply(undefined, ['about'].concat(args)); -}; - -var fetchDoodle = exports.fetchDoodle = function fetchDoodle() { - for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - args[_key10] = arguments[_key10]; - } - - return fetchData.apply(undefined, ['doodle'].concat(args)); -}; -var fetchNews = exports.fetchNews = function fetchNews() { - for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; - } - - return fetchData.apply(undefined, ['news'].concat(args)); -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(8); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(33); -var enumBugKeys = __webpack_require__(22); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(21)('keys'); -var uid = __webpack_require__(13); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var global = __webpack_require__(0); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(9) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(3).f; -var has = __webpack_require__(1); -var TAG = __webpack_require__(6)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(6); - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(7); -var LIBRARY = __webpack_require__(9); -var wksExt = __webpack_require__(24); -var defineProperty = __webpack_require__(3).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(9); -var $export = __webpack_require__(28); -var redefine = __webpack_require__(31); -var hide = __webpack_require__(2); -var Iterators = __webpack_require__(18); -var $iterCreate = __webpack_require__(49); -var setToStringTag = __webpack_require__(23); -var getPrototypeOf = __webpack_require__(56); -var ITERATOR = __webpack_require__(6)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(7); -var ctx = __webpack_require__(47); -var hide = __webpack_require__(2); -var has = __webpack_require__(1); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(4) && !__webpack_require__(11)(function () { - return Object.defineProperty(__webpack_require__(30)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -var document = __webpack_require__(0).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(2); - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(10); -var dPs = __webpack_require__(50); -var enumBugKeys = __webpack_require__(22); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(30)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(55).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(1); -var toIObject = __webpack_require__(5); -var arrayIndexOf = __webpack_require__(52)(false); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(33); -var hiddenKeys = __webpack_require__(22).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -__webpack_require__(38); - -var _Examples = __webpack_require__(73); - -var _Examples2 = _interopRequireDefault(_Examples); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// show title bar -try { - var titleBar = weex.requireModule('titleBar'); - titleBar.showTitleBar(true); -} catch (e) {} - -_Examples2.default.el = '#root'; -new Vue(_Examples2.default); - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _mixin = __webpack_require__(39); - -var _mixin2 = _interopRequireDefault(_mixin); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// use shared mixins -Vue.mixin(_mixin2.default); - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _index = __webpack_require__(14); - -var utils = _interopRequireWildcard(_index); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var storage = weex.requireModule('storage'); - -exports.default = { - filters: { - i18n: utils.i18n, - url: utils.createURL, - link: utils.createLink - }, - methods: { - createLink: utils.createLink, - createURL: utils.createURL, - i18n: utils.i18n, - getLanguage: utils.getLanguage, - fetchData: utils.fetchData, - saveData: utils.saveData, - readData: utils.readData, - jumpTo: utils.jumpTo - }, - created: function created() { - var _this = this; - - // get and set language - utils.getLanguage(function (language) { - _this.language = language; - utils.setTitleBar(_this.navigationBarOptions, language); - }); - - // listen to the language change event - var channel = new BroadcastChannel('language'); - channel.onmessage = function (event) { - if (event.data && event.data.language) { - _this.language = event.data.language; - } - }; - }, - beforeDestroy: function beforeDestroy() { - storage.removeItem('CURRENT_DOCUMENT_URL'); - storage.removeItem('CURRENT_SOURCE_HASH'); - } -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(41), __esModule: true }; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(43); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(62); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(44), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(45); -__webpack_require__(58); -module.exports = __webpack_require__(24).f('iterator'); - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(46)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(27)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(15); -var defined = __webpack_require__(16); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(48); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(32); -var descriptor = __webpack_require__(12); -var setToStringTag = __webpack_require__(23); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(2)(IteratorPrototype, __webpack_require__(6)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var anObject = __webpack_require__(10); -var getKeys = __webpack_require__(19); - -module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(34); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(5); -var toLength = __webpack_require__(53); -var toAbsoluteIndex = __webpack_require__(54); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(15); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(15); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(0).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(1); -var toObject = __webpack_require__(57); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(16); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(59); -var global = __webpack_require__(0); -var hide = __webpack_require__(2); -var Iterators = __webpack_require__(18); -var TO_STRING_TAG = __webpack_require__(6)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(60); -var step = __webpack_require__(61); -var Iterators = __webpack_require__(18); -var toIObject = __webpack_require__(5); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(27)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 60 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(63), __esModule: true }; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(64); -__webpack_require__(70); -__webpack_require__(71); -__webpack_require__(72); -module.exports = __webpack_require__(7).Symbol; - - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(0); -var has = __webpack_require__(1); -var DESCRIPTORS = __webpack_require__(4); -var $export = __webpack_require__(28); -var redefine = __webpack_require__(31); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(11); -var shared = __webpack_require__(21); -var setToStringTag = __webpack_require__(23); -var uid = __webpack_require__(13); -var wks = __webpack_require__(6); -var wksExt = __webpack_require__(24); -var wksDefine = __webpack_require__(25); -var enumKeys = __webpack_require__(66); -var isArray = __webpack_require__(67); -var anObject = __webpack_require__(10); -var isObject = __webpack_require__(8); -var toIObject = __webpack_require__(5); -var toPrimitive = __webpack_require__(17); -var createDesc = __webpack_require__(12); -var _create = __webpack_require__(32); -var gOPNExt = __webpack_require__(68); -var $GOPD = __webpack_require__(69); -var $DP = __webpack_require__(3); -var $keys = __webpack_require__(19); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(36).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(26).f = $propertyIsEnumerable; - __webpack_require__(35).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(9)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(2)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(13)('meta'); -var isObject = __webpack_require__(8); -var has = __webpack_require__(1); -var setDesc = __webpack_require__(3).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(11)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(19); -var gOPS = __webpack_require__(35); -var pIE = __webpack_require__(26); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(34); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(5); -var gOPN = __webpack_require__(36).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(26); -var createDesc = __webpack_require__(12); -var toIObject = __webpack_require__(5); -var toPrimitive = __webpack_require__(17); -var has = __webpack_require__(1); -var IE8_DOM_DEFINE = __webpack_require__(29); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('asyncIterator'); - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('observable'); - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(74) -) - -/* script */ -__vue_exports__ = __webpack_require__(75) - -/* template */ -var __vue_template__ = __webpack_require__(80) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/pages/examples/Examples.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-694b6655" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 74 */ -/***/ (function(module, exports) { - -module.exports = { - "example-list": { - "width": "750", - "position": "absolute", - "top": 0, - "bottom": "100", - "backgroundColor": "#F5F5F5" - }, - "group-info": { - "backgroundColor": "#FFFFFF" - }, - "loading": { - "flex": 1, - "justifyContent": "center", - "alignItems": "center" - }, - "loading-text": { - "fontSize": "60", - "color": "#BBBBBB" - }, - "group-title": { - "width": "750", - "paddingTop": "20", - "paddingBottom": "35", - "fontSize": "40", - "textAlign": "center", - "color": "#00B4FF", - "backgroundImage": "linear-gradient(to bottom, #E3F5FB, #F9FEFF)" - }, - "group-desc": { - "fontSize": "28", - "color": "#999999", - "marginTop": "10", - "marginLeft": "30", - "marginRight": "40" - }, - "doc-link": { - "fontSize": "26", - "color": "rgba(0,189,255,0.6)", - "textAlign": "right", - "marginTop": "10", - "marginRight": "60", - "marginBottom": "20" - }, - "section": { - "paddingBottom": "30" - }, - "tabbar": { - "width": "750", - "position": "fixed", - "bottom": 0, - "height": "100", - "flexDirection": "row", - "justifyContent": "space-around", - "alignItems": "flex-end", - "backgroundColor": "#E6E6E6" - }, - "tab-cell": { - "width": "186", - "height": "100", - "borderTopWidth": "2", - "borderTopStyle": "solid", - "borderTopColor": "#DDDDDD", - "justifyContent": "center", - "backgroundColor": "#FCFCFC", - "transitionProperty": "backgroundColor", - "transitionDuration": 200 - }, - "@TRANSITION": { - "tab-cell": { - "property": "backgroundColor", - "duration": 200 - }, - "tab-name": { - "property": "color,fontSize", - "duration": 100 - } - }, - "active-tab-cell": { - "borderTopColor": "rgba(0,189,255,0.8)", - "backgroundColor": "#BDECFF" - }, - "tab-name": { - "textAlign": "center", - "color": "#666666", - "transitionProperty": "color,fontSize", - "transitionDuration": 100 - }, - "tab-name-zh": { - "fontSize": "36" - }, - "tab-name-en": { - "fontSize": "30" - }, - "active-tab-name-zh": { - "color": "#00B4FF", - "fontSize": "42", - "fontWeight": "bold" - }, - "active-tab-name-en": { - "color": "#00B4FF", - "fontSize": "30", - "fontWeight": "bold" - } -} - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _utils = __webpack_require__(14); - -var _ExampleScroller = __webpack_require__(76); - -var _ExampleScroller2 = _interopRequireDefault(_ExampleScroller); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// import getExamples from '../../examples' -// const exampleMap = getExamples({ scope: 'mobile', filterTODO: true }) -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -var exampleMap = []; -var useStorage = false; -exports.default = { - components: { ExampleScroller: _ExampleScroller2.default }, - data: function data() { - return { - navigationBarOptions: { - title: { - zh: '使用 Weex 的例子', - en: 'Weex Examples' - } - }, - examples: exampleMap, - showLoading: false, - language: 'en', - activeTab: 'component', - activeGroup: 'div', - dict: { - READ_MORE: { en: 'read more', zh: '查看更多' } - } - }; - }, - beforeCreate: function beforeCreate() { - var _this = this; - - // read examples from storage - (0, _utils.readExamples)(function (examples) { - _this.examples = examples; - if (WXEnvironment.platform.toLowerCase() !== 'web') { - useStorage = true; - } - }); - - // update examples to storage - (0, _utils.fetchExamples)(function (result) { - (0, _utils.saveExamples)(result); - if (!useStorage) { - _this.examples = result.examples; - } - }); - - setTimeout(function () { - _this.showLoading = true; - }, 400); - }, - - computed: { - tabs: function tabs() { - return this.examples.map(function (group) { - return { - type: group.type, - name: group.name - }; - }); - }, - currentTab: function currentTab() { - var _this2 = this; - - return this.examples.filter(function (tab) { - return tab.type === _this2.activeTab; - })[0]; - } - }, - methods: { - toggleTab: function toggleTab(tabType) { - this.activeTab = tabType; - this.activeGroup = this.currentTab.group[0].type; - } - } -}; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(77) -) - -/* script */ -__vue_exports__ = __webpack_require__(78) - -/* template */ -var __vue_template__ = __webpack_require__(79) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/components/ExampleScroller.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-1f23e14a" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 77 */ -/***/ (function(module, exports) { - -module.exports = { - "scroller": { - "flexDirection": "row", - "backgroundColor": "#FDFDFD", - "paddingTop": "20", - "paddingRight": "20", - "paddingBottom": "20", - "paddingLeft": "20", - "height": "600" - }, - "example-box": { - "justifyContent": "space-between", - "alignItems": "center", - "paddingLeft": "6", - "paddingRight": "6", - "width": "310" - }, - "screenshot": { - "width": "270", - "height": "422", - "borderWidth": "1", - "borderColor": "#DDDDDD" - }, - "title": { - "height": "75", - "justifyContent": "center" - }, - "title-text": { - "fontSize": "32", - "textAlign": "center", - "color": "#606060", - "paddingTop": "10", - "paddingBottom": "10" - }, - "example-tips": { - "fontSize": "28", - "textAlign": "center", - "color": "#A5A5A5", - "paddingTop": "10", - "paddingBottom": "10" - } -} - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _utils = __webpack_require__(14); - -exports.default = { - methods: { viewSource: _utils.viewSource }, - props: { - language: { - type: String, - default: 'en' - }, - examples: { - type: Array, - required: true - } - }, - data: function data() { - return { - VIEW_SOURCE: { - en: 'view source', - zh: '查看源码' - } - }; - } -}; // -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -/***/ }), -/* 79 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('scroller', { - staticClass: ["scroller"], - attrs: { - "scrollDirection": "horizontal" - } - }, _vm._l((_vm.examples), function(example, i) { - return _c('div', { - key: i, - staticClass: ["example-box"] - }, [_c('div', { - staticClass: ["title"] - }, [_c('text', { - staticClass: ["title-text"] - }, [_vm._v(_vm._s(_vm.i18n(example.title)))])]), _c('div', { - staticStyle: { - alignItems: "center" - } - }, [_c('a', { - attrs: { - "href": _vm._f("url")(_vm.i18n(example.hash)) - } - }, [_c('image', { - staticClass: ["screenshot"], - attrs: { - "src": _vm.i18n(example.screenshot) - } - })]), _c('text', { - staticClass: ["example-tips"], - on: { - "click": function($event) { - _vm.viewSource(_vm.i18n(example.hash)) - } - } - }, [_vm._v(_vm._s(_vm.i18n(_vm.VIEW_SOURCE)))])])]) - })) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }), -/* 80 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('div', { - staticClass: ["wrapper"] - }, [(_vm.examples && _vm.examples.length) ? _c('list', { - staticClass: ["example-list"] - }, [_vm._l((_vm.currentTab.group), function(exampleGroup) { - return [(exampleGroup && exampleGroup.title || exampleGroup.name) ? _c('cell', { - key: exampleGroup.type, - ref: exampleGroup.type, - refInFor: true, - staticClass: ["group-info"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_c('text', { - staticClass: ["group-title"] - }, [_vm._v(_vm._s(_vm.i18n(exampleGroup.title || exampleGroup.name)))]), (exampleGroup.desc) ? _c('text', { - staticClass: ["group-desc"] - }, [_vm._v(_vm._s(_vm.i18n(exampleGroup.desc)))]) : _vm._e(), (exampleGroup.desc && exampleGroup.docLink) ? _c('text', { - staticClass: ["doc-link"], - on: { - "click": function($event) { - _vm.jumpTo(_vm.i18n(exampleGroup.docLink)) - } - } - }, [_vm._v(_vm._s(_vm.i18n(_vm.dict.READ_MORE)) + " >>")]) : _vm._e()]) : _vm._e(), _c('cell', { - key: exampleGroup.type + '-examples', - staticClass: ["section"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_c('example-scroller', { - attrs: { - "language": _vm.language, - "examples": exampleGroup.examples - } - })], 1)] - })], 2) : (_vm.showLoading) ? _c('div', { - staticClass: ["loading"] - }, [_c('text', { - staticClass: ["loading-text"] - }, [_vm._v("loading ...")])]) : _vm._e(), (_vm.tabs && _vm.tabs.length) ? _c('div', { - staticClass: ["tabbar"] - }, _vm._l((_vm.tabs), function(tab) { - return _c('div', { - key: tab.type, - class: ['tab-cell', tab.type === _vm.activeTab ? 'active-tab-cell' : ''], - on: { - "click": function($event) { - _vm.toggleTab(tab.type) - } - } - }, [_c('text', { - class: [ - 'tab-name', - ("tab-name-" + _vm.language), - tab.type === _vm.activeTab ? ("active-tab-name-" + _vm.language) : '' - ] - }, [_vm._v(_vm._s(_vm.i18n(tab.name)))])]) - })) : _vm._e()]) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/ios/playground/bundlejs/guide.weex.js b/ios/playground/bundlejs/guide.weex.js deleted file mode 100644 index aad4993e2a..0000000000 --- a/ios/playground/bundlejs/guide.weex.js +++ /dev/null @@ -1,3191 +0,0 @@ -// { "framework": "Vue" } -"use weex:vue"; - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 37); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(29); -var toPrimitive = __webpack_require__(17); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(11)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(1); -var createDesc = __webpack_require__(12); -module.exports = __webpack_require__(2) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(51); -var defined = __webpack_require__(15); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(21)('wks'); -var uid = __webpack_require__(13); -var Symbol = __webpack_require__(0).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(4); -var ctx = __webpack_require__(47); -var hide = __webpack_require__(5); -var has = __webpack_require__(3); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(8); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(33); -var enumBugKeys = __webpack_require__(22); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(21)('keys'); -var uid = __webpack_require__(13); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(4); -var global = __webpack_require__(0); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(9) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(1).f; -var has = __webpack_require__(3); -var TAG = __webpack_require__(7)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(7); - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(4); -var LIBRARY = __webpack_require__(9); -var wksExt = __webpack_require__(24); -var defineProperty = __webpack_require__(1).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined; - -var _stringify = __webpack_require__(40); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(42); - -var _typeof3 = _interopRequireDefault(_typeof2); - -exports.createLink = createLink; -exports.createURL = createURL; -exports.i18n = i18n; -exports.parseLanguage = parseLanguage; -exports.setLanguage = setLanguage; -exports.clearStorageLanguage = clearStorageLanguage; -exports.getStorageLanguage = getStorageLanguage; -exports.getSystemLanguage = getSystemLanguage; -exports.getLanguage = getLanguage; -exports.jumpTo = jumpTo; -exports.viewSource = viewSource; -exports.setTitleBar = setTitleBar; -exports.fetchData = fetchData; -exports.saveData = saveData; -exports.readData = readData; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var stream = weex.requireModule('stream'); -var storage = weex.requireModule('storage'); -var navigator = weex.requireModule('navigator'); - -var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) { - return x; -}; - -function encodeParams(params) { - if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') { - return ''; - } - var array = []; - for (var key in params) { - if (typeof params[key] === 'string') { - array.push(encoder(key) + '=' + encoder(params[key])); - } - } - return array.join('&'); -} - -function createLink(name) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var args = []; - for (var key in params) { - if (typeof params[key] === 'string') { - args.push(encoder(key) + '=' + encoder(params[key])); - } - } - if (WXEnvironment.platform === 'Web') { - args.unshift('page=' + name + '.web.js'); - return '/?' + args.join('&'); - } - var base = getBaseURL(); - return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : ''); -} - -function createURL(hash, params) { - if (WXEnvironment.platform === 'Web') { - return 'http://dotwe.org/raw/htmlVue/' + hash; - } - var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx'; - var paramString = encodeParams(params); - if (WXEnvironment.appName === 'TB') { - return url + '?_wx_tpl=' + url + '&' + paramString; - } - if (WXEnvironment.appName === 'WXSample') { - return url + '?' + paramString; - } - return url + '?wx_weex=true&' + paramString; -} - -function getBaseURL() { - var bundleUrl = weex.config.bundleUrl; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - return 'file://assets/'; - } else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - return ''; -} - -function i18n(text, language) { - if (typeof text === 'string') { - return text; - } - if (Object.prototype.toString.call(text) === '[object Object]') { - var lang = this && this.language || language || 'en'; - return text[lang]; - } -} - -var supportedLanguageRE = /(en|zh)\_?\w*/i; -function parseLanguage(language) { - var match = supportedLanguageRE.exec(language + ''); - if (match && match[1]) { - return match[1]; - } - return ''; -} - -function setLanguage(language) { - var lang = parseLanguage(language); - if (lang) { - storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang); - } -} - -function clearStorageLanguage() { - storage.removeItem('WEEX_PLAYGROUND_LANGUAGE'); -} - -function getStorageLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - try { - storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) { - if (event.result === 'success') { - var lang = parseLanguage(event.data); - lang ? done(lang) : fail(); - } else { - fail(event); - } - }); - } catch (err) { - fail(err); - } -} - -function getSystemLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - if (WXEnvironment.platform.toLowerCase() === 'web') { - var lang = parseLanguage(window.navigator.language); - lang ? done(lang) : fail(); - } else { - try { - var locale = weex.requireModule('locale') || weex.requireModule('local'); - var useSync = false; - var resSync = locale.getLanguage(function (language) { - var lang = parseLanguage(language); - if (lang) { - useSync || done(lang); - } else { - fail(); - } - }); - var langSync = parseLanguage(resSync); - if (langSync) { - useSync = true; - done(langSync); - } else { - fail(); - } - } catch (e) { - fail(e); - } - } -} - -var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i; -function getLanguage() { - var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - - var match = languageRE.exec(weex.config.bundleUrl || ''); - var lang = parseLanguage(match && match[1]); - if (lang) { - done(lang); - } else { - getStorageLanguage(done, function () { - getSystemLanguage(done, function () { - done('en'); - }); - }); - } -} - -function jumpTo(url, title, lang) { - getLanguage(function (language) { - storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language)); - navigator.push({ - url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) }) - }); - }); -} - -function viewSource(hash) { - getLanguage(function (language) { - navigator.push({ - url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language }) - }); - }); -} - -function setTitleBar(options) { - var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en'; - - if (Object.prototype.toString.apply(options) !== '[object Object]') { - return; - } - var titleBar = weex.requireModule('titleBar'); - if (options.color || options.backgroundColor) { - try { - titleBar.setStyle({ - foregroundColor: options.color || '#FFFFFF', - backgroundColor: options.backgroundColor || '#00B4FF' - }); - } catch (e) {} - } - var title = i18n(options.title, language); - if (title) { - try { - titleBar.setTitle(title); - } catch (e) {} - } -} - -var storageKeys = { - doodle: 'WEEX_PLAYGROUND_APP_DOODLE', - guide: 'WEEX_PLAYGROUND_APP_GUIDE', - examples: 'WEEX_PLAYGROUND_APP_EXAMPLES', - news: 'WEEX_PLAYGROUND_APP_NEWS', - about: 'WEEX_PLAYGROUND_APP_ABOUT' -}; -function fetchData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - try { - stream.fetch({ - url: 'http://dotwe.org/query/weex-playground-app', - method: 'post', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - type: 'json', - body: 'name=' + name - }, function (res) { - if (res.ok && res.data && res.data.success) { - done(res.data); - } else { - fail(res); - } - }); - } catch (err) { - fail(err); - } -} -function saveData(name, result) { - var key = storageKeys[name]; - if (!key) return; - if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') { - result.timestamp = Date.now(); - storage.setItem(key, (0, _stringify2.default)(result)); - } -} -function readData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - var key = storageKeys[name]; - if (!key) return fail(); - try { - storage.getItem(key, function (event) { - if (event.result === 'success') { - var result = JSON.parse(event.data); - if (result && Array.isArray(result[name])) { - return done(result[name]); - } - } - fail(event); - }); - } catch (e) { - fail(e); - } -} - -var fetchExamples = exports.fetchExamples = function fetchExamples() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return fetchData.apply(undefined, ['examples'].concat(args)); -}; -var saveExamples = exports.saveExamples = function saveExamples() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return saveData.apply(undefined, ['examples'].concat(args)); -}; -var readExamples = exports.readExamples = function readExamples() { - for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - - return readData.apply(undefined, ['examples'].concat(args)); -}; - -var fetchGuide = exports.fetchGuide = function fetchGuide() { - for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - args[_key4] = arguments[_key4]; - } - - return fetchData.apply(undefined, ['guide'].concat(args)); -}; -var saveGuide = exports.saveGuide = function saveGuide() { - for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - args[_key5] = arguments[_key5]; - } - - return saveData.apply(undefined, ['guide'].concat(args)); -}; -var readGuide = exports.readGuide = function readGuide() { - for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - return readData.apply(undefined, ['guide'].concat(args)); -}; - -var fetchAbout = exports.fetchAbout = function fetchAbout() { - for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { - args[_key7] = arguments[_key7]; - } - - return fetchData.apply(undefined, ['about'].concat(args)); -}; -var saveAbout = exports.saveAbout = function saveAbout() { - for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { - args[_key8] = arguments[_key8]; - } - - return saveData.apply(undefined, ['about'].concat(args)); -}; -var readAbout = exports.readAbout = function readAbout() { - for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { - args[_key9] = arguments[_key9]; - } - - return readData.apply(undefined, ['about'].concat(args)); -}; - -var fetchDoodle = exports.fetchDoodle = function fetchDoodle() { - for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - args[_key10] = arguments[_key10]; - } - - return fetchData.apply(undefined, ['doodle'].concat(args)); -}; -var fetchNews = exports.fetchNews = function fetchNews() { - for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; - } - - return fetchData.apply(undefined, ['news'].concat(args)); -}; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(9); -var $export = __webpack_require__(16); -var redefine = __webpack_require__(31); -var hide = __webpack_require__(5); -var Iterators = __webpack_require__(18); -var $iterCreate = __webpack_require__(49); -var setToStringTag = __webpack_require__(23); -var getPrototypeOf = __webpack_require__(56); -var ITERATOR = __webpack_require__(7)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(2) && !__webpack_require__(11)(function () { - return Object.defineProperty(__webpack_require__(30)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -var document = __webpack_require__(0).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(5); - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(10); -var dPs = __webpack_require__(50); -var enumBugKeys = __webpack_require__(22); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(30)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(55).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(3); -var toIObject = __webpack_require__(6); -var arrayIndexOf = __webpack_require__(52)(false); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(33); -var hiddenKeys = __webpack_require__(22).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -__webpack_require__(38); - -var _Guide = __webpack_require__(73); - -var _Guide2 = _interopRequireDefault(_Guide); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// show title bar -try { - var titleBar = weex.requireModule('titleBar'); - titleBar.showTitleBar(true); -} catch (e) {} - -_Guide2.default.el = '#root'; -new Vue(_Guide2.default); - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _mixin = __webpack_require__(39); - -var _mixin2 = _interopRequireDefault(_mixin); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// use shared mixins -Vue.mixin(_mixin2.default); - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _index = __webpack_require__(27); - -var utils = _interopRequireWildcard(_index); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var storage = weex.requireModule('storage'); - -exports.default = { - filters: { - i18n: utils.i18n, - url: utils.createURL, - link: utils.createLink - }, - methods: { - createLink: utils.createLink, - createURL: utils.createURL, - i18n: utils.i18n, - getLanguage: utils.getLanguage, - fetchData: utils.fetchData, - saveData: utils.saveData, - readData: utils.readData, - jumpTo: utils.jumpTo - }, - created: function created() { - var _this = this; - - // get and set language - utils.getLanguage(function (language) { - _this.language = language; - utils.setTitleBar(_this.navigationBarOptions, language); - }); - - // listen to the language change event - var channel = new BroadcastChannel('language'); - channel.onmessage = function (event) { - if (event.data && event.data.language) { - _this.language = event.data.language; - } - }; - }, - beforeDestroy: function beforeDestroy() { - storage.removeItem('CURRENT_DOCUMENT_URL'); - storage.removeItem('CURRENT_SOURCE_HASH'); - } -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(41), __esModule: true }; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(4); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(43); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(62); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(44), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(45); -__webpack_require__(58); -module.exports = __webpack_require__(24).f('iterator'); - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(46)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(28)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(14); -var defined = __webpack_require__(15); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(48); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(32); -var descriptor = __webpack_require__(12); -var setToStringTag = __webpack_require__(23); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(5)(IteratorPrototype, __webpack_require__(7)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(1); -var anObject = __webpack_require__(10); -var getKeys = __webpack_require__(19); - -module.exports = __webpack_require__(2) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(34); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(6); -var toLength = __webpack_require__(53); -var toAbsoluteIndex = __webpack_require__(54); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(14); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(14); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(0).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(3); -var toObject = __webpack_require__(57); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(15); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(59); -var global = __webpack_require__(0); -var hide = __webpack_require__(5); -var Iterators = __webpack_require__(18); -var TO_STRING_TAG = __webpack_require__(7)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(60); -var step = __webpack_require__(61); -var Iterators = __webpack_require__(18); -var toIObject = __webpack_require__(6); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(28)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 60 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(63), __esModule: true }; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(64); -__webpack_require__(70); -__webpack_require__(71); -__webpack_require__(72); -module.exports = __webpack_require__(4).Symbol; - - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(0); -var has = __webpack_require__(3); -var DESCRIPTORS = __webpack_require__(2); -var $export = __webpack_require__(16); -var redefine = __webpack_require__(31); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(11); -var shared = __webpack_require__(21); -var setToStringTag = __webpack_require__(23); -var uid = __webpack_require__(13); -var wks = __webpack_require__(7); -var wksExt = __webpack_require__(24); -var wksDefine = __webpack_require__(25); -var enumKeys = __webpack_require__(66); -var isArray = __webpack_require__(67); -var anObject = __webpack_require__(10); -var isObject = __webpack_require__(8); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(17); -var createDesc = __webpack_require__(12); -var _create = __webpack_require__(32); -var gOPNExt = __webpack_require__(68); -var $GOPD = __webpack_require__(69); -var $DP = __webpack_require__(1); -var $keys = __webpack_require__(19); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(36).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(26).f = $propertyIsEnumerable; - __webpack_require__(35).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(9)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(5)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(13)('meta'); -var isObject = __webpack_require__(8); -var has = __webpack_require__(3); -var setDesc = __webpack_require__(1).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(11)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(19); -var gOPS = __webpack_require__(35); -var pIE = __webpack_require__(26); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(34); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(6); -var gOPN = __webpack_require__(36).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(26); -var createDesc = __webpack_require__(12); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(17); -var has = __webpack_require__(3); -var IE8_DOM_DEFINE = __webpack_require__(29); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(2) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('asyncIterator'); - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('observable'); - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(74) -) - -/* script */ -__vue_exports__ = __webpack_require__(75) - -/* template */ -var __vue_template__ = __webpack_require__(86) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/pages/guide/Guide.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-5490db22" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 74 */ -/***/ (function(module, exports) { - -module.exports = { - "size": { - "width": "750", - "height": "320" - }, - "center": { - "alignItems": "center", - "justifyContent": "center" - }, - "slider": { - "width": "750", - "height": "400", - "boxShadow": "0 5px 10px rgba(0, 0, 0, 0.2)", - "marginBottom": "10" - }, - "slider-title": { - "width": "750", - "paddingTop": 0, - "paddingRight": "30", - "paddingBottom": "30", - "paddingLeft": "30", - "fontSize": "46", - "textAlign": "center", - "color": "#FFFFFF" - }, - "indicator": { - "position": "absolute", - "left": 0, - "right": 0, - "bottom": 0, - "width": "750", - "height": "30", - "itemSize": "12", - "itemColor": "#DDDDDD", - "itemSelectedColor": "rgb(0,180,255)" - } -} - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _utils = __webpack_require__(27); - -var _Lesson = __webpack_require__(76); - -var _Lesson2 = _interopRequireDefault(_Lesson); - -var _mock = __webpack_require__(80); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var useStorage = false; // -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -exports.default = { - components: { Lesson: _Lesson2.default }, - data: function data() { - return { - language: 'en', - navigationBarOptions: { - title: { - zh: 'Weex 入门', - en: 'Weex Guide' - } - }, - lenssonIndex: 0, - guideLessons: _mock.guideLessons - }; - }, - - computed: { - chosenLesson: function chosenLesson() { - return this.guideLessons[this.lenssonIndex]; - } - }, - watch: { - lenssonIndex: function lenssonIndex() { - this.navigationBarOptions.backgroundColor = this.chosenLesson.mainColor; - this.navigationBarOptions.title = this.chosenLesson.title; - }, - navigationBarOptions: function navigationBarOptions() { - (0, _utils.setTitleBar)(this.navigationBarOptions, this.language); - } - }, - beforeCreate: function beforeCreate() { - var _this = this; - - (0, _utils.readGuide)(function (guide) { - _this.guideLessons = guide; - if (WXEnvironment.platform.toLowerCase() !== 'web') { - useStorage = true; - } - }); - (0, _utils.fetchGuide)(function (result) { - (0, _utils.saveGuide)(result); - if (!useStorage) { - _this.guideLessons = result.guide; - } - }); - } -}; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(77) -) - -/* script */ -__vue_exports__ = __webpack_require__(78) - -/* template */ -var __vue_template__ = __webpack_require__(79) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/components/Lesson.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-2c29cf22" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 77 */ -/***/ (function(module, exports) { - -module.exports = { - "center": { - "alignItems": "center", - "justifyContent": "center" - }, - "title": { - "fontSize": "60", - "textAlign": "center", - "marginTop": "60", - "marginBottom": "60", - "color": "#606060" - }, - "lesson": { - "borderBottomWidth": "1", - "borderBottomStyle": "solid", - "borderBottomColor": "#EEEEEE", - "flexDirection": "row", - "alignItems": "center" - }, - "lesson-zh": { - "width": "600" - }, - "lesson-en": { - "width": "630" - }, - "lesson-index": { - "color": "#777777", - "textAlign": "right", - "paddingRight": "30" - }, - "lesson-title": { - "paddingTop": "35", - "paddingBottom": "35" - }, - "lesson-index-zh": { - "fontSize": "46", - "width": "120" - }, - "lesson-title-zh": { - "fontSize": "42", - "width": "480" - }, - "lesson-index-en": { - "fontSize": "42", - "width": "100" - }, - "lesson-title-en": { - "fontSize": "38", - "width": "530" - }, - "footer": { - "height": "120", - "paddingTop": "40" - }, - "copyright": { - "fontSize": "22", - "color": "#A0A0A0", - "textAlign": "center" - } -} - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -exports.default = { - props: ['mainColor', 'title', 'copyright', 'lessons'], - data: function data() { - return { - language: 'en' - }; - } -}; - -/***/ }), -/* 79 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('div', { - staticClass: ["wrapper"] - }, [_c('div', { - staticClass: ["center"] - }, [_c('text', { - staticClass: ["title"] - }, [_vm._v(_vm._s(_vm.i18n(_vm.title)))])]), _vm._l((_vm.lessons), function(lesson, i) { - return _c('div', { - key: i, - staticClass: ["center"] - }, [_c('div', { - class: ['lesson', ("lesson-" + _vm.language)], - on: { - "click": function($event) { - _vm.jumpTo(lesson.docLink, lesson.title) - } - } - }, [_c('text', { - class: ['lesson-index', ("lesson-index-" + _vm.language)] - }, [_vm._v(_vm._s(i + 1) + ".")]), _c('text', { - class: ['lesson-title', ("lesson-title-" + _vm.language)], - style: { - color: _vm.mainColor - } - }, [_vm._v(_vm._s(_vm.i18n(lesson.title)))])])]) - }), _c('div', { - staticClass: ["footer", "center"] - }, [_c('text', { - staticClass: ["copyright"] - }, [_vm._v(_vm._s(_vm.i18n(_vm.copyright)))])])], 2) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.aboutApp = exports.guideLessons = undefined; - -var _sliders = __webpack_require__(81); - -var _sliders2 = _interopRequireDefault(_sliders); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var guideLessons = exports.guideLessons = _sliders2.default; - -var aboutApp = exports.aboutApp = [{ - title: { en: 'Weex Official Website', zh: 'Weex 官方网站' }, - link: { - en: 'http://weex-project.io/', - zh: 'http://weex-project.io/cn/' - } -}, { - title: { en: 'Apache Software Foundation', zh: 'Apache 软件基金会' }, - link: 'http://www.apache.org/' -}, { - title: { en: 'Who is using Weex', zh: '谁在使用 Weex' }, - link: { - en: 'http://weex-project.io/who-is-using-weex.html', - zh: 'http://weex-project.io/cn/who-is-using-weex.html' - } -}, { - title: { en: 'Contribution', zh: '参与贡献' }, - link: { - en: 'http://weex-project.io/guide/contributing.html', - zh: 'http://weex-project.io/cn/guide/contributing.html' - } -}, { - title: { en: 'Release Note', zh: '版本变更' }, - link: { - en: 'http://weex-project.io/releasenote.html', - zh: 'http://weex-project.io/cn/releasenote.html' - } -}, { - title: { en: 'FAQ', zh: '常见问题' }, - link: { - en: 'http://weex-project.io/faq.html', - zh: 'http://weex-project.io/cn/faq.html' - } -}]; - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _defineProperty2 = __webpack_require__(82); - -var _defineProperty3 = _interopRequireDefault(_defineProperty2); - -var _ref, _ref2, _ref3; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = [{ - subject: 'weex', - mainColor: '#00B4FF', - title: { zh: '学习 Weex', en: 'Learn Weex' }, - poster: 'https://gw.alicdn.com/tfs/TB1.8Vdl9_I8KJjy0FoXXaFnVXa-3799-1615.png', - posterBg: '#E5F7FF', - posterStyle: { - width: '650px', - height: '304px' - }, - copyright: { - zh: '来自 http://weex-project.io/cn/', - en: 'From http://weex-project.io/' - }, - lessons: [{ - title: { - zh: '快速入门', - en: 'Getting Started' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/index.html', - en: 'http://weex-project.io/guide/index.html' - } - }, { - title: { - zh: '工作原理', - en: 'How it Works' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/index.html', - en: 'http://weex-project.io/wiki/index.html' - } - }, { - title: { - zh: 'Weex 中的前端框架', - en: 'Front-end Frameworks' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/front-end-frameworks.html', - en: 'http://weex-project.io/guide/front-end-frameworks.html' - } - }, { - title: { - zh: '在 Weex 中使用 Vue.js', - en: 'Use Vue.js on Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/use-vue.html', - en: 'http://weex-project.io/guide/use-vue.html' - } - }, { - title: { - zh: '与 Web 平台的差异', - en: 'Platform difference with Web' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/platform-difference.html', - en: 'http://weex-project.io/wiki/platform-difference.html' - } - }, { - title: { - zh: '集成 Weex 到已有应用', - en: 'Integrate to Your App' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/integrate-to-your-app.html', - en: 'http://weex-project.io/guide/integrate-to-your-app.html' - } - }, { - title: { - zh: '搭建开发环境', - en: 'Set Up Dev Environment' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/set-up-env.html', - en: 'http://weex-project.io/guide/set-up-env.html' - } - }, { - title: { - zh: '通用样式', - en: 'Common Styles' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/common-styles.html', - en: 'http://weex-project.io/wiki/common-styles.html' - } - }, { - title: { - zh: '通用事件', - en: 'Common Events' - }, - docLink: { - zh: 'http://weex-project.io/cn/wiki/common-events.html', - en: 'http://weex-project.io/wiki/common-events.html' - } - }, { - title: { - zh: 'Weex 实例变量', - en: 'The "weex" Variable' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/weex-variable.html', - en: 'http://weex-project.io/references/weex-variable.html' - } - }, { - title: { - zh: '内置组件', - en: 'Built-in Components' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/components/index.html', - en: 'http://weex-project.io/references/components/index.html' - } - }, { - title: { - zh: '内置模块', - en: 'Built-in Modules' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/modules/index.html', - en: 'http://weex-project.io/references/modules/index.html' - } - }, { - title: { - zh: '扩展 Android 组件/模块', - en: 'Extend Android' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/extend-android.html', - en: 'http://weex-project.io/guide/extend-android.html' - } - }, { - title: { - zh: '扩展 iOS 组件/模块', - en: 'Extend iOS' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/extend-ios.html', - en: 'http://weex-project.io/guide/extend-ios.html' - } - }, { - title: { - zh: '使用 weex-toolkit', - en: 'Use weex-toolkit' - }, - docLink: { - zh: 'http://weex-project.io/cn/tools/toolkit.html', - en: 'http://weex-project.io/tools/toolkit.html' - } - }, { - title: { - zh: '如何参与贡献', - en: 'How to Contribute' - }, - docLink: { - zh: 'http://weex-project.io/cn/contributing.html', - en: 'http://weex-project.io/contributing.html' - } - }] -}, (_ref = { - subject: 'vue', - mainColor: '#42b983', - title: { zh: '学习 Vue.js', en: 'Learn Vue.js' }, - poster: 'https://gw.alicdn.com/tfs/TB1J_uKcMMPMeJjy1XdXXasrXXa-400-400.png', - posterBg: '#E7FBF2', - posterStyle: { - width: '300px', - height: '300px' - } -}, (0, _defineProperty3.default)(_ref, 'title', { - zh: '学习 Vue.js', - en: 'Learn Vue.js' -}), (0, _defineProperty3.default)(_ref, 'copyright', { - zh: '来自 https://cn.vuejs.org/', - en: 'From https://vuejs.org/' -}), (0, _defineProperty3.default)(_ref, 'lessons', [{ - title: { - zh: 'Vue.js 是什么?', - en: 'What is Vue.js ?' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/index.html', - en: 'https://vuejs.org/v2/guide/index.html' - } -}, { - title: { - zh: '单文件组件', - en: 'Single File Components' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/single-file-components.html', - en: 'https://vuejs.org/v2/guide/single-file-components.html' - } -}, { - title: { - zh: '模板语法', - en: 'Template Syntax' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/syntax.html', - en: 'https://vuejs.org/v2/guide/syntax.html' - } -}, { - title: { - zh: 'Class 与 Style 绑定', - en: 'Class and Style Bindings' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/class-and-style.html', - en: 'https://vuejs.org/v2/guide/class-and-style.html' - } -}, { - title: { - zh: '条件渲染', - en: 'Conditional Rendering' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/conditional.html', - en: 'https://vuejs.org/v2/guide/conditional.html' - } -}, { - title: { - zh: '列表渲染', - en: 'List Rendering' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/list.html', - en: 'https://vuejs.org/v2/guide/list.html' - } -}, { - title: { - zh: '事件处理', - en: 'Event Handling' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/events.html', - en: 'https://vuejs.org/v2/guide/events.html' - } -}, { - title: { - zh: '表单输入绑定', - en: 'Form Input Bindings' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/forms.html', - en: 'https://vuejs.org/v2/guide/forms.html' - } -}, { - title: { - zh: 'Vue 实例', - en: 'The Vue Instance' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/instance.html', - en: 'https://vuejs.org/v2/guide/instance.html' - } -}, { - title: { - zh: '在 Weex 中使用 Vue.js', - en: 'Use Vue.js on Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/guide/use-vue.html', - en: 'http://weex-project.io/guide/use-vue.html' - } -}, { - title: { - zh: '混合(mixins)', - en: 'Mixins' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/mixins.html', - en: 'https://vuejs.org/v2/guide/mixins.html' - } -}, { - title: { - zh: '过滤器(filters)', - en: 'Filters' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/filters.html', - en: 'https://vuejs.org/v2/guide/filters.html' - } -}, { - title: { - zh: '插件(plugins)', - en: 'Plugins' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/plugins.html', - en: 'https://vuejs.org/v2/guide/plugins.html' - } -}, { - title: { - zh: '自定义指令', - en: 'Custom Directives' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/custom-directive.html', - en: 'https://vuejs.org/v2/guide/custom-directive.html' - } -}, { - title: { - zh: '状态管理', - en: 'State Management' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/state-management.html', - en: 'https://vuejs.org/v2/guide/state-management.html' - } -}, { - title: { - zh: '深入响应式原理', - en: 'Reactivity in Depth' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/reactivity.html', - en: 'https://vuejs.org/v2/guide/reactivity.html' - } -}, { - title: { - zh: '渲染函数', - en: 'Render Functions' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/render-function.html', - en: 'https://vuejs.org/v2/guide/render-function.html' - } -}, { - title: { - zh: 'TypeScript 支持', - en: 'TypeScript Support' - }, - docLink: { - zh: 'https://cn.vuejs.org/v2/guide/typescript.html', - en: 'https://vuejs.org/v2/guide/typescript.html' - } -}, { - title: 'API', - docLink: { - zh: 'https://cn.vuejs.org/v2/api/', - en: 'https://vuejs.org/v2/api/' - } -}]), _ref), (_ref2 = { - subject: 'javascript', - mainColor: '#F7BD2A', - title: { zh: '学习 Javascript', en: 'Learn Javascript' }, - poster: 'https://gw.alicdn.com/tfs/TB1bT98hMoQMeJjy0FpXXcTxpXa-1500-700.png', - posterBg: '#FAF3EB', - posterStyle: { - width: '750px', - height: '350px' - } -}, (0, _defineProperty3.default)(_ref2, 'title', { - zh: '学习 Javascript', - en: 'Learn Javascript' -}), (0, _defineProperty3.default)(_ref2, 'copyright', { - zh: '来自 MDN (Mozilla Developer Network)', - en: 'From MDN (Mozilla Developer Network)' -}), (0, _defineProperty3.default)(_ref2, 'lessons', [{ - title: { - zh: '什么是 Javascript ?', - en: 'What is Javascript ?' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript' - } -}, { - title: { - zh: 'JavaScript基础', - en: 'JavaScript basics' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics', - en: 'https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics' - } -}, { - title: { - zh: '重新介绍 JavaScript', - en: 'A re-introduction to JavaScript' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript' - } -}, { - title: { - zh: '语法和数据类型', - en: 'Grammar and types' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope' - } -}, { - title: { - zh: '数据类型和数据结构', - en: 'Data types and data structures' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures' - } -}, { - title: { - zh: '变量', - en: 'Variables' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Variables', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables' - } -}, { - title: { - zh: '数字和操作符', - en: 'Numbers and operators' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Math', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Math' - } -}, { - title: { - zh: '字符串', - en: 'Handling text' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Strings', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings' - } -}, { - title: { - zh: '常用的 String 方法', - en: 'Useful string methods' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Useful_string_methods', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods' - } -}, { - title: { - zh: '数组', - en: 'Arrays' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Arrays', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Arrays' - } -}, { - title: { - zh: '函数', - en: 'Functions' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions' - } -}, { - title: { - zh: 'JavaScript 对象基础', - en: 'JavaScript object basics' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics' - } -}, { - title: { - zh: '使用对象', - en: 'Working with objects' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects' - } -}, { - title: { - zh: '使用 JSON 数据', - en: 'Working with JSON' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON' - } -}, { - title: { - zh: '对象模型的细节', - en: 'Details of the object model' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model' - } -}, { - title: { - zh: '对象原型', - en: 'Object prototypes' - }, - docLink: { - zh: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes', - en: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes' - } -}, { - title: { - zh: 'JavaScript 中的继承', - en: 'Inheritance in JavaScript' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Inheritance', - en: 'https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance' - } -}, { - title: { - zh: '继承与原型链', - en: 'Inheritance and the prototype chain' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain' - } -}, { - title: { - zh: '严格模式', - en: 'Strict mode' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode' - } -}, { - title: { - zh: '内存管理', - en: 'Memory Management' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Memory_Management', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management' - } -}, { - title: { - zh: '并发模型与事件循环', - en: 'Concurrency model and Event Loop' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop' - } -}, { - // title: { - // zh: '索引集合类', - // en: 'Indexed collections' - // }, - // docLink: { - // zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Indexed_collections', - // en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Indexed_collections' - // } - // }, { - // title: { - // zh: '带键的集合', - // en: 'Keyed collections' - // }, - // docLink: { - // zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Keyed_collections', - // en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Keyed_collections' - // } - // }, { - title: { - zh: 'JavaScript 标准库', - en: 'Standard built-in objects' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects', - en: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects' - } -}]), _ref2), (_ref3 = { - subject: 'css', - mainColor: '#F56FC6', - title: { zh: '学习 CSS', en: 'Learn CSS' }, - titleColor: '#FFFFFF', - poster: 'https://gw.alicdn.com/tfs/TB1k6anhMMPMeJjy1XdXXasrXXa-427-190.jpg', - posterBg: '#FFA2DE', - posterStyle: { - width: '517px', - height: '230px' - } -}, (0, _defineProperty3.default)(_ref3, 'title', { - zh: '学习 CSS', - en: 'Learn CSS' -}), (0, _defineProperty3.default)(_ref3, 'copyright', { - zh: '来自 MDN (Mozilla Developer Network)', - en: 'From MDN (Mozilla Developer Network)' -}), (0, _defineProperty3.default)(_ref3, 'lessons', [{ - title: { - zh: '什么是 CSS ?', - en: 'What is CSS ?' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Getting_started/What_is_CSS', - en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/What_is_CSS' - } -}, { - title: { - zh: 'CSS 语法', - en: 'CSS Syntax' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Syntax', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Syntax' - } -}, { - title: { - zh: 'CSS的值和单位', - en: 'CSS Values and Units' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Values_and_units', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Values_and_units' - } -}, { - title: { - zh: '盒模型', - en: 'The Box Model' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Box_model', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Box_model' - } -}, { - title: { - zh: '盒模型的属性', - en: 'Box Model Properties' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Box_Model', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model' - } -}, { - title: { - zh: '定位布局', - en: 'Positioning' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/%E5%AE%9A%E4%BD%8Dx', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/positioning' - } -}, { - title: { - zh: '定位布局的属性', - en: 'CSS Positioning' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Positioning', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning' - } -}, { - title: { - zh: 'Flexbox 布局', - en: 'Flexbox Layout' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox', - en: 'https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox' - } -}, { - title: { - zh: 'Flexbox 布局的属性', - en: 'CSS Flexible Box Layout' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout' - } -}, { - title: { - zh: 'Weex 中的通用样式', - en: 'Common Styles in Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/common-style.html', - en: 'http://weex-project.io/references/common-style.html' - } -}, { - title: { - zh: 'Weex 中的文本样式', - en: 'Text Styles in Weex' - }, - docLink: { - zh: 'http://weex-project.io/cn/references/text-style.html', - en: 'http://weex-project.io/references/text-style.html' - } -}, { - title: { - zh: '块格式化上下文(BFC)', - en: 'Block Formatting Context' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context', - en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context' - } -}, { - title: { - zh: '视觉格式化模型', - en: 'Visual Formatting Model' - }, - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Visual_formatting_model', - en: 'https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Visual_formatting_model' - } -}, { - title: 'CSS Reference', - docLink: { - zh: 'https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference', - en: 'https://developer.mozilla.org/en-US/docs/Web/CSS/Reference' - } -}]), _ref3)]; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _defineProperty = __webpack_require__(83); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, key, value) { - if (key in obj) { - (0, _defineProperty2.default)(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(84), __esModule: true }; - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(85); -var $Object = __webpack_require__(4).Object; -module.exports = function defineProperty(it, key, desc) { - return $Object.defineProperty(it, key, desc); -}; - - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(16); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__(2), 'Object', { defineProperty: __webpack_require__(1).f }); - - -/***/ }), -/* 86 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('scroller', { - staticClass: ["wrapper"] - }, [_c('slider', { - staticClass: ["slider"], - attrs: { - "autoPlay": "true" - } - }, [_vm._l((_vm.guideLessons), function(item, i) { - return _c('div', { - key: item.subject, - staticClass: ["center"], - style: { - backgroundColor: item.posterBg - }, - on: { - "click": function($event) { - _vm.lenssonIndex = i - } - } - }, [_c('div', { - staticClass: ["center", "size"] - }, [_c('image', { - style: item.posterStyle, - attrs: { - "resize": "cover", - "src": item.poster - } - })]), _c('text', { - staticClass: ["slider-title"], - style: { - color: item.titleColor || item.mainColor - } - }, [_vm._v(_vm._s(_vm.i18n(item.title)))])]) - }), _c('indicator', { - staticClass: ["indicator"] - })], 2), _c('lesson', { - attrs: { - "mainColor": _vm.chosenLesson.mainColor, - "title": _vm.chosenLesson.title, - "lessons": _vm.chosenLesson.lessons, - "copyright": _vm.chosenLesson.copyright - } - })], 1) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/ios/playground/bundlejs/landing.weex.js b/ios/playground/bundlejs/landing.weex.js deleted file mode 100644 index bbb0fb3efd..0000000000 --- a/ios/playground/bundlejs/landing.weex.js +++ /dev/null @@ -1,2319 +0,0 @@ -// { "framework": "Vue" } -"use weex:vue"; - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 37); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var createDesc = __webpack_require__(12); -module.exports = __webpack_require__(4) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(29); -var toPrimitive = __webpack_require__(17); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(11)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(51); -var defined = __webpack_require__(16); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(21)('wks'); -var uid = __webpack_require__(13); -var Symbol = __webpack_require__(0).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined; - -var _stringify = __webpack_require__(40); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(42); - -var _typeof3 = _interopRequireDefault(_typeof2); - -exports.createLink = createLink; -exports.createURL = createURL; -exports.i18n = i18n; -exports.parseLanguage = parseLanguage; -exports.setLanguage = setLanguage; -exports.clearStorageLanguage = clearStorageLanguage; -exports.getStorageLanguage = getStorageLanguage; -exports.getSystemLanguage = getSystemLanguage; -exports.getLanguage = getLanguage; -exports.jumpTo = jumpTo; -exports.viewSource = viewSource; -exports.setTitleBar = setTitleBar; -exports.fetchData = fetchData; -exports.saveData = saveData; -exports.readData = readData; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var stream = weex.requireModule('stream'); -var storage = weex.requireModule('storage'); -var navigator = weex.requireModule('navigator'); - -var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) { - return x; -}; - -function encodeParams(params) { - if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') { - return ''; - } - var array = []; - for (var key in params) { - if (typeof params[key] === 'string') { - array.push(encoder(key) + '=' + encoder(params[key])); - } - } - return array.join('&'); -} - -function createLink(name) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var args = []; - for (var key in params) { - if (typeof params[key] === 'string') { - args.push(encoder(key) + '=' + encoder(params[key])); - } - } - if (WXEnvironment.platform === 'Web') { - args.unshift('page=' + name + '.web.js'); - return '/?' + args.join('&'); - } - var base = getBaseURL(); - return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : ''); -} - -function createURL(hash, params) { - if (WXEnvironment.platform === 'Web') { - return 'http://dotwe.org/raw/htmlVue/' + hash; - } - var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx'; - var paramString = encodeParams(params); - if (WXEnvironment.appName === 'TB') { - return url + '?_wx_tpl=' + url + '&' + paramString; - } - if (WXEnvironment.appName === 'WXSample') { - return url + '?' + paramString; - } - return url + '?wx_weex=true&' + paramString; -} - -function getBaseURL() { - var bundleUrl = weex.config.bundleUrl; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - return 'file://assets/'; - } else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - return ''; -} - -function i18n(text, language) { - if (typeof text === 'string') { - return text; - } - if (Object.prototype.toString.call(text) === '[object Object]') { - var lang = this && this.language || language || 'en'; - return text[lang]; - } -} - -var supportedLanguageRE = /(en|zh)\_?\w*/i; -function parseLanguage(language) { - var match = supportedLanguageRE.exec(language + ''); - if (match && match[1]) { - return match[1]; - } - return ''; -} - -function setLanguage(language) { - var lang = parseLanguage(language); - if (lang) { - storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang); - } -} - -function clearStorageLanguage() { - storage.removeItem('WEEX_PLAYGROUND_LANGUAGE'); -} - -function getStorageLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - try { - storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) { - if (event.result === 'success') { - var lang = parseLanguage(event.data); - lang ? done(lang) : fail(); - } else { - fail(event); - } - }); - } catch (err) { - fail(err); - } -} - -function getSystemLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - if (WXEnvironment.platform.toLowerCase() === 'web') { - var lang = parseLanguage(window.navigator.language); - lang ? done(lang) : fail(); - } else { - try { - var locale = weex.requireModule('locale') || weex.requireModule('local'); - var useSync = false; - var resSync = locale.getLanguage(function (language) { - var lang = parseLanguage(language); - if (lang) { - useSync || done(lang); - } else { - fail(); - } - }); - var langSync = parseLanguage(resSync); - if (langSync) { - useSync = true; - done(langSync); - } else { - fail(); - } - } catch (e) { - fail(e); - } - } -} - -var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i; -function getLanguage() { - var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - - var match = languageRE.exec(weex.config.bundleUrl || ''); - var lang = parseLanguage(match && match[1]); - if (lang) { - done(lang); - } else { - getStorageLanguage(done, function () { - getSystemLanguage(done, function () { - done('en'); - }); - }); - } -} - -function jumpTo(url, title, lang) { - getLanguage(function (language) { - storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language)); - navigator.push({ - url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) }) - }); - }); -} - -function viewSource(hash) { - getLanguage(function (language) { - navigator.push({ - url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language }) - }); - }); -} - -function setTitleBar(options) { - var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en'; - - if (Object.prototype.toString.apply(options) !== '[object Object]') { - return; - } - var titleBar = weex.requireModule('titleBar'); - if (options.color || options.backgroundColor) { - try { - titleBar.setStyle({ - foregroundColor: options.color || '#FFFFFF', - backgroundColor: options.backgroundColor || '#00B4FF' - }); - } catch (e) {} - } - var title = i18n(options.title, language); - if (title) { - try { - titleBar.setTitle(title); - } catch (e) {} - } -} - -var storageKeys = { - doodle: 'WEEX_PLAYGROUND_APP_DOODLE', - guide: 'WEEX_PLAYGROUND_APP_GUIDE', - examples: 'WEEX_PLAYGROUND_APP_EXAMPLES', - news: 'WEEX_PLAYGROUND_APP_NEWS', - about: 'WEEX_PLAYGROUND_APP_ABOUT' -}; -function fetchData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - try { - stream.fetch({ - url: 'http://dotwe.org/query/weex-playground-app', - method: 'post', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - type: 'json', - body: 'name=' + name - }, function (res) { - if (res.ok && res.data && res.data.success) { - done(res.data); - } else { - fail(res); - } - }); - } catch (err) { - fail(err); - } -} -function saveData(name, result) { - var key = storageKeys[name]; - if (!key) return; - if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') { - result.timestamp = Date.now(); - storage.setItem(key, (0, _stringify2.default)(result)); - } -} -function readData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - var key = storageKeys[name]; - if (!key) return fail(); - try { - storage.getItem(key, function (event) { - if (event.result === 'success') { - var result = JSON.parse(event.data); - if (result && Array.isArray(result[name])) { - return done(result[name]); - } - } - fail(event); - }); - } catch (e) { - fail(e); - } -} - -var fetchExamples = exports.fetchExamples = function fetchExamples() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return fetchData.apply(undefined, ['examples'].concat(args)); -}; -var saveExamples = exports.saveExamples = function saveExamples() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return saveData.apply(undefined, ['examples'].concat(args)); -}; -var readExamples = exports.readExamples = function readExamples() { - for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - - return readData.apply(undefined, ['examples'].concat(args)); -}; - -var fetchGuide = exports.fetchGuide = function fetchGuide() { - for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - args[_key4] = arguments[_key4]; - } - - return fetchData.apply(undefined, ['guide'].concat(args)); -}; -var saveGuide = exports.saveGuide = function saveGuide() { - for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - args[_key5] = arguments[_key5]; - } - - return saveData.apply(undefined, ['guide'].concat(args)); -}; -var readGuide = exports.readGuide = function readGuide() { - for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - return readData.apply(undefined, ['guide'].concat(args)); -}; - -var fetchAbout = exports.fetchAbout = function fetchAbout() { - for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { - args[_key7] = arguments[_key7]; - } - - return fetchData.apply(undefined, ['about'].concat(args)); -}; -var saveAbout = exports.saveAbout = function saveAbout() { - for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { - args[_key8] = arguments[_key8]; - } - - return saveData.apply(undefined, ['about'].concat(args)); -}; -var readAbout = exports.readAbout = function readAbout() { - for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { - args[_key9] = arguments[_key9]; - } - - return readData.apply(undefined, ['about'].concat(args)); -}; - -var fetchDoodle = exports.fetchDoodle = function fetchDoodle() { - for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - args[_key10] = arguments[_key10]; - } - - return fetchData.apply(undefined, ['doodle'].concat(args)); -}; -var fetchNews = exports.fetchNews = function fetchNews() { - for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; - } - - return fetchData.apply(undefined, ['news'].concat(args)); -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(8); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(33); -var enumBugKeys = __webpack_require__(22); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(21)('keys'); -var uid = __webpack_require__(13); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var global = __webpack_require__(0); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(9) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(3).f; -var has = __webpack_require__(1); -var TAG = __webpack_require__(6)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(6); - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(7); -var LIBRARY = __webpack_require__(9); -var wksExt = __webpack_require__(24); -var defineProperty = __webpack_require__(3).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(9); -var $export = __webpack_require__(28); -var redefine = __webpack_require__(31); -var hide = __webpack_require__(2); -var Iterators = __webpack_require__(18); -var $iterCreate = __webpack_require__(49); -var setToStringTag = __webpack_require__(23); -var getPrototypeOf = __webpack_require__(56); -var ITERATOR = __webpack_require__(6)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(7); -var ctx = __webpack_require__(47); -var hide = __webpack_require__(2); -var has = __webpack_require__(1); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(4) && !__webpack_require__(11)(function () { - return Object.defineProperty(__webpack_require__(30)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -var document = __webpack_require__(0).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(2); - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(10); -var dPs = __webpack_require__(50); -var enumBugKeys = __webpack_require__(22); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(30)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(55).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(1); -var toIObject = __webpack_require__(5); -var arrayIndexOf = __webpack_require__(52)(false); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(33); -var hiddenKeys = __webpack_require__(22).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -__webpack_require__(38); - -var _utils = __webpack_require__(14); - -var utils = _interopRequireWildcard(_utils); - -var _Landing = __webpack_require__(73); - -var _Landing2 = _interopRequireDefault(_Landing); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -// hide title bar -try { - var titleBar = weex.requireModule('titleBar'); - titleBar.showTitleBar(false); -} catch (e) {} - -// fetch and save examples -setTimeout(function () { - utils.fetchExamples(utils.saveExamples); - utils.fetchGuide(utils.saveGuide); - utils.fetchAbout(utils.saveAbout); -}, 10); - -_Landing2.default.el = '#root'; -new Vue(_Landing2.default); - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _mixin = __webpack_require__(39); - -var _mixin2 = _interopRequireDefault(_mixin); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// use shared mixins -Vue.mixin(_mixin2.default); - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _index = __webpack_require__(14); - -var utils = _interopRequireWildcard(_index); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var storage = weex.requireModule('storage'); - -exports.default = { - filters: { - i18n: utils.i18n, - url: utils.createURL, - link: utils.createLink - }, - methods: { - createLink: utils.createLink, - createURL: utils.createURL, - i18n: utils.i18n, - getLanguage: utils.getLanguage, - fetchData: utils.fetchData, - saveData: utils.saveData, - readData: utils.readData, - jumpTo: utils.jumpTo - }, - created: function created() { - var _this = this; - - // get and set language - utils.getLanguage(function (language) { - _this.language = language; - utils.setTitleBar(_this.navigationBarOptions, language); - }); - - // listen to the language change event - var channel = new BroadcastChannel('language'); - channel.onmessage = function (event) { - if (event.data && event.data.language) { - _this.language = event.data.language; - } - }; - }, - beforeDestroy: function beforeDestroy() { - storage.removeItem('CURRENT_DOCUMENT_URL'); - storage.removeItem('CURRENT_SOURCE_HASH'); - } -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(41), __esModule: true }; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(43); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(62); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(44), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(45); -__webpack_require__(58); -module.exports = __webpack_require__(24).f('iterator'); - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(46)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(27)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(15); -var defined = __webpack_require__(16); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(48); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(32); -var descriptor = __webpack_require__(12); -var setToStringTag = __webpack_require__(23); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(2)(IteratorPrototype, __webpack_require__(6)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var anObject = __webpack_require__(10); -var getKeys = __webpack_require__(19); - -module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(34); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(5); -var toLength = __webpack_require__(53); -var toAbsoluteIndex = __webpack_require__(54); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(15); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(15); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(0).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(1); -var toObject = __webpack_require__(57); -var IE_PROTO = __webpack_require__(20)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(16); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(59); -var global = __webpack_require__(0); -var hide = __webpack_require__(2); -var Iterators = __webpack_require__(18); -var TO_STRING_TAG = __webpack_require__(6)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(60); -var step = __webpack_require__(61); -var Iterators = __webpack_require__(18); -var toIObject = __webpack_require__(5); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(27)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 60 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(63), __esModule: true }; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(64); -__webpack_require__(70); -__webpack_require__(71); -__webpack_require__(72); -module.exports = __webpack_require__(7).Symbol; - - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(0); -var has = __webpack_require__(1); -var DESCRIPTORS = __webpack_require__(4); -var $export = __webpack_require__(28); -var redefine = __webpack_require__(31); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(11); -var shared = __webpack_require__(21); -var setToStringTag = __webpack_require__(23); -var uid = __webpack_require__(13); -var wks = __webpack_require__(6); -var wksExt = __webpack_require__(24); -var wksDefine = __webpack_require__(25); -var enumKeys = __webpack_require__(66); -var isArray = __webpack_require__(67); -var anObject = __webpack_require__(10); -var isObject = __webpack_require__(8); -var toIObject = __webpack_require__(5); -var toPrimitive = __webpack_require__(17); -var createDesc = __webpack_require__(12); -var _create = __webpack_require__(32); -var gOPNExt = __webpack_require__(68); -var $GOPD = __webpack_require__(69); -var $DP = __webpack_require__(3); -var $keys = __webpack_require__(19); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(36).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(26).f = $propertyIsEnumerable; - __webpack_require__(35).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(9)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(2)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(13)('meta'); -var isObject = __webpack_require__(8); -var has = __webpack_require__(1); -var setDesc = __webpack_require__(3).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(11)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(19); -var gOPS = __webpack_require__(35); -var pIE = __webpack_require__(26); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(34); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(5); -var gOPN = __webpack_require__(36).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(26); -var createDesc = __webpack_require__(12); -var toIObject = __webpack_require__(5); -var toPrimitive = __webpack_require__(17); -var has = __webpack_require__(1); -var IE8_DOM_DEFINE = __webpack_require__(29); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('asyncIterator'); - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(25)('observable'); - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(74) -) - -/* script */ -__vue_exports__ = __webpack_require__(75) - -/* template */ -var __vue_template__ = __webpack_require__(80) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/pages/landing/Landing.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-6b061736" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 74 */ -/***/ (function(module, exports) { - -module.exports = { - "doodle": { - "width": "750", - "height": "880" - }, - "menu-list": { - "flex": 1 - }, - "menu-row": { - "flex": 1, - "flexDirection": "row", - "justifyContent": "center", - "borderTopWidth": "1", - "borderTopStyle": "solid", - "borderTopColor": "#CCCCCC" - }, - "menu-item": { - "flex": 1, - "backgroundColor": "#FBFBFB", - "justifyContent": "center", - "paddingTop": "50", - "paddingBottom": "50", - "backgroundColor:active": "#F2F2F2" - }, - "menu-item-1": { - "borderRightWidth": "1", - "borderRightStyle": "solid", - "borderRightColor": "#CCCCCC" - }, - "menu-text": { - "textAlign": "center", - "fontSize": "52", - "fontWeight": "bold", - "color": "#8B8B8B" - }, - "menu-text-zh": { - "fontSize": "56" - } -} - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _Doodle = __webpack_require__(76); - -var _Doodle2 = _interopRequireDefault(_Doodle); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = { - components: { Doodle: _Doodle2.default }, - data: function data() { - return { - language: 'en', - menus: [[{ name: 'guide', title: { en: 'Guide', zh: '教程' } }, { name: 'examples', title: { en: 'Examples', zh: '实例' } }], [{ name: 'news', title: { en: 'News', zh: '资讯' } }, { name: 'about', title: { en: 'About', zh: '关于' } }]] - }; - } -}; // -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(77) -) - -/* script */ -__vue_exports__ = __webpack_require__(78) - -/* template */ -var __vue_template__ = __webpack_require__(79) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/components/Doodle.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-d429dafa" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 77 */ -/***/ (function(module, exports) { - -module.exports = { - "wrapper": { - "alignItems": "center", - "justifyContent": "space-between", - "backgroundColor": "#FFFFFF" - }, - "center": { - "alignItems": "center", - "justifyContent": "center" - }, - "logo": { - "width": "750", - "height": "318" - }, - "btn": { - "width": "450", - "height": "160", - "marginTop": "50", - "marginRight": "50", - "marginBottom": "50", - "marginLeft": "50", - "opacity": 0.7, - "opacity:active": 1 - }, - "scan-bg": { - "width": "450", - "height": "160", - "position": "absolute", - "top": 0, - "left": 0 - }, - "btn-text": { - "color": "#505050", - "fontSize": "56", - "textAlign": "center" - }, - "btn-text-zh": { - "fontSize": "64" - } -} - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _utils = __webpack_require__(14); - -var modal = weex.requireModule('modal'); // -// -// -// -// -// -// -// -// -// -// -// -// - -var navigator = weex.requireModule('navigator'); -var event = weex.requireModule('event'); - -function isValidDoodle(doodle) { - var now = new Date().getTime(); - return doodle && doodle.src && parseInt(doodle.from, 10) < now && now < parseInt(doodle.to, 10); -} - -exports.default = { - props: ['lang'], - data: function data() { - return { - language: this.lang || 'en', - showDoodle: false, - seenDoodle: false, - SCAN: { en: 'Scan QR Code', zh: '扫描二维码' }, - doodle: {} - }; - }, - beforeCreate: function beforeCreate() { - var _this = this; - - (0, _utils.fetchDoodle)(function (_ref) { - var doodle = _ref.doodle; - - if (isValidDoodle(doodle) && !_this.seenDoodle) { - _this.doodle = doodle; - _this.showDoodle = true; - doodle.duration && setTimeout(function () { - _this.showDoodle = false; - _this.seenDoodle = true; - }, parseInt(doodle.duration, 10)); - } - }); - }, - - methods: { - scan: function scan() { - try { - event.openURL('weex://go/scan'); - } catch (e) { - try { - navigator.push({ url: 'weex://go/scan' }); - } catch (e) {} - } - }, - magic: function magic() { - if (this.doodle && this.doodle.next) { - this.showDoodle = false; - navigator.push({ - url: this.createURL(this.doodle.next, { - language: this.language - }) - }); - } - } - } -}; - -/***/ }), -/* 79 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('div', { - staticClass: ["wrapper"] - }, [(_vm.showDoodle && _vm.doodle.src) ? _c('embed', { - staticStyle: { - flex: "1" - }, - attrs: { - "src": _vm._f("url")(_vm.doodle.src) - }, - on: { - "click": _vm.magic - } - }) : _c('div', { - staticClass: ["center"], - staticStyle: { - flex: "1" - } - }, [_c('image', { - staticClass: ["logo"], - attrs: { - "src": "https://gw.alicdn.com/tfs/TB1Q9VBkRfH8KJjy1XbXXbLdXXa-3799-1615.png" - } - }), _c('div', { - staticClass: ["btn", "center"], - on: { - "click": _vm.scan - } - }, [_c('image', { - staticClass: ["scan-bg"], - attrs: { - "src": "https://gw.alicdn.com/tfs/TB1qnO0kLDH8KJjy1XcXXcpdXXa-900-320.png" - } - }), _c('text', { - class: ['btn-text', 'btn-text-' + _vm.language] - }, [_vm._v(_vm._s(_vm.i18n(_vm.SCAN)))])])])]) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }), -/* 80 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('div', { - staticClass: ["wrapper"] - }, [_c('doodle', { - staticClass: ["doodle"], - attrs: { - "lang": _vm.language - } - }), _c('div', { - staticClass: ["menu-list"] - }, _vm._l((_vm.menus), function(row, r) { - return _c('div', { - key: r, - class: ['menu-row', ("menu-row-" + (r+1))] - }, _vm._l((row), function(menu, i) { - return _c('a', { - key: menu.name, - class: ['menu-item', ("menu-item-" + (i+1))], - attrs: { - "href": _vm._f("link")(menu.name, { - language: _vm.language - }) - } - }, [_c('text', { - class: ['menu-text', ("menu-text-" + _vm.language)] - }, [_vm._v(_vm._s(_vm.i18n(menu.title)))])]) - })) - }))], 1) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/ios/playground/bundlejs/news.weex.js b/ios/playground/bundlejs/news.weex.js deleted file mode 100644 index b8fc988542..0000000000 --- a/ios/playground/bundlejs/news.weex.js +++ /dev/null @@ -1,2266 +0,0 @@ -// { "framework": "Vue" } -"use weex:vue"; - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 37); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); -if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var createDesc = __webpack_require__(12); -module.exports = __webpack_require__(4) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(29); -var toPrimitive = __webpack_require__(16); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(4) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -// Thank's IE8 for his funny defineProperty -module.exports = !__webpack_require__(11)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -// to indexed object, toObject with fallback for non-array-like ES3 strings -var IObject = __webpack_require__(51); -var defined = __webpack_require__(15); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(20)('wks'); -var uid = __webpack_require__(13); -var Symbol = __webpack_require__(0).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports) { - -// 7.1.4 ToInteger -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -// 7.2.1 RequireObjectCoercible(argument) -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = __webpack_require__(8); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 / 15.2.3.14 Object.keys(O) -var $keys = __webpack_require__(33); -var enumBugKeys = __webpack_require__(21); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(20)('keys'); -var uid = __webpack_require__(13); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var global = __webpack_require__(0); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(9) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 21 */ -/***/ (function(module, exports) { - -// IE 8- don't enum bug keys -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(3).f; -var has = __webpack_require__(1); -var TAG = __webpack_require__(6)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(6); - - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(7); -var LIBRARY = __webpack_require__(9); -var wksExt = __webpack_require__(23); -var defineProperty = __webpack_require__(3).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 25 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.fetchNews = exports.fetchDoodle = exports.readAbout = exports.saveAbout = exports.fetchAbout = exports.readGuide = exports.saveGuide = exports.fetchGuide = exports.readExamples = exports.saveExamples = exports.fetchExamples = undefined; - -var _stringify = __webpack_require__(40); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(42); - -var _typeof3 = _interopRequireDefault(_typeof2); - -exports.createLink = createLink; -exports.createURL = createURL; -exports.i18n = i18n; -exports.parseLanguage = parseLanguage; -exports.setLanguage = setLanguage; -exports.clearStorageLanguage = clearStorageLanguage; -exports.getStorageLanguage = getStorageLanguage; -exports.getSystemLanguage = getSystemLanguage; -exports.getLanguage = getLanguage; -exports.jumpTo = jumpTo; -exports.viewSource = viewSource; -exports.setTitleBar = setTitleBar; -exports.fetchData = fetchData; -exports.saveData = saveData; -exports.readData = readData; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var stream = weex.requireModule('stream'); -var storage = weex.requireModule('storage'); -var navigator = weex.requireModule('navigator'); - -var encoder = typeof encodeURIComponent === 'function' ? encodeURIComponent : typeof encodeURI === 'function' ? encodeURI : function (x) { - return x; -}; - -function encodeParams(params) { - if (!params || (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) !== 'object') { - return ''; - } - var array = []; - for (var key in params) { - if (typeof params[key] === 'string') { - array.push(encoder(key) + '=' + encoder(params[key])); - } - } - return array.join('&'); -} - -function createLink(name) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var args = []; - for (var key in params) { - if (typeof params[key] === 'string') { - args.push(encoder(key) + '=' + encoder(params[key])); - } - } - if (WXEnvironment.platform === 'Web') { - args.unshift('page=' + name + '.web.js'); - return '/?' + args.join('&'); - } - var base = getBaseURL(); - return '' + base + name + '.weex.js' + (args.length ? '?' + args.join('&') : ''); -} - -function createURL(hash, params) { - if (WXEnvironment.platform === 'Web') { - return 'http://dotwe.org/raw/htmlVue/' + hash; - } - var url = 'http://dotwe.org/raw/dist/' + hash + '.bundle.wx'; - var paramString = encodeParams(params); - if (WXEnvironment.appName === 'TB') { - return url + '?_wx_tpl=' + url + '&' + paramString; - } - if (WXEnvironment.appName === 'WXSample') { - return url + '?' + paramString; - } - return url + '?wx_weex=true&' + paramString; -} - -function getBaseURL() { - var bundleUrl = weex.config.bundleUrl; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - return 'file://assets/'; - } else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - return bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - return ''; -} - -function i18n(text, language) { - if (typeof text === 'string') { - return text; - } - if (Object.prototype.toString.call(text) === '[object Object]') { - var lang = this && this.language || language || 'en'; - return text[lang]; - } -} - -var supportedLanguageRE = /(en|zh)\_?\w*/i; -function parseLanguage(language) { - var match = supportedLanguageRE.exec(language + ''); - if (match && match[1]) { - return match[1]; - } - return ''; -} - -function setLanguage(language) { - var lang = parseLanguage(language); - if (lang) { - storage.setItem('WEEX_PLAYGROUND_LANGUAGE', lang); - } -} - -function clearStorageLanguage() { - storage.removeItem('WEEX_PLAYGROUND_LANGUAGE'); -} - -function getStorageLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - try { - storage.getItem('WEEX_PLAYGROUND_LANGUAGE', function (event) { - if (event.result === 'success') { - var lang = parseLanguage(event.data); - lang ? done(lang) : fail(); - } else { - fail(event); - } - }); - } catch (err) { - fail(err); - } -} - -function getSystemLanguage(done) { - var fail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - - if (!(typeof done === 'undefined' ? 'undefined' : (0, _typeof3.default)(done)) === 'function') { - return; - } - if (WXEnvironment.platform.toLowerCase() === 'web') { - var lang = parseLanguage(window.navigator.language); - lang ? done(lang) : fail(); - } else { - try { - var locale = weex.requireModule('locale') || weex.requireModule('local'); - var useSync = false; - var resSync = locale.getLanguage(function (language) { - var lang = parseLanguage(language); - if (lang) { - useSync || done(lang); - } else { - fail(); - } - }); - var langSync = parseLanguage(resSync); - if (langSync) { - useSync = true; - done(langSync); - } else { - fail(); - } - } catch (e) { - fail(e); - } - } -} - -var languageRE = /.+[\?\&]{1}language=([\d\w]+)[\?\&]?.*/i; -function getLanguage() { - var done = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; - - var match = languageRE.exec(weex.config.bundleUrl || ''); - var lang = parseLanguage(match && match[1]); - if (lang) { - done(lang); - } else { - getStorageLanguage(done, function () { - getSystemLanguage(done, function () { - done('en'); - }); - }); - } -} - -function jumpTo(url, title, lang) { - getLanguage(function (language) { - storage.setItem('CURRENT_DOCUMENT_URL', i18n(url, lang || language)); - navigator.push({ - url: createURL('bf0305c14b511b24a4e616f53926432b', { language: language, title: i18n(title, lang || language) }) - }); - }); -} - -function viewSource(hash) { - getLanguage(function (language) { - navigator.push({ - url: createURL('f6ce29faf686eabc38b410bf4828fa5a', { hash: hash, language: language }) - }); - }); -} - -function setTitleBar(options) { - var language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en'; - - if (Object.prototype.toString.apply(options) !== '[object Object]') { - return; - } - var titleBar = weex.requireModule('titleBar'); - if (options.color || options.backgroundColor) { - try { - titleBar.setStyle({ - foregroundColor: options.color || '#FFFFFF', - backgroundColor: options.backgroundColor || '#00B4FF' - }); - } catch (e) {} - } - var title = i18n(options.title, language); - if (title) { - try { - titleBar.setTitle(title); - } catch (e) {} - } -} - -var storageKeys = { - doodle: 'WEEX_PLAYGROUND_APP_DOODLE', - guide: 'WEEX_PLAYGROUND_APP_GUIDE', - examples: 'WEEX_PLAYGROUND_APP_EXAMPLES', - news: 'WEEX_PLAYGROUND_APP_NEWS', - about: 'WEEX_PLAYGROUND_APP_ABOUT' -}; -function fetchData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - try { - stream.fetch({ - url: 'http://dotwe.org/query/weex-playground-app', - method: 'post', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - }, - type: 'json', - body: 'name=' + name - }, function (res) { - if (res.ok && res.data && res.data.success) { - done(res.data); - } else { - fail(res); - } - }); - } catch (err) { - fail(err); - } -} -function saveData(name, result) { - var key = storageKeys[name]; - if (!key) return; - if (result && (typeof result === 'undefined' ? 'undefined' : (0, _typeof3.default)(result)) === 'object') { - result.timestamp = Date.now(); - storage.setItem(key, (0, _stringify2.default)(result)); - } -} -function readData(name) { - var done = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {}; - var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {}; - - var key = storageKeys[name]; - if (!key) return fail(); - try { - storage.getItem(key, function (event) { - if (event.result === 'success') { - var result = JSON.parse(event.data); - if (result && Array.isArray(result[name])) { - return done(result[name]); - } - } - fail(event); - }); - } catch (e) { - fail(e); - } -} - -var fetchExamples = exports.fetchExamples = function fetchExamples() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return fetchData.apply(undefined, ['examples'].concat(args)); -}; -var saveExamples = exports.saveExamples = function saveExamples() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return saveData.apply(undefined, ['examples'].concat(args)); -}; -var readExamples = exports.readExamples = function readExamples() { - for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - - return readData.apply(undefined, ['examples'].concat(args)); -}; - -var fetchGuide = exports.fetchGuide = function fetchGuide() { - for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - args[_key4] = arguments[_key4]; - } - - return fetchData.apply(undefined, ['guide'].concat(args)); -}; -var saveGuide = exports.saveGuide = function saveGuide() { - for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - args[_key5] = arguments[_key5]; - } - - return saveData.apply(undefined, ['guide'].concat(args)); -}; -var readGuide = exports.readGuide = function readGuide() { - for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - return readData.apply(undefined, ['guide'].concat(args)); -}; - -var fetchAbout = exports.fetchAbout = function fetchAbout() { - for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { - args[_key7] = arguments[_key7]; - } - - return fetchData.apply(undefined, ['about'].concat(args)); -}; -var saveAbout = exports.saveAbout = function saveAbout() { - for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { - args[_key8] = arguments[_key8]; - } - - return saveData.apply(undefined, ['about'].concat(args)); -}; -var readAbout = exports.readAbout = function readAbout() { - for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { - args[_key9] = arguments[_key9]; - } - - return readData.apply(undefined, ['about'].concat(args)); -}; - -var fetchDoodle = exports.fetchDoodle = function fetchDoodle() { - for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - args[_key10] = arguments[_key10]; - } - - return fetchData.apply(undefined, ['doodle'].concat(args)); -}; -var fetchNews = exports.fetchNews = function fetchNews() { - for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; - } - - return fetchData.apply(undefined, ['news'].concat(args)); -}; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(9); -var $export = __webpack_require__(28); -var redefine = __webpack_require__(31); -var hide = __webpack_require__(2); -var Iterators = __webpack_require__(17); -var $iterCreate = __webpack_require__(49); -var setToStringTag = __webpack_require__(22); -var getPrototypeOf = __webpack_require__(56); -var ITERATOR = __webpack_require__(6)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(0); -var core = __webpack_require__(7); -var ctx = __webpack_require__(47); -var hide = __webpack_require__(2); -var has = __webpack_require__(1); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(4) && !__webpack_require__(11)(function () { - return Object.defineProperty(__webpack_require__(30)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(8); -var document = __webpack_require__(0).document; -// typeof document.createElement is 'object' in old IE -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(2); - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -var anObject = __webpack_require__(10); -var dPs = __webpack_require__(50); -var enumBugKeys = __webpack_require__(21); -var IE_PROTO = __webpack_require__(19)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(30)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(55).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(1); -var toIObject = __webpack_require__(5); -var arrayIndexOf = __webpack_require__(52)(false); -var IE_PROTO = __webpack_require__(19)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) -var $keys = __webpack_require__(33); -var hiddenKeys = __webpack_require__(21).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -__webpack_require__(38); - -var _News = __webpack_require__(73); - -var _News2 = _interopRequireDefault(_News); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// show title bar -try { - var titleBar = weex.requireModule('titleBar'); - titleBar.showTitleBar(true); -} catch (e) {} - -_News2.default.el = '#root'; -new Vue(_News2.default); - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _mixin = __webpack_require__(39); - -var _mixin2 = _interopRequireDefault(_mixin); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// use shared mixins -Vue.mixin(_mixin2.default); - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _index = __webpack_require__(26); - -var utils = _interopRequireWildcard(_index); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var storage = weex.requireModule('storage'); - -exports.default = { - filters: { - i18n: utils.i18n, - url: utils.createURL, - link: utils.createLink - }, - methods: { - createLink: utils.createLink, - createURL: utils.createURL, - i18n: utils.i18n, - getLanguage: utils.getLanguage, - fetchData: utils.fetchData, - saveData: utils.saveData, - readData: utils.readData, - jumpTo: utils.jumpTo - }, - created: function created() { - var _this = this; - - // get and set language - utils.getLanguage(function (language) { - _this.language = language; - utils.setTitleBar(_this.navigationBarOptions, language); - }); - - // listen to the language change event - var channel = new BroadcastChannel('language'); - channel.onmessage = function (event) { - if (event.data && event.data.language) { - _this.language = event.data.language; - } - }; - }, - beforeDestroy: function beforeDestroy() { - storage.removeItem('CURRENT_DOCUMENT_URL'); - storage.removeItem('CURRENT_SOURCE_HASH'); - } -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(41), __esModule: true }; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(7); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(43); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(62); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(44), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(45); -__webpack_require__(58); -module.exports = __webpack_require__(23).f('iterator'); - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(46)(true); - -// 21.1.3.27 String.prototype[@@iterator]() -__webpack_require__(27)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index -// 21.1.5.2.1 %StringIteratorPrototype%.next() -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(14); -var defined = __webpack_require__(15); -// true -> String#at -// false -> String#codePointAt -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -// optional / simple context binding -var aFunction = __webpack_require__(48); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(32); -var descriptor = __webpack_require__(12); -var setToStringTag = __webpack_require__(22); -var IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(2)(IteratorPrototype, __webpack_require__(6)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(3); -var anObject = __webpack_require__(10); -var getKeys = __webpack_require__(18); - -module.exports = __webpack_require__(4) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(34); -// eslint-disable-next-line no-prototype-builtins -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(5); -var toLength = __webpack_require__(53); -var toAbsoluteIndex = __webpack_require__(54); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.15 ToLength -var toInteger = __webpack_require__(14); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 -}; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(14); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(0).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(1); -var toObject = __webpack_require__(57); -var IE_PROTO = __webpack_require__(19)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.1.13 ToObject(argument) -var defined = __webpack_require__(15); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(59); -var global = __webpack_require__(0); -var hide = __webpack_require__(2); -var Iterators = __webpack_require__(17); -var TO_STRING_TAG = __webpack_require__(6)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(60); -var step = __webpack_require__(61); -var Iterators = __webpack_require__(17); -var toIObject = __webpack_require__(5); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(27)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 60 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(63), __esModule: true }; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(64); -__webpack_require__(70); -__webpack_require__(71); -__webpack_require__(72); -module.exports = __webpack_require__(7).Symbol; - - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(0); -var has = __webpack_require__(1); -var DESCRIPTORS = __webpack_require__(4); -var $export = __webpack_require__(28); -var redefine = __webpack_require__(31); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(11); -var shared = __webpack_require__(20); -var setToStringTag = __webpack_require__(22); -var uid = __webpack_require__(13); -var wks = __webpack_require__(6); -var wksExt = __webpack_require__(23); -var wksDefine = __webpack_require__(24); -var enumKeys = __webpack_require__(66); -var isArray = __webpack_require__(67); -var anObject = __webpack_require__(10); -var isObject = __webpack_require__(8); -var toIObject = __webpack_require__(5); -var toPrimitive = __webpack_require__(16); -var createDesc = __webpack_require__(12); -var _create = __webpack_require__(32); -var gOPNExt = __webpack_require__(68); -var $GOPD = __webpack_require__(69); -var $DP = __webpack_require__(3); -var $keys = __webpack_require__(18); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(36).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(25).f = $propertyIsEnumerable; - __webpack_require__(35).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(9)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(2)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(13)('meta'); -var isObject = __webpack_require__(8); -var has = __webpack_require__(1); -var setDesc = __webpack_require__(3).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(11)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); -}; -var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(18); -var gOPS = __webpack_require__(35); -var pIE = __webpack_require__(25); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(34); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(5); -var gOPN = __webpack_require__(36).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(25); -var createDesc = __webpack_require__(12); -var toIObject = __webpack_require__(5); -var toPrimitive = __webpack_require__(16); -var has = __webpack_require__(1); -var IE8_DOM_DEFINE = __webpack_require__(29); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(4) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(24)('asyncIterator'); - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(24)('observable'); - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var __vue_exports__, __vue_options__ -var __vue_styles__ = [] - -/* styles */ -__vue_styles__.push(__webpack_require__(74) -) - -/* script */ -__vue_exports__ = __webpack_require__(75) - -/* template */ -var __vue_template__ = __webpack_require__(76) -__vue_options__ = __vue_exports__ = __vue_exports__ || {} -if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" -) { -if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} -__vue_options__ = __vue_exports__ = __vue_exports__.default -} -if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options -} -__vue_options__.__file = "/Users/kw/github/weex-vue-examples/src/pages/news/News.vue" -__vue_options__.render = __vue_template__.render -__vue_options__.staticRenderFns = __vue_template__.staticRenderFns -__vue_options__._scopeId = "data-v-59a504d6" -__vue_options__.style = __vue_options__.style || {} -__vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } -}) -if (typeof __register_static_styles__ === "function") { - __register_static_styles__(__vue_options__._scopeId, __vue_styles__) -} - -module.exports = __vue_exports__ - - -/***/ }), -/* 74 */ -/***/ (function(module, exports) { - -module.exports = { - "list": { - "backgroundColor": "#F1F1F1" - }, - "refresh": { - "width": "750", - "alignItems": "center", - "backgroundColor": "#808080" - }, - "indicator-text": { - "color": "#C5C5C5", - "fontSize": "34", - "paddingTop": "50", - "paddingRight": "50", - "paddingBottom": "50", - "paddingLeft": "50", - "textAlign": "center" - }, - "cell": { - "alignItems": "center" - }, - "message-time": { - "marginTop": "25", - "justifyContent": "center" - }, - "time-text": { - "paddingTop": "5", - "paddingBottom": "5", - "paddingLeft": "18", - "paddingRight": "18", - "backgroundColor": "rgba(0,0,0,0.1)", - "fontSize": "25", - "borderRadius": "8", - "color": "#FEFEFE" - }, - "message-box": { - "borderWidth": "1", - "borderColor": "#DDDDDD", - "borderRadius": "15", - "backgroundColor": "#FFFFFF", - "marginTop": "25", - "marginBottom": "35", - "backgroundColor:active": "#F8F8F8" - }, - "related-article": { - "borderTopWidth": "1", - "borderTopColor": "#E6E6E6", - "flexDirection": "row", - "alignItems": "center", - "paddingTop": "10", - "paddingBottom": "15", - "paddingLeft": "30", - "paddingRight": "20", - "backgroundColor": "#FEFEFE" - }, - "poster": { - "width": "680", - "height": "340", - "backgroundColor": "#D2D2D2" - }, - "title": { - "width": "680", - "paddingTop": "30", - "paddingRight": "30", - "paddingBottom": "30", - "paddingLeft": "30", - "fontSize": "38", - "color": "#323232" - }, - "shortcut": { - "width": "80", - "height": "80" - }, - "subtitle": { - "width": "550", - "paddingRight": "25", - "fontSize": "34", - "color": "#454545" - }, - "summary": { - "width": "680", - "marginTop": "-20", - "paddingLeft": "30", - "paddingRight": "30", - "paddingBottom": "30", - "fontSize": "28", - "color": "#929292", - "lines": 3 - } -} - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _utils = __webpack_require__(26); - -var modal = weex.requireModule('modal'); // -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -exports.default = { - data: function data() { - var dict = { - REFRESH: { en: 'Release to refresh', zh: '释放刷新' }, - REFRESHING: { en: 'Fetching ...', zh: '正在加载……' }, - UPDATED: { en: 'Updated', zh: '已更新' }, - LOAD_MERE: { en: 'Load more', zh: '加载更多' }, - NO_MORE_NEWS: { en: 'No more news', zh: '到底了' } - }; - return { - language: 'en', - navigationBarOptions: { - // backgroundColor: '#5F5F5F', - title: { - zh: '资讯', - en: 'News' - } - }, - dict: dict, - refreshNote: dict.REFRESH, - refreshing: false, - visibleCount: 6, - news: [] - }; - }, - - computed: { - visibleNews: function visibleNews() { - return this.news.slice(0, this.visibleCount); - } - }, - beforeCreate: function beforeCreate() { - var _this = this; - - (0, _utils.fetchNews)(function (res) { - if (Array.isArray(res.news)) { - _this.news = res.news; - } - }); - }, - - methods: { - refresh: function refresh() { - var _this2 = this; - - this.refreshing = true; - this.refreshNote = this.dict.REFRESHING; - var finish = function finish() { - _this2.refreshing = false; - setTimeout(function () { - _this2.refreshNote = _this2.dict.REFRESH; - }, 500); - }; - (0, _utils.fetchNews)(function (res) { - if (Array.isArray(res.news)) { - if (_this2.news.length === res.news.length) { - modal.toast({ - message: _this2.i18n(_this2.dict.UPDATED) - }); - } - _this2.news = res.news; - finish(); - } - setTimeout(function () { - return finish(); - }, 5000); - }); - }, - loadmore: function loadmore() { - var step = 4; - var currentCount = this.visibleCount; - this.visibleCount = Math.min(currentCount + step, this.news.length); - modal.toast({ - message: this.visibleCount > currentCount ? this.i18n(this.dict.LOAD_MERE) : this.i18n(this.dict.NO_MORE_NEWS) - }); - } - } -}; - -/***/ }), -/* 76 */ -/***/ (function(module, exports) { - -module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('list', { - staticClass: ["list"], - attrs: { - "loadmoreoffset": "10" - }, - on: { - "loadmore": _vm.loadmore - } - }, [_c('refresh', { - staticClass: ["refresh"], - attrs: { - "display": _vm.refreshing ? 'show' : 'hide' - }, - on: { - "refresh": _vm.refresh - } - }, [_c('text', { - staticClass: ["indicator-text"] - }, [_vm._v(_vm._s(_vm.i18n(_vm.refreshNote)))])]), _vm._l((_vm.visibleNews), function(item, i) { - return _c('cell', { - key: i, - staticClass: ["cell"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [(item.time) ? _c('div', { - staticClass: ["message-time"] - }, [_c('text', { - staticClass: ["time-text"] - }, [_vm._v(_vm._s(_vm.i18n(item.time)))])]) : _vm._e(), (item.type === 'article') ? _c('div', { - staticClass: ["message-box"] - }, [_c('div', { - staticClass: ["article"], - on: { - "click": function($event) { - _vm.jumpTo(item.link) - } - } - }, [_c('image', { - staticClass: ["poster"], - attrs: { - "resize": "cover", - "src": item.poster - } - }), _c('text', { - staticClass: ["title"] - }, [_vm._v(_vm._s(item.title))]), (item.summary) ? _c('text', { - staticClass: ["summary"], - attrs: { - "lines": 3 - } - }, [_vm._v(_vm._s(item.summary))]) : _vm._e(), _c('div', { - staticClass: ["related"] - }, _vm._l((item.related), function(sub) { - return _c('div', { - key: sub.title, - staticClass: ["related-article"], - on: { - "click": function($event) { - _vm.jumpTo(sub.link) - } - } - }, [_c('text', { - staticClass: ["subtitle"] - }, [_vm._v(_vm._s(sub.title))]), _c('image', { - staticClass: ["shortcut"], - attrs: { - "resize": "cover", - "src": sub.poster - } - })]) - }))])]) : _vm._e()]) - })], 2) -},staticRenderFns: []} -module.exports.render._withStripped = true - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/ios/playground/weex.png b/ios/playground/weex.png deleted file mode 100644 index e8f8e52ab3f416ae39c7a6b2d470d2c968618dd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3187 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 Ye~xH4#G1eJoB#j-07*qoM6N<$g33rAZ~y=R diff --git a/ios/sdk/buildScripts.sh b/ios/sdk/buildScripts.sh index 01673361de..fba15da74b 100644 --- a/ios/sdk/buildScripts.sh +++ b/ios/sdk/buildScripts.sh @@ -1,5 +1,9 @@ #!/bin/sh +# update submodule +echo "update submodule" +git submodule update --init --remote + # generateFileHeader # param 1:headerFilePath function generateFileHeader() {