From 36131f2aad660fffb60d9d683227dcbba8b4d84b Mon Sep 17 00:00:00 2001 From: Jonas <60469464+Jonass-K@users.noreply.github.com> Date: Mon, 26 Jul 2021 10:54:06 +0200 Subject: [PATCH 1/7] Converted via safari-web-extension-converter --- LICENSE.md | 21 - Mini Y Extension/Info.plist | 33 + .../Mini_Y_Extension.entitlements | 10 + .../SafariWebExtensionHandler.swift | 26 + Mini Y.xcodeproj/project.pbxproj | 562 +++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 25764 bytes .../xcschemes/xcschememanagement.plist | 14 + Mini Y/AppDelegate.swift | 25 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 60 ++ .../AppIcon.appiconset}/icon128.png | Bin .../AppIcon.appiconset}/icon16.png | Bin Mini Y/Assets.xcassets/Contents.json | 6 + Mini Y/Base.lproj/Main.storyboard | 168 +++++ Mini Y/Info.plist | 30 + Mini Y/Mini_Y.entitlements | 10 + Mini Y/ViewController.swift | 51 ++ README.md | 53 -- background.js | 96 --- dist/make-chrome.sh | 20 - dist/make-edge.sh | 20 - floatVideo.css | 304 -------- floatVideo.js | 653 ------------------ images/brCorner.png | Bin 721 -> 0 bytes images/coffee.png | Bin 3115 -> 0 bytes images/facebook.png | Bin 8651 -> 0 bytes images/facebook_2.png | Bin 1617 -> 0 bytes images/github.png | Bin 2625 -> 0 bytes images/icon128_grey.png | Bin 7754 -> 0 bytes images/icon48.png | Bin 4890 -> 0 bytes images/paypal.png | Bin 6966 -> 0 bytes images/pin.png | Bin 1418 -> 0 bytes images/star.png | Bin 2954 -> 0 bytes images/twitter.png | Bin 2485 -> 0 bytes jquery-2.1.3.min.js | 4 - manifest_chrome.json | 37 - manifest_edge.json | 38 - .../miniyoutube_1.2.16.zip | Bin 85282 -> 0 bytes .../miniyoutube_1.2.17.zip | Bin 85003 -> 0 bytes .../miniyoutube_1.2.18.zip | Bin 85019 -> 0 bytes .../miniyoutube_1.2.19.zip | Bin 92579 -> 0 bytes .../miniyoutube_1.2.20.zip | Bin 92580 -> 0 bytes .../miniyoutube_1.2.21.zip | Bin 92624 -> 0 bytes .../miniyoutube_1.2.22.zip | Bin 92716 -> 0 bytes .../miniyoutube_1.2.23.zip | Bin 92645 -> 0 bytes .../miniyoutube_1.2.24.zip | Bin 97507 -> 0 bytes .../miniyoutube_1.2.25.zip | Bin 96890 -> 0 bytes popup.css | 78 --- popup.html | 46 -- popup.js | 51 -- screenshots/Screenshot1.png | Bin 622546 -> 0 bytes screenshots/Screenshot2.png | Bin 560586 -> 0 bytes screenshots/Screenshot3.png | Bin 980893 -> 0 bytes screenshots/promotional_tile_large.png | Bin 405413 -> 0 bytes screenshots/promotional_tile_marquee.png | Bin 394188 -> 0 bytes screenshots/promotional_tile_small.jpg | Bin 76912 -> 0 bytes 58 files changed, 1021 insertions(+), 1421 deletions(-) delete mode 100644 LICENSE.md create mode 100644 Mini Y Extension/Info.plist create mode 100644 Mini Y Extension/Mini_Y_Extension.entitlements create mode 100644 Mini Y Extension/SafariWebExtensionHandler.swift create mode 100644 Mini Y.xcodeproj/project.pbxproj create mode 100644 Mini Y.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Mini Y.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Mini Y.xcodeproj/project.xcworkspace/xcuserdata/jonas.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Mini Y.xcodeproj/xcuserdata/jonas.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Mini Y/AppDelegate.swift create mode 100644 Mini Y/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Mini Y/Assets.xcassets/AppIcon.appiconset/Contents.json rename {images => Mini Y/Assets.xcassets/AppIcon.appiconset}/icon128.png (100%) rename {images => Mini Y/Assets.xcassets/AppIcon.appiconset}/icon16.png (100%) create mode 100644 Mini Y/Assets.xcassets/Contents.json create mode 100644 Mini Y/Base.lproj/Main.storyboard create mode 100644 Mini Y/Info.plist create mode 100644 Mini Y/Mini_Y.entitlements create mode 100644 Mini Y/ViewController.swift delete mode 100644 README.md delete mode 100644 background.js delete mode 100755 dist/make-chrome.sh delete mode 100755 dist/make-edge.sh delete mode 100644 floatVideo.css delete mode 100644 floatVideo.js delete mode 100644 images/brCorner.png delete mode 100644 images/coffee.png delete mode 100644 images/facebook.png delete mode 100644 images/facebook_2.png delete mode 100644 images/github.png delete mode 100644 images/icon128_grey.png delete mode 100644 images/icon48.png delete mode 100644 images/paypal.png delete mode 100644 images/pin.png delete mode 100644 images/star.png delete mode 100644 images/twitter.png delete mode 100644 jquery-2.1.3.min.js delete mode 100644 manifest_chrome.json delete mode 100644 manifest_edge.json delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.16.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.17.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.18.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.19.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.20.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.21.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.22.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.23.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.24.zip delete mode 100644 miniyoutube_chrome_releases/miniyoutube_1.2.25.zip delete mode 100644 popup.css delete mode 100644 popup.html delete mode 100644 popup.js delete mode 100644 screenshots/Screenshot1.png delete mode 100644 screenshots/Screenshot2.png delete mode 100644 screenshots/Screenshot3.png delete mode 100644 screenshots/promotional_tile_large.png delete mode 100644 screenshots/promotional_tile_marquee.png delete mode 100644 screenshots/promotional_tile_small.jpg diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index d553985..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jian Wei Chuah - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/Mini Y Extension/Info.plist b/Mini Y Extension/Info.plist new file mode 100644 index 0000000..b4f6b56 --- /dev/null +++ b/Mini Y Extension/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Mini Y Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSExtension + + NSExtensionPointIdentifier + com.apple.Safari.web-extension + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).SafariWebExtensionHandler + + + diff --git a/Mini Y Extension/Mini_Y_Extension.entitlements b/Mini Y Extension/Mini_Y_Extension.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/Mini Y Extension/Mini_Y_Extension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/Mini Y Extension/SafariWebExtensionHandler.swift b/Mini Y Extension/SafariWebExtensionHandler.swift new file mode 100644 index 0000000..d99af34 --- /dev/null +++ b/Mini Y Extension/SafariWebExtensionHandler.swift @@ -0,0 +1,26 @@ +// +// SafariWebExtensionHandler.swift +// Mini Y Extension +// +// Created by Jonas Kaiser on 26.07.21. +// + +import SafariServices +import os.log + +let SFExtensionMessageKey = "message" + +class SafariWebExtensionHandler: NSObject, NSExtensionRequestHandling { + + func beginRequest(with context: NSExtensionContext) { + let item = context.inputItems[0] as! NSExtensionItem + let message = item.userInfo?[SFExtensionMessageKey] + os_log(.default, "Received message from browser.runtime.sendNativeMessage: %@", message as! CVarArg) + + let response = NSExtensionItem() + response.userInfo = [ SFExtensionMessageKey: [ "Response to": message ] ] + + context.completeRequest(returningItems: [response], completionHandler: nil) + } + +} diff --git a/Mini Y.xcodeproj/project.pbxproj b/Mini Y.xcodeproj/project.pbxproj new file mode 100644 index 0000000..df43442 --- /dev/null +++ b/Mini Y.xcodeproj/project.pbxproj @@ -0,0 +1,562 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + DD7E370726AEAAF500DB7ECF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD7E370626AEAAF500DB7ECF /* AppDelegate.swift */; }; + DD7E370A26AEAAF500DB7ECF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DD7E370826AEAAF500DB7ECF /* Main.storyboard */; }; + DD7E370C26AEAAF500DB7ECF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD7E370B26AEAAF500DB7ECF /* ViewController.swift */; }; + DD7E370E26AEAAF600DB7ECF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DD7E370D26AEAAF600DB7ECF /* Assets.xcassets */; }; + DD7E371526AEAAF600DB7ECF /* Mini Y Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = DD7E371426AEAAF600DB7ECF /* Mini Y Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + DD7E371A26AEAAF600DB7ECF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD7E371926AEAAF600DB7ECF /* Cocoa.framework */; }; + DD7E371D26AEAAF600DB7ECF /* SafariWebExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD7E371C26AEAAF600DB7ECF /* SafariWebExtensionHandler.swift */; }; + DD7E373A26AEAAF700DB7ECF /* floatVideo.css in Resources */ = {isa = PBXBuildFile; fileRef = DD7E372A26AEAAF700DB7ECF /* floatVideo.css */; }; + DD7E373B26AEAAF700DB7ECF /* miniyoutube_chrome_releases in Resources */ = {isa = PBXBuildFile; fileRef = DD7E372B26AEAAF700DB7ECF /* miniyoutube_chrome_releases */; }; + DD7E373C26AEAAF700DB7ECF /* manifest_edge.json in Resources */ = {isa = PBXBuildFile; fileRef = DD7E372C26AEAAF700DB7ECF /* manifest_edge.json */; }; + DD7E373D26AEAAF700DB7ECF /* LICENSE.md in Resources */ = {isa = PBXBuildFile; fileRef = DD7E372D26AEAAF700DB7ECF /* LICENSE.md */; }; + DD7E373E26AEAAF700DB7ECF /* popup.js in Resources */ = {isa = PBXBuildFile; fileRef = DD7E372E26AEAAF700DB7ECF /* popup.js */; }; + DD7E373F26AEAAF700DB7ECF /* screenshots in Resources */ = {isa = PBXBuildFile; fileRef = DD7E372F26AEAAF700DB7ECF /* screenshots */; }; + DD7E374026AEAAF700DB7ECF /* jquery-2.1.3.min.js in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373026AEAAF700DB7ECF /* jquery-2.1.3.min.js */; }; + DD7E374126AEAAF700DB7ECF /* floatVideo.js in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373126AEAAF700DB7ECF /* floatVideo.js */; }; + DD7E374226AEAAF700DB7ECF /* background.js in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373226AEAAF700DB7ECF /* background.js */; }; + DD7E374326AEAAF700DB7ECF /* dist in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373326AEAAF700DB7ECF /* dist */; }; + DD7E374426AEAAF700DB7ECF /* images in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373426AEAAF700DB7ECF /* images */; }; + DD7E374526AEAAF700DB7ECF /* popup.html in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373526AEAAF700DB7ECF /* popup.html */; }; + DD7E374626AEAAF700DB7ECF /* manifest_chrome.json in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373626AEAAF700DB7ECF /* manifest_chrome.json */; }; + DD7E374726AEAAF700DB7ECF /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373726AEAAF700DB7ECF /* README.md */; }; + DD7E374826AEAAF700DB7ECF /* manifest.json in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373826AEAAF700DB7ECF /* manifest.json */; }; + DD7E374926AEAAF700DB7ECF /* popup.css in Resources */ = {isa = PBXBuildFile; fileRef = DD7E373926AEAAF700DB7ECF /* popup.css */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + DD7E371626AEAAF600DB7ECF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DD7E36FA26AEAAF500DB7ECF /* Project object */; + proxyType = 1; + remoteGlobalIDString = DD7E371326AEAAF600DB7ECF; + remoteInfo = "Mini Y Extension"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + DD7E372526AEAAF600DB7ECF /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + DD7E371526AEAAF600DB7ECF /* Mini Y Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + DD7E370226AEAAF500DB7ECF /* Mini Y.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mini Y.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + DD7E370526AEAAF500DB7ECF /* Mini_Y.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Mini_Y.entitlements; sourceTree = ""; }; + DD7E370626AEAAF500DB7ECF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + DD7E370926AEAAF500DB7ECF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + DD7E370B26AEAAF500DB7ECF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + DD7E370D26AEAAF600DB7ECF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + DD7E370F26AEAAF600DB7ECF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DD7E371426AEAAF600DB7ECF /* Mini Y Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Mini Y Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + DD7E371926AEAAF600DB7ECF /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + DD7E371C26AEAAF600DB7ECF /* SafariWebExtensionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariWebExtensionHandler.swift; sourceTree = ""; }; + DD7E371E26AEAAF600DB7ECF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DD7E371F26AEAAF600DB7ECF /* Mini_Y_Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Mini_Y_Extension.entitlements; sourceTree = ""; }; + DD7E372A26AEAAF700DB7ECF /* floatVideo.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; name = floatVideo.css; path = ../../miniyoutube/floatVideo.css; sourceTree = ""; }; + DD7E372B26AEAAF700DB7ECF /* miniyoutube_chrome_releases */ = {isa = PBXFileReference; lastKnownFileType = folder; name = miniyoutube_chrome_releases; path = ../../miniyoutube/miniyoutube_chrome_releases; sourceTree = ""; }; + DD7E372C26AEAAF700DB7ECF /* manifest_edge.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = manifest_edge.json; path = ../../miniyoutube/manifest_edge.json; sourceTree = ""; }; + DD7E372D26AEAAF700DB7ECF /* LICENSE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = LICENSE.md; path = ../../miniyoutube/LICENSE.md; sourceTree = ""; }; + DD7E372E26AEAAF700DB7ECF /* popup.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; name = popup.js; path = ../../miniyoutube/popup.js; sourceTree = ""; }; + DD7E372F26AEAAF700DB7ECF /* screenshots */ = {isa = PBXFileReference; lastKnownFileType = folder; name = screenshots; path = ../../miniyoutube/screenshots; sourceTree = ""; }; + DD7E373026AEAAF700DB7ECF /* jquery-2.1.3.min.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; name = "jquery-2.1.3.min.js"; path = "../../miniyoutube/jquery-2.1.3.min.js"; sourceTree = ""; }; + DD7E373126AEAAF700DB7ECF /* floatVideo.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; name = floatVideo.js; path = ../../miniyoutube/floatVideo.js; sourceTree = ""; }; + DD7E373226AEAAF700DB7ECF /* background.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; name = background.js; path = ../../miniyoutube/background.js; sourceTree = ""; }; + DD7E373326AEAAF700DB7ECF /* dist */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dist; path = ../../miniyoutube/dist; sourceTree = ""; }; + DD7E373426AEAAF700DB7ECF /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; name = images; path = ../../miniyoutube/images; sourceTree = ""; }; + DD7E373526AEAAF700DB7ECF /* popup.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = popup.html; path = ../../miniyoutube/popup.html; sourceTree = ""; }; + DD7E373626AEAAF700DB7ECF /* manifest_chrome.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = manifest_chrome.json; path = ../../miniyoutube/manifest_chrome.json; sourceTree = ""; }; + DD7E373726AEAAF700DB7ECF /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../../miniyoutube/README.md; sourceTree = ""; }; + DD7E373826AEAAF700DB7ECF /* manifest.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = manifest.json; path = ../../miniyoutube/manifest.json; sourceTree = ""; }; + DD7E373926AEAAF700DB7ECF /* popup.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; name = popup.css; path = ../../miniyoutube/popup.css; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + DD7E36FF26AEAAF500DB7ECF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DD7E371126AEAAF600DB7ECF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DD7E371A26AEAAF600DB7ECF /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + DD7E36F926AEAAF500DB7ECF = { + isa = PBXGroup; + children = ( + DD7E370426AEAAF500DB7ECF /* Mini Y */, + DD7E371B26AEAAF600DB7ECF /* Mini Y Extension */, + DD7E371826AEAAF600DB7ECF /* Frameworks */, + DD7E370326AEAAF500DB7ECF /* Products */, + ); + sourceTree = ""; + }; + DD7E370326AEAAF500DB7ECF /* Products */ = { + isa = PBXGroup; + children = ( + DD7E370226AEAAF500DB7ECF /* Mini Y.app */, + DD7E371426AEAAF600DB7ECF /* Mini Y Extension.appex */, + ); + name = Products; + sourceTree = ""; + }; + DD7E370426AEAAF500DB7ECF /* Mini Y */ = { + isa = PBXGroup; + children = ( + DD7E370526AEAAF500DB7ECF /* Mini_Y.entitlements */, + DD7E370626AEAAF500DB7ECF /* AppDelegate.swift */, + DD7E370826AEAAF500DB7ECF /* Main.storyboard */, + DD7E370B26AEAAF500DB7ECF /* ViewController.swift */, + DD7E370D26AEAAF600DB7ECF /* Assets.xcassets */, + DD7E370F26AEAAF600DB7ECF /* Info.plist */, + ); + path = "Mini Y"; + sourceTree = ""; + }; + DD7E371826AEAAF600DB7ECF /* Frameworks */ = { + isa = PBXGroup; + children = ( + DD7E371926AEAAF600DB7ECF /* Cocoa.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + DD7E371B26AEAAF600DB7ECF /* Mini Y Extension */ = { + isa = PBXGroup; + children = ( + DD7E372926AEAAF700DB7ECF /* Resources */, + DD7E371C26AEAAF600DB7ECF /* SafariWebExtensionHandler.swift */, + DD7E371E26AEAAF600DB7ECF /* Info.plist */, + DD7E371F26AEAAF600DB7ECF /* Mini_Y_Extension.entitlements */, + ); + path = "Mini Y Extension"; + sourceTree = ""; + }; + DD7E372926AEAAF700DB7ECF /* Resources */ = { + isa = PBXGroup; + children = ( + DD7E372A26AEAAF700DB7ECF /* floatVideo.css */, + DD7E372B26AEAAF700DB7ECF /* miniyoutube_chrome_releases */, + DD7E372C26AEAAF700DB7ECF /* manifest_edge.json */, + DD7E372D26AEAAF700DB7ECF /* LICENSE.md */, + DD7E372E26AEAAF700DB7ECF /* popup.js */, + DD7E372F26AEAAF700DB7ECF /* screenshots */, + DD7E373026AEAAF700DB7ECF /* jquery-2.1.3.min.js */, + DD7E373126AEAAF700DB7ECF /* floatVideo.js */, + DD7E373226AEAAF700DB7ECF /* background.js */, + DD7E373326AEAAF700DB7ECF /* dist */, + DD7E373426AEAAF700DB7ECF /* images */, + DD7E373526AEAAF700DB7ECF /* popup.html */, + DD7E373626AEAAF700DB7ECF /* manifest_chrome.json */, + DD7E373726AEAAF700DB7ECF /* README.md */, + DD7E373826AEAAF700DB7ECF /* manifest.json */, + DD7E373926AEAAF700DB7ECF /* popup.css */, + ); + name = Resources; + path = "Mini Y Extension"; + sourceTree = SOURCE_ROOT; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + DD7E370126AEAAF500DB7ECF /* Mini Y */ = { + isa = PBXNativeTarget; + buildConfigurationList = DD7E372626AEAAF600DB7ECF /* Build configuration list for PBXNativeTarget "Mini Y" */; + buildPhases = ( + DD7E36FE26AEAAF500DB7ECF /* Sources */, + DD7E36FF26AEAAF500DB7ECF /* Frameworks */, + DD7E370026AEAAF500DB7ECF /* Resources */, + DD7E372526AEAAF600DB7ECF /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + DD7E371726AEAAF600DB7ECF /* PBXTargetDependency */, + ); + name = "Mini Y"; + productName = "Mini Y"; + productReference = DD7E370226AEAAF500DB7ECF /* Mini Y.app */; + productType = "com.apple.product-type.application"; + }; + DD7E371326AEAAF600DB7ECF /* Mini Y Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = DD7E372226AEAAF600DB7ECF /* Build configuration list for PBXNativeTarget "Mini Y Extension" */; + buildPhases = ( + DD7E371026AEAAF600DB7ECF /* Sources */, + DD7E371126AEAAF600DB7ECF /* Frameworks */, + DD7E371226AEAAF600DB7ECF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Mini Y Extension"; + productName = "Mini Y Extension"; + productReference = DD7E371426AEAAF600DB7ECF /* Mini Y Extension.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + DD7E36FA26AEAAF500DB7ECF /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1250; + LastUpgradeCheck = 1250; + TargetAttributes = { + DD7E370126AEAAF500DB7ECF = { + CreatedOnToolsVersion = 12.5.1; + }; + DD7E371326AEAAF600DB7ECF = { + CreatedOnToolsVersion = 12.5.1; + }; + }; + }; + buildConfigurationList = DD7E36FD26AEAAF500DB7ECF /* Build configuration list for PBXProject "Mini Y" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = DD7E36F926AEAAF500DB7ECF; + productRefGroup = DD7E370326AEAAF500DB7ECF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + DD7E370126AEAAF500DB7ECF /* Mini Y */, + DD7E371326AEAAF600DB7ECF /* Mini Y Extension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + DD7E370026AEAAF500DB7ECF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DD7E370E26AEAAF600DB7ECF /* Assets.xcassets in Resources */, + DD7E370A26AEAAF500DB7ECF /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DD7E371226AEAAF600DB7ECF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DD7E373D26AEAAF700DB7ECF /* LICENSE.md in Resources */, + DD7E374526AEAAF700DB7ECF /* popup.html in Resources */, + DD7E374426AEAAF700DB7ECF /* images in Resources */, + DD7E374626AEAAF700DB7ECF /* manifest_chrome.json in Resources */, + DD7E374926AEAAF700DB7ECF /* popup.css in Resources */, + DD7E373C26AEAAF700DB7ECF /* manifest_edge.json in Resources */, + DD7E374326AEAAF700DB7ECF /* dist in Resources */, + DD7E374026AEAAF700DB7ECF /* jquery-2.1.3.min.js in Resources */, + DD7E374826AEAAF700DB7ECF /* manifest.json in Resources */, + DD7E373E26AEAAF700DB7ECF /* popup.js in Resources */, + DD7E374226AEAAF700DB7ECF /* background.js in Resources */, + DD7E373A26AEAAF700DB7ECF /* floatVideo.css in Resources */, + DD7E374726AEAAF700DB7ECF /* README.md in Resources */, + DD7E374126AEAAF700DB7ECF /* floatVideo.js in Resources */, + DD7E373F26AEAAF700DB7ECF /* screenshots in Resources */, + DD7E373B26AEAAF700DB7ECF /* miniyoutube_chrome_releases in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + DD7E36FE26AEAAF500DB7ECF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DD7E370C26AEAAF500DB7ECF /* ViewController.swift in Sources */, + DD7E370726AEAAF500DB7ECF /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DD7E371026AEAAF600DB7ECF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DD7E371D26AEAAF600DB7ECF /* SafariWebExtensionHandler.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + DD7E371726AEAAF600DB7ECF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DD7E371326AEAAF600DB7ECF /* Mini Y Extension */; + targetProxy = DD7E371626AEAAF600DB7ECF /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + DD7E370826AEAAF500DB7ECF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DD7E370926AEAAF500DB7ECF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + DD7E372026AEAAF600DB7ECF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + DD7E372126AEAAF600DB7ECF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + DD7E372326AEAAF600DB7ECF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = "Mini Y Extension/Mini_Y_Extension.entitlements"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "Mini Y Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.yourCompany.Mini-Y.Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + DD7E372426AEAAF600DB7ECF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = "Mini Y Extension/Mini_Y_Extension.entitlements"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "Mini Y Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.yourCompany.Mini-Y.Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + DD7E372726AEAAF600DB7ECF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "Mini Y/Mini_Y.entitlements"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "Mini Y/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.yourCompany.Mini-Y"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + DD7E372826AEAAF600DB7ECF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "Mini Y/Mini_Y.entitlements"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "Mini Y/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.yourCompany.Mini-Y"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + DD7E36FD26AEAAF500DB7ECF /* Build configuration list for PBXProject "Mini Y" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DD7E372026AEAAF600DB7ECF /* Debug */, + DD7E372126AEAAF600DB7ECF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DD7E372226AEAAF600DB7ECF /* Build configuration list for PBXNativeTarget "Mini Y Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DD7E372326AEAAF600DB7ECF /* Debug */, + DD7E372426AEAAF600DB7ECF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DD7E372626AEAAF600DB7ECF /* Build configuration list for PBXNativeTarget "Mini Y" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DD7E372726AEAAF600DB7ECF /* Debug */, + DD7E372826AEAAF600DB7ECF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = DD7E36FA26AEAAF500DB7ECF /* Project object */; +} diff --git a/Mini Y.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Mini Y.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Mini Y.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Mini Y.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Mini Y.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Mini Y.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Mini Y.xcodeproj/project.xcworkspace/xcuserdata/jonas.xcuserdatad/UserInterfaceState.xcuserstate b/Mini Y.xcodeproj/project.xcworkspace/xcuserdata/jonas.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..f91cd4cc2c8229ce0e750d070000c5932ce51919 GIT binary patch literal 25764 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 bp}MnrRrQ+c^%m2W5`QHS$I$&x_5J?`XYJqH literal 0 HcmV?d00001 diff --git a/Mini Y.xcodeproj/xcuserdata/jonas.xcuserdatad/xcschemes/xcschememanagement.plist b/Mini Y.xcodeproj/xcuserdata/jonas.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..1229c50 --- /dev/null +++ b/Mini Y.xcodeproj/xcuserdata/jonas.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Mini Y.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Mini Y/AppDelegate.swift b/Mini Y/AppDelegate.swift new file mode 100644 index 0000000..17d8977 --- /dev/null +++ b/Mini Y/AppDelegate.swift @@ -0,0 +1,25 @@ +// +// AppDelegate.swift +// Mini Y +// +// Created by Jonas Kaiser on 26.07.21. +// + +import Cocoa + +@main +class AppDelegate: NSObject, NSApplicationDelegate { + + func applicationDidFinishLaunching(_ notification: Notification) { + // Insert code here to initialize your application + } + + func applicationWillTerminate(_ notification: Notification) { + // Insert code here to tear down your application + } + + func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + +} diff --git a/Mini Y/Assets.xcassets/AccentColor.colorset/Contents.json b/Mini Y/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Mini Y/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Mini Y/Assets.xcassets/AppIcon.appiconset/Contents.json b/Mini Y/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..ecea19e --- /dev/null +++ b/Mini Y/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,60 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon16.png", + "scale" : "1x" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon128.png", + "scale" : "1x" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/images/icon128.png b/Mini Y/Assets.xcassets/AppIcon.appiconset/icon128.png similarity index 100% rename from images/icon128.png rename to Mini Y/Assets.xcassets/AppIcon.appiconset/icon128.png diff --git a/images/icon16.png b/Mini Y/Assets.xcassets/AppIcon.appiconset/icon16.png similarity index 100% rename from images/icon16.png rename to Mini Y/Assets.xcassets/AppIcon.appiconset/icon16.png diff --git a/Mini Y/Assets.xcassets/Contents.json b/Mini Y/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Mini Y/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Mini Y/Base.lproj/Main.storyboard b/Mini Y/Base.lproj/Main.storyboard new file mode 100644 index 0000000..8828d01 --- /dev/null +++ b/Mini Y/Base.lproj/Main.storyboard @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Mini Y/Info.plist b/Mini Y/Info.plist new file mode 100644 index 0000000..cfbbdb7 --- /dev/null +++ b/Mini Y/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Mini Y/Mini_Y.entitlements b/Mini Y/Mini_Y.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/Mini Y/Mini_Y.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/Mini Y/ViewController.swift b/Mini Y/ViewController.swift new file mode 100644 index 0000000..7f5b1c4 --- /dev/null +++ b/Mini Y/ViewController.swift @@ -0,0 +1,51 @@ +// +// ViewController.swift +// Mini Y +// +// Created by Jonas Kaiser on 26.07.21. +// + +import Cocoa +import SafariServices.SFSafariApplication +import SafariServices.SFSafariExtensionManager + +let appName = "Mini Y" +let extensionBundleIdentifier = "com.yourCompany.Mini-Y.Extension" + +class ViewController: NSViewController { + + @IBOutlet var appNameLabel: NSTextField! + + override func viewDidLoad() { + super.viewDidLoad() + self.appNameLabel.stringValue = appName + SFSafariExtensionManager.getStateOfSafariExtension(withIdentifier: extensionBundleIdentifier) { (state, error) in + guard let state = state, error == nil else { + // Insert code to inform the user that something went wrong. + return + } + + DispatchQueue.main.async { + if (state.isEnabled) { + self.appNameLabel.stringValue = "\(appName)'s extension is currently on." + } else { + self.appNameLabel.stringValue = "\(appName)'s extension is currently off. You can turn it on in Safari Extensions preferences." + } + } + } + } + + @IBAction func openSafariExtensionPreferences(_ sender: AnyObject?) { + SFSafariApplication.showPreferencesForExtension(withIdentifier: extensionBundleIdentifier) { error in + guard error == nil else { + // Insert code to inform the user that something went wrong. + return + } + + DispatchQueue.main.async { + NSApplication.shared.terminate(nil) + } + } + } + +} diff --git a/README.md b/README.md deleted file mode 100644 index 536aa98..0000000 --- a/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Mini Youtube -An extension that makes YouTube video float while you're reading/writing comments so you can do both at the same time. -The floating screen is resizable and can be dragged and placed anywhere on the screen. - -## Chrome -Download it on the [Chrome Web Store](http://goo.gl/TyNOlF) - -## Edge -1. [Download the latest zip](https://github.com/japborst/miniyoutube/archive/master.zip) -2. Extract the zip file somewhere safe (it will need to remain there as long as you use the extension) -3. Browse to `about:flags` in Edge and turn on the option `Enable extension developer features` -4. Restart your browser -5. Go to Extensions in the browser menu and click `Load extension` -6. Select the `miniyoutube-master` folder you extracted earlier - -Edge disables side-loaded extensions whenever you restart the browser, unfortunately. However after a few seconds you will get a prompt to re-enable them with a single click. - -![Banner](https://raw.githubusercontent.com/jianweichuah/miniyoutube/master/screenshots/promotional_tile_marquee.png) - -# Screenshots - -![Screenshot 1](https://raw.githubusercontent.com/jianweichuah/miniyoutube/master/screenshots/Screenshot1.png) - -![Screenshot 2](https://raw.github.com/jianweichuah/miniyoutube/master/screenshots/Screenshot2.png) - -# Changelogs - -v1.2.2: -- Show alert "flash videos not supported" when a flash video is being played - -v1.2.1: -- Added option to pin the screen which would save the screen position and size for the future (even after you restart chrome). - -v1.2.0: -- Added a set of predefined sizes S, M, L, XL so it's easier to resize the screen. -- You can still customize the size by dragging and resizing the bottom right corner. - -v1.1.5: -- Added progress bar. - -v1.1.1: -- Fixed minor bug of screen lingering after video has ended. - -v1.1.0: -- Now supports screen resize! -- Just hover to the top right/bottom right corner and drag to resize the floated screen. - -v1.0.3: -- Short click on the small screen to pause/play. Dragging won't interfere with this. - -# License - -[MIT License](https://github.com/jianweichuah/miniyoutube/blob/master/LICENSE.md) diff --git a/background.js b/background.js deleted file mode 100644 index ec6bdd7..0000000 --- a/background.js +++ /dev/null @@ -1,96 +0,0 @@ -// Constants -var MINI_YOUTUBE_ACTIVATED = 'miniYouTubeActivated'; -var MINI_SCREEN_LAST_TOP = 'miniScreenLastTop'; -var MINI_SCREEN_LAST_LEFT = 'miniScreenLastLeft'; -var MINI_SCREEN_LAST_HEIGHT = 'miniScreenLastHeight'; -var MINI_SCREEN_LAST_WIDTH = 'miniScreenLastWidth'; -var miniYouTubeActivated = true; - -// Try if Edge browser object exists, else default to chrome -var browser = self.browser; -if (typeof browser === "undefined") { - browser = self.chrome; -} - -// Try cloud sync, else fallback to localstorage -var storage = browser.storage.sync; -if (typeof storage === "undefined") { - storage = browser.storage.local; -} - -// Check if Mini YouTube is enabled -storage.get([MINI_YOUTUBE_ACTIVATED], function(items) { - if (items[MINI_YOUTUBE_ACTIVATED]) - miniYouTubeActivated = items[MINI_YOUTUBE_ACTIVATED]; -}); - -// Update the icon according to the status -updateIcon(); - -// Receive and handle message from popup -browser.runtime.onMessage.addListener(function(request, sender, sendResponse) { - for (var message in request) { - switch (message) { - case 'update_icon': - // 1. Update status - setActivationStatus(request[message]); - // 2. Update icon - updateIcon(); - break; - - case 'get_activation_status': - sendResponse({"is_active": getActivationStatus()}); - break; - - case 'get_miniscreen_positions': - getMiniScreenPositions(sendResponse); - return true; // Keep channel open - - case 'update_miniscreen_positions': - updateMiniScreenPositions(request[message]); - break; - - default: - break; - } - } -}); - -function updateIcon() { - var iconPath = "images/icon128.png"; - if (!miniYouTubeActivated) - iconPath = "images/icon128_grey.png"; - - browser.browserAction.setIcon({ - path : { - "19": iconPath, - "38": iconPath - } - }); -} - -function getActivationStatus() { - return miniYouTubeActivated; -} - -function setActivationStatus(isActive) { - miniYouTubeActivated = isActive; - storage.set({"miniYouTubeActivated": miniYouTubeActivated}); - // Send message to each tab with youtube to update the status in the content script - browser.tabs.query({url: "https://www.youtube.com/*"},function(tabs){ - tabs.forEach(function(tab){ - browser.tabs.sendMessage(tab.id, {"update_activation_status": miniYouTubeActivated}); - }); - }); -} - -function getMiniScreenPositions(sendResponse) { - storage.get([MINI_SCREEN_LAST_TOP, MINI_SCREEN_LAST_LEFT, - MINI_SCREEN_LAST_HEIGHT, MINI_SCREEN_LAST_WIDTH], function(items){ - sendResponse({"positions": items}); - }); -} - -function updateMiniScreenPositions(positions) { - storage.set(positions); -} diff --git a/dist/make-chrome.sh b/dist/make-chrome.sh deleted file mode 100755 index b36af01..0000000 --- a/dist/make-chrome.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -# -# This script assumes a linux environment - -echo "*** MiniYouTube Chrome: Creating web store package" -echo "*** MiniYouTube Chrome: Copying files" - -DES=build/chrome -rm -rf $DES -mkdir -p $DES - -cp ../manifest_chrome.json $DES/manifest.json - -cp -R ../images $DES/ -cp ../*.html $DES/ -cp ../*.js $DES/ -cp ../*.css $DES/ -cp ../LICENSE.md $DES/ - -echo "*** MiniYouTube Chrome: Package done." diff --git a/dist/make-edge.sh b/dist/make-edge.sh deleted file mode 100755 index 0cfc00a..0000000 --- a/dist/make-edge.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -# -# This script assumes a linux environment - -echo "*** MiniYouTube Edge: Creating web store package" -echo "*** MiniYouTube Edge: Copying files" - -DES=dist/build/edge -rm -rf $DES -mkdir -p $DES - -cp manifest_edge.json $DES/manifest.json - -cp -R images $DES/ -cp *.html $DES/ -cp *.js $DES/ -cp *.css $DES/ -cp LICENSE.md $DES/ - -echo "*** MiniYouTube Edge: Package done." diff --git a/floatVideo.css b/floatVideo.css deleted file mode 100644 index 3b72c9f..0000000 --- a/floatVideo.css +++ /dev/null @@ -1,304 +0,0 @@ -#miniyoutube { - width: 310px; - height: 175px; - position: fixed; - left: 5px; - top: 60px; - z-index: 1000; - background-color: black; - box-shadow: 0 0 10px #000000; -} - -#mnyt-close-button { - position: absolute; - top: 3px; - right:3px; - border-radius: 50%; - display: none; -} - -#mnyt-progress-time { - background: rgba(23,35,34,.5); - opacity: 0.5; - border-radius: 0.5em; - color: #ffffff; - font-weight: bolder; - cursor: text; - padding: 3px 4px 1px 4px; - - bottom: 7px; - left: 50%; - margin-left: -32px; - position: absolute; - z-index: 1001; - display: none; -} - -#mnyt-progress-time:hover { - background-color: #cc181e; - opacity: 1; -} - -.mnyt-controls { - display: inline-block; - height: 100%; - width: 100%; -} - -.mnyt-play-button { - margin-left: auto; - margin-right: auto; - - display: block; - position: relative; - top: 50%; - transform: translateY(-50%); - - border-radius: 50%; - background: rgba(23,35,34,.75); - opacity: 0.5; - border: 0; - cursor: pointer; - width: 50px; - height: 50px; - - transition: background-color 40ms; - text-decoration: none; - color:#ffffff; - display: none; -} - -.mnyt-play-button:hover { - background-color: #cc181e; - opacity: 1; -} - -.mnyt-play-button-play { - width: 0; - height: 0; - border-bottom: 10px solid transparent; - border-top: 10px solid transparent; - border-left: 15px solid white; - margin-left: 19px; - margin-right: auto; - position: relative; - top: 50%; - transform: translateY(-50%); - display: none; -} - -.mnyt-play-button-pause { - display: none; -} - -.mnyt-play-button-pause:before { - width: 7px; - height: 20px; - background-color: #FFFFFF; - position: absolute; - content: ""; - top: 15px; - left: 15px; -} - -.mnyt-play-button-pause:after { - width: 7px; - height: 20px; - background-color: #FFFFFF; - position: absolute; - content: ""; - top: 15px; - right: 15px; -} - -.alert-close { - float: right; - font-size: 21px; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; - text-decoration: none; -} - -.alert-close:hover { - text-decoration: none; -} - -.alert { - position: fixed; - width: 90%; - top: 60px; - z-index: 1000; - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; - display: block; - margin-left: 3.25%; - text-align: center; -} - -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} - -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.mnyt-progress-wrap { - background: #cc181e; - overflow: hidden; - position: absolute; - bottom: 5px; -} - -.mnyt-progress-bar { - background: #ddd; - position: absolute; - left: 0; - bottom: 0; -} - -.mnyt-progress { - width: 100%; - height: 1px; - cursor: pointer; -} - -.mnyt-progress-area { - height: 15px; - position: absolute; - bottom: -5px; - width: 100%; - z-index: 1002; - cursor: pointer; -} - -.mnyt-progress-pointer { - cursor: pointer; - position: absolute; - left: 0; - bottom: -2px; - border-radius: 50%; - width: 10px; - height: 10px; - background: #cc181e; - display: none; - z-index: 1002; -} - -.mnyt-video { - top: 0px !important; - left: 0px !important; -} - -.draggable { - position: relative; -} - -.resizer { - width: 50px; - height: 50px; - position:absolute; - z-index: 1001; -} - -#mnyt-br { - right: 0; - bottom: 0; - cursor: se-resize; -} - -.resize-icon { - right: -3px; - bottom: -3px; - position:absolute; - z-index: 1001; - cursor: se-resize; -} - -.mnyt-control-icons { - top: 0; - left: 0; - position: absolute; - padding: 3px; - z-index: 1001; - display: none; -} - -.mnyt-size-button { - display: block; - margin-bottom: 3px; - - width: 30px; - height: 30px; - background: rgba(23,35,34,.75); - opacity: 0.5; - border-radius: 0.5em; - border: 0; - cursor: pointer; - - font-size: 1em; - text-align: center; - font-family: 'Helvetica Neue',Helvetica,Arial; - transition: background-color 40ms; - font-weight: bold; - text-decoration: none; - color:#ffffff; -} - -.mnyt-size-button img { - vertical-align: middle; -} - -.mnyt-size-button:hover { - background-color: #cc181e; - opacity: 1; -} - -.mnyt-pin-label { - position: absolute; - top: 3px; - left: 40px; - width: 150px; - height: 30px; - background: rgba(23,35,34,.75); - border-radius: 0.5em; - border: 0; - cursor: pointer; - - font-size: 1em; - text-align: center; - font-family: 'Helvetica Neue',Helvetica,Arial; - font-weight: bold; - text-decoration: none; - color:#ffffff; - line-height: 30px; - transition: opacity 150ms ease-out,transform 150ms ease-out; - display: none; -} - -.mnyt-pin-label::before { - position: absolute; - left: -0.5em; - top: 50%; - margin-top: -.5em; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: .5em solid rgba(23,35,34,.75); - content: ''; -} diff --git a/floatVideo.js b/floatVideo.js deleted file mode 100644 index 1bf5a27..0000000 --- a/floatVideo.js +++ /dev/null @@ -1,653 +0,0 @@ -// Try if Edge browser object exists, else default to chrome -var browser = self.browser; -if (typeof browser === "undefined") { - browser = self.chrome; -} -$(document).ready(function() { - // Handle dragging. - var floated = false; - - var originalHeight; - var originalWidth; - var miniScreenLastTop; - var miniScreenLastLeft; - var miniScreenLastHeight; - var miniScreenLastWidth; - var start; - var longpress = 100; - var dragStartX, dragStartY, dragStartWidth, dragStartHeight, dragRatio; - var maxWidth = 854; - var minWidth = 310; - var resizing = false; - var flashAlertShown = false; - var miniYouTubeActivated = true; - - var PAGE_TOP_MARGIN_PX = 60; - - // A list of predefined sizes of the screen - var SMALL_WIDTH = 310; - var SMALL_HEIGHT = 175; - var MEDIUM_WIDTH = 475; - var MEDIUM_HEIGHT = 268; - var LARGE_WIDTH = 640; - var LARGE_HEIGHT = 360; - var EXTRA_LARGE_WIDTH = 854; - var EXTRA_LARGE_HEIGHT = 480; - - // A list of constants - var MINI_SCREEN_LAST_TOP = 'miniScreenLastTop'; - var MINI_SCREEN_LAST_LEFT = 'miniScreenLastLeft'; - var MINI_SCREEN_LAST_HEIGHT = 'miniScreenLastHeight'; - var MINI_SCREEN_LAST_WIDTH = 'miniScreenLastWidth'; - var MINI_YOUTUBE_ID = '#miniyoutube'; - var VIDEO_STREAM_CLASS = '.video-stream'; - - // Preload images - preloadImage("https://raw.githubusercontent.com/jianweichuah/miniyoutube/master/images/pin.png"); - preloadImage("https://raw.githubusercontent.com/jianweichuah/miniyoutube/master/images/brCorner.png"); - - // Read from the storage to see if the settings exist. - // If yes, populate the variables - getMiniScreenPositions(); - - // Update activation status - getActivationStatus(updateActivationStatus); - - // Add a listener for the activation status - browser.runtime.onMessage.addListener(function(message, sender, sendResponse) { - if ("update_activation_status" in message) { - // 1. Update status - updateActivationStatus(message["update_activation_status"]); - } - }); - - (function($) { - $.fn.drags = function(opt) { - - opt = $.extend({handle:"",cursor:"move"}, opt); - - if(opt.handle === "") { - var $el = this; - } else { - var $el = this.find(opt.handle); - } - - return $el.css('cursor', opt.cursor).on("mousedown", function(e) { - // If the clicked div is resizer, don't make it draggable. - if(e.target.className === "resizer" || - e.target.className === "mnyt-size-button" || - e.target.className === "mnyt-pin-img" || - e.target.className === "mnyt-progress-area" || - e.target.className === "mnyt-play-button" || - e.target.className === "mnyt-play-button-play" || - e.target.className === "mnyt-play-button-pause" || - e.target.className === "mnyt-progress-area" || - e.target.className === "mnyt-progress-bar mnyt-progress" || - e.target.className === "mnyt-progress-wrap mnyt-progress" || - e.target.className === "mnyt-progress-pointer") - { - return false; - } - - var $drag = $(this).addClass('draggable'); - - var z_idx = $drag.css('z-index'), - drg_h = $drag.outerHeight(), - drg_w = $drag.outerWidth(), - pos_y = $drag.offset().top + drg_h - e.pageY, - pos_x = $drag.offset().left + drg_w - e.pageX; - $drag.css('z-index', 1000); - - $(window).on("mousemove", function(e) { - // Prevent going out of screen horizontally. - var left = e.pageX + pos_x - drg_w; - if (left < 5) { - left = 5; - } else if (left > $(window).width() - drg_w - 5) { - left = $(window).width() - drg_w - 5; - } - - // Prevent going out of screen vertically. - var top = e.pageY + pos_y - drg_h; - if (top < $(document).scrollTop() + PAGE_TOP_MARGIN_PX) { - top = $(document).scrollTop() + PAGE_TOP_MARGIN_PX; - } else if (top > $(document).scrollTop() + $(window).height() - drg_h - 5) { - top = $(document).scrollTop() + $(window).height() - drg_h - 5; - } - - $('.draggable').offset({ - top: top, - left: left - }).on("mouseup", function() { - $(this).removeClass('draggable').css('z-index', z_idx); - }); - }).on("mouseup", function() { - $(window).unbind('mousemove'); - $(this).removeClass('draggable'); - }); - - e.preventDefault(); // disable selection - }); - } - })(jQuery); - - // Keep track of the position of view and show small screen when original video div is out of view - $(window).scroll(function() { - // Do nothing if it's not activated - if (miniYouTubeActivated) { - // If this is a Flash video page, tell the user it's not supported. - if ($('#movie_player').length && $('#movie_player').is('embed')) { - // Only show the alert if it hasn't been shown before. - if (!flashAlertShown) { - $flashNotSupportedAlert = $('
\ - \ -
'); - $('body').prepend($flashNotSupportedAlert); - // Show it for 5 seconds, fade it out and remove it. - $flashNotSupportedAlert.show().delay(5000).fadeOut(300, function() { - $(this).remove(); - }); - flashAlertShown = true; - } - return false; - } else if ((floated == false && $('.ended-mode').length)) { - // If the video has ended and there is no floating screen, do nothing - return false; - } else if ($('#player').length && $('#player').hasClass('off-screen')) { - // Added to prevent the mini screen from showing up on the homepage for - // the new YouTube interface. - if (floated == false) { - return false; - } else { - removeMiniScreen(); - } - } else if (floated == false && $(document).scrollTop() > $('.html5-video-container').offset().top + $('.video-stream').height()) { - // 1. Create the mini screen div to hold the video - $miniScreen = $('
\ -
\ - \ -
\ - \ - \ - \ - \ - \ - \ -
\ -
\ -
\ -
\ -
\ - \ -
\ - \ - /\ - \ -
\ -
\ -
\ -
\ -
\ -
\ -
\ -
'); - - // 6. Modify clicking to differentiate long vs short clicks. - $(MINI_YOUTUBE_ID).on('mouseover', function(e) { - $('.mnyt-control-icons').show(); - $('.mnyt-play-button').show(); - $('#mnyt-close-button').show(); - $('#mnyt-progress-time').show(); - }); - $(MINI_YOUTUBE_ID).on('mouseleave', function(e) { - start = 0; - $('.mnyt-control-icons').hide(); - $('.mnyt-play-button').hide(); - $('#mnyt-close-button').hide(); - $('#mnyt-progress-time').hide(); - }); - $(MINI_YOUTUBE_ID).on('mouseup', function(e) { - if (resizing == true) { - stopDrag(e); - } - return false; - }); - $(MINI_YOUTUBE_ID).click(function() { - return false; - }); - // Disable double click to full screen. - $(MINI_YOUTUBE_ID).dblclick(function() { - return false; - }); - - // 7. If the video was playing before, make sure it's not paused - if (!videoPaused) { - $video.get(0).play(); - $(".mnyt-play-button-pause").show(); - } else { - $(".mnyt-play-button-play").show(); - } - - // 8. Set the width and height of the video to fit the div - $video.css('width', miniScreenWidth); - $video.css('height', miniScreenHeight); - - // 9. Activate the draggable feature of the small screen - $(MINI_YOUTUBE_ID).drags(); - - // 10. Set flag to true - floated = true; - - // Add listeners for the controls - $('#mnyt-small-button').click(handleTransitionSmall); - $('#mnyt-medium-button').click(handleTransitionMedium); - $('#mnyt-large-button').click(handleTransitionLarge); - $('#mnyt-extra-large-button').click(handleTransitionExtraLarge); - $('#mnyt-play-button').click(toggleVideo); - - // Save the position and size of the screen if pin button is clicked - $('#mnyt-pin-button').click(pinButtonClicked); - $('#mnyt-close-button').click(closeButtonClicked); - - $('#mnyt-pin-button').on('mouseover', function(e) { - $('.mnyt-pin-label').show(); - }); - $('#mnyt-pin-button').on('mouseleave', function(e) { - $('.mnyt-pin-label').hide(); - }); - - $('.mnyt-fastforward-icon').click(handleFastForward); - - // Add listener for the resizers - $('.resizer').bind('mousedown.resizer', initDrag); - $('.resize-icon').bind('mousedown.resizer', initDrag); - - // Add listener for the progress bar - $('.mnyt-progress-area').hover(handleProgressHoverIn, handleProgressHoverOut); - $('.mnyt-progress-area').click(handleVideoProgress); - - } else if (floated == true && $(document).scrollTop() <= $('.html5-video-container').offset().top + originalHeight) { - putBackMiniScreen(); - } - } - }); - - function handleProgressHoverIn() { - $('.mnyt-progress-wrap').height(5); - $('.mnyt-progress-bar').height(5); - $('.mnyt-progress-pointer').show(); - } - - function handleProgressHoverOut() { - $('.mnyt-progress-wrap').height(1); - $('.mnyt-progress-bar').height(1); - $('.mnyt-progress-pointer').hide(); - } - - function handleVideoProgress(e) { - var clickedPositionX = e.offsetX; - var totalWidth = $('.mnyt-progress-area').width(); - if (e.target.className === "mnyt-progress-bar mnyt-progress") { - clickedPositionX = clickedPositionX + $('.mnyt-progress-bar').position().left; - } - var percent = clickedPositionX/totalWidth; - var video = $(VIDEO_STREAM_CLASS).get(0); - video.currentTime = percent * video.duration; - updateTime(); - } - - function pinButtonClicked() { - saveMiniYouTubeSettings(); - // Show settings saved alert - $settingsSavedAlert = $('
\ - \ -
'); - $('body').prepend($settingsSavedAlert); - // Show it for 5 seconds, fade it out and remove it. - $settingsSavedAlert.show().delay(1000).fadeOut(100, function() { - $(this).remove(); - }); - } - - function saveMiniYouTubeSettings() { - // Save screen position and size - miniScreenLastTop = $(MINI_YOUTUBE_ID).position().top; - miniScreenLastLeft = $(MINI_YOUTUBE_ID).position().left; - miniScreenLastHeight = $(MINI_YOUTUBE_ID).height(); - miniScreenLastWidth = $(MINI_YOUTUBE_ID).width(); - // Persist to browser storage - browser.runtime.sendMessage({"update_miniscreen_positions": { - "miniScreenLastTop": miniScreenLastTop, - "miniScreenLastLeft": miniScreenLastLeft, - "miniScreenLastHeight": miniScreenLastHeight, - "miniScreenLastWidth": miniScreenLastWidth - }}); - } - - // Update the size of the screen to small - function handleTransitionSmall() { - resizeScreen(SMALL_WIDTH, SMALL_HEIGHT); - } - - function handleTransitionMedium() { - resizeScreen(MEDIUM_WIDTH, MEDIUM_HEIGHT); - } - - function handleTransitionLarge() { - resizeScreen(LARGE_WIDTH, LARGE_HEIGHT); - } - - function handleTransitionExtraLarge() { - resizeScreen(EXTRA_LARGE_WIDTH, EXTRA_LARGE_HEIGHT); - } - - function resizeScreen(newWidth, newHeight) { - if ($(MINI_YOUTUBE_ID).width() == newWidth) { - return false; - } - - $(MINI_YOUTUBE_ID).animate({'width':newWidth, 'height':newHeight}, 300); - $(VIDEO_STREAM_CLASS).animate({'width':newWidth, 'height':newHeight}, 300); - } - - function handleFastForward() { - $video = $(VIDEO_STREAM_CLASS).get(0); - var updatedRate = 1; - switch ($video.playbackRate) { - case 1: - updatedRate = 1.25; - break; - case 1.25: - updatedRate = 1.5; - break; - case 1.5: - updatedRate = 2; - break; - default: - updatedRate = 1; - break; - } - $video.playbackRate = updatedRate; - return false; - } - - function updateTime() { - // If video is not floated, do nothing. - if (floated == false) { - return false; - } - // Get the video player and calculate the progress - $video = $(VIDEO_STREAM_CLASS).get(0); - - // If the video has ended and the screen is still around, clear it. - if (floated == true && $video.currentTime == $video.duration) { - putBackMiniScreen(); - return false; - } - - var percent = $video.currentTime/$video.duration; - var progressBarWidth = $(MINI_YOUTUBE_ID).width(); - var progressTotal = percent * progressBarWidth; - - $('.mnyt-progress-bar').stop().animate({ - left: progressTotal - }); - $('.mnyt-progress-pointer').stop().animate({ - left: progressTotal - 5 - }); - - // Update video duration - $('#mnyt-progress-current-time').html(convertTime(Math.floor($video.currentTime))); - if (!$('#mnyt-progress-duration').html()) - $('#mnyt-progress-duration').html(convertTime(Math.floor($video.duration))); - } - - function convertTime(timeInSeconds) { - var hours = Math.floor(timeInSeconds / 3600); - timeInSeconds = timeInSeconds - hours * 3600; - var minutes = Math.floor(timeInSeconds / 60); - var seconds = timeInSeconds - minutes * 60; - - var timeStr = []; - // Only put in hours if it's not 0 - if (hours > 0) { - timeStr.push(hours); - } - // If hours > 0 but minutes == 0, put 00 - if (minutes > 0) { - var minuteStr = minutes; - if (hours > 0 && minutes < 10) - minuteStr = "0".concat(minutes); - timeStr.push(minuteStr); - } else { - timeStr.push("0"); - } - - if (seconds > 0) { - var secondStr = seconds; - if (seconds < 10) - secondStr = "0".concat(seconds); - timeStr.push(secondStr); - } else { - timeStr.push("00"); - } - - return timeStr.join(":"); - } - - function initDrag(e) { - resizing = true; - // Store the initial values to calculate new size later - dragStartX = e.clientX; - dragStartY = e.clientY; - dragStartWidth = $(MINI_YOUTUBE_ID).width(); - dragStartHeight = $(MINI_YOUTUBE_ID).height(); - dragRatio = dragStartHeight/dragStartWidth; - // Add event listeners to perform resize - $(window).mousemove(doDrag); - $(window).mouseup(stopDrag); - e.preventDefault(); - - return false; - } - - function doDrag(e) { - // if not resizing, do nothing - if (resizing == false) { - return false; - } - - var newWidth = dragStartWidth + e.clientX - dragStartX; - // Experimental: Allow manually resizing to bigger screen sizes. - // Make sure the new width does not exceed the max width - // if (newWidth > maxWidth) { - // newWidth = maxWidth; - // } - if (newWidth < minWidth) { - newWidth = minWidth; - } - - var newHeight = Math.round(newWidth * dragRatio); - $(MINI_YOUTUBE_ID).width(newWidth); - $(MINI_YOUTUBE_ID).height(newHeight); - // Added to also resize the video after the YouTube update - $(VIDEO_STREAM_CLASS).width(newWidth); - $(VIDEO_STREAM_CLASS).height(newHeight); - e.preventDefault(); - - return false; - } - - function stopDrag(e) { - // Set the flag to false - resizing = false; - // Remove the listensers - $(window).unbind('mousemove'); - return false; - } - - function toggleVideo() { - $vid = $(VIDEO_STREAM_CLASS).get(0); - if ($vid.paused) { - $vid.play(); - $(".mnyt-play-button-play").hide(); - $(".mnyt-play-button-pause").show(); - } - else { - $vid.pause(); - $(".mnyt-play-button-play").show(); - $(".mnyt-play-button-pause").hide(); - } - } - - function preloadImage(url) { - var img=new Image(); - img.src=url; - } - - function getActivationStatus(callBack) { - browser.runtime.sendMessage({"get_activation_status": true}, function(response) { - var activated = true; - if ("is_active" in response) { - activated = response["is_active"]; - } - callBack(activated); - }); - } - - function getMiniScreenPositions() { - browser.runtime.sendMessage({"get_miniscreen_positions": true}, function(response) { - if ("positions" in response) { - var items = response["positions"]; - if (items[MINI_SCREEN_LAST_TOP]) { - miniScreenLastTop = items[MINI_SCREEN_LAST_TOP]; - } - if (items[MINI_SCREEN_LAST_LEFT]) { - miniScreenLastLeft = items[MINI_SCREEN_LAST_LEFT]; - } - if (items[MINI_SCREEN_LAST_HEIGHT]) { - miniScreenLastHeight = items[MINI_SCREEN_LAST_HEIGHT]; - } - if (items[MINI_SCREEN_LAST_WIDTH]) { - miniScreenLastWidth = items[MINI_SCREEN_LAST_WIDTH]; - } - } - }); - } - - function updateActivationStatus(activated) { - miniYouTubeActivated = activated; - // If it's deactivated, remove the mini screen - if (!miniYouTubeActivated && floated) { - putBackMiniScreen(); - } - } - - function removeMiniScreen() { - // 1. Grab the video element - $video = $(VIDEO_STREAM_CLASS); - - // 2. Remove the resizers - $video.next().remove(); - - // 3. Take away the parent. - $video.removeClass('mnyt-video'); - $video.unwrap(); - - // 4. Set flag to false - floated = false; - } - - function putBackMiniScreen() { - // Put back the screen when the user scrolls up to the original player - // 1. Grab the video element - $video = $(VIDEO_STREAM_CLASS); - - // 2. Store the status of the video - var videoPaused = $video.get(0).paused; - - // 3. Save the current top and left of the mini screen. - saveMiniYouTubeSettings(); - - // Move the div back to 'html5-video-container'. - // This is needed in Chrome after the update on 9 October 2016. - $(MINI_YOUTUBE_ID).appendTo('.html5-video-container'); - - // 4. Restore the width and heigh of the video - $video.css('width', originalWidth); - $video.css('height', originalHeight); - - // Remove the resizers - $video.next().remove(); - - // 5. Take away the parent. - $video.removeClass('mnyt-video'); - $video.unwrap(); - - // 6. Make the video status consistent - if (!videoPaused) { - $video.get(0).play(); - } - - // 7. Set flag to false - floated = false; - } - - function closeButtonClicked() { - putBackMiniScreen(); - floated = false; - // Send message to disable Mini YouTube - browser.runtime.sendMessage({"update_icon": false}); - } -}); diff --git a/images/brCorner.png b/images/brCorner.png deleted file mode 100644 index eb2f3164ee0caa2574fc9fcc159a3b33411b8786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^vOp{+zy>56rk{KSq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)PO2l7#MzmRK8$fC^cYUc$L7wU^Rn*LA+qju0R{01ZROqWHAE+w=f7ZGR&GI z!N9;6nHdsM65;D(m7Jfemza{Dl&V*eTL4tez+h8h1!U%?mLw`vE(HYzo1&C7s~{IQsCFRFRw<*Tq`*pF zzr4I$uiRKKzbIYb(9+UU-@r)U$VeBcLbtdwuOzWTH?LS3VhGF}m(=3qqRfJl%=|nB zkhzIT`K2YcN=hJ$-~i&zlFT%OO?kyoZvj2150cS0)HBeBn+?=z0}{3JFUm{>+6*$^ z&d>&|5=9JZkBvUaawNwiI3-IqrsBb ze3xJPMESqXoW(C|nrz3pg6s4BKO)C{7M8zt{A#;7_MuDe=Zm|G7yX)db6vrrZ9iY! zwG6C1pA&8oc)RAyyE!ZNrEk-ovm)27s@yN+zVU5Qzbj_*`N~Rp!tqc(TNrUw1&n{o;F9hvNwe7_`g?2g~& m-@Wx|D_wr{U#s8^_{aD)PR)h$PxE$A!tr$Vb6Mw<&;$S(D)^rO diff --git a/images/coffee.png b/images/coffee.png deleted file mode 100644 index aca03b36b00f4b0654a8c58d4c52e04aa35e409c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3115 zcmZuzc|6o>7oRcq?8?4OV=oy?g5PJT##_Kkr5OBx7n{eWdC#+!%_b;ILv=37k)2o5Bmy+bft zBqHGdYwEFk)E^_FHS7XWI0tYK* zl+?-=XdT|mmxLRR4-PWK(?1#S%Df?rzj1vR!J=dK>I=RiYIDP`K!Pif|hnk4*J=q(hH=6_G-OSY?Lx%zt>RX`R~mV<9c^D_E@ZZklkmXBBvu4eu~mH z6diX>j8bc8F%=daIZ#<|8_#KX7H!#-!krm(JJ)F|lZm}COp9R{UeG$4_DFV4)dHy3 z>7FQs5&XyM+h5X}!Fj?7f^8a{VAq^F_%wkMQp5G#r7VVxi>L_Cl&%-a;3J#+QJ-U+>T~yvY^Y7Z zEunED)#CZpkkxRF<-;ISKY9BA*bAvrzkUD?ULrKNh&eu^0 zs^og0s&(%1?c+1Awd4A~WDT2OWnxn&_)AzDI@Ci`A6QyEcDDPA3=n}W?*{1ceXWi~ zYI=Jl&><5$TcG}HnwjC+I*J<2qT+@xYjk=lt-c-mR0D5W(V7gkxFz=s1tvJ} zo9k^?q?0c8P z1QU=c=T;m!FDbkAYzyKbsVpIr1ZgyqSp|?nWw5`9I{TVP<{+=t&<*9{x@3G0Ke!gY ze1P}V4WahhibDZvqp$5JolBAtM#<3)vjYc@D1y`4n~Z$eUpkot#9RJ$=*ZEwzV!1o z^BMA`WiYjUGYR^V36}gWicP8BPh)pMTu_22wZ1far?1VWUU8c)6qwcO8D4^DfON8WgnOUucJe06Nf zh)HIF9VA*SYLUbSV-tPK3-#=N{@ggx`?_qzF!({n!*uLDNWtgvXevA6qCe;Xl~>t9 z&`b`cOF!T3zsO>rgj0Po-k&O3XfM3L`}EF24)WaBcZ#K7MUxNJTPgI8eRJi+qK=_T zTsLn~64!h~0+`LiVK=u6+_(Uuuazc!u`c!mS39)b?oHuIcs|)-p8lg_3 zwtFM0I5uO}Ypa>WKJ6%Th_WolM#z-bvzj;&G~g$MVk{EdiGAR)0_v&lo{brctJk$$ z2I*_86F9dS0ZkL8&3USEV5_NT_#=Rq)2UV|_^rzOx$58GwAfit~yW+6l&Xt+Rt6IYR zeN&KM1D^xTnsuudb8vrz|Yt7s;R)n_!tk_1oq07N9Ri4)-fqlr>Az-^Pio@`Vt zo>R|?AIg0pxMG@w6yRH2xSt*qkJe^#E_yOl@>J{=u<56YNo|$WY|0_Xu#r)FWaF(3 z^f{83{M-(^+3xj{T$IHaYLU*W0xL_Moh9XbDilJGHp{KiC@HyC+SR`Ui~|fc@?J_R zhKH6XTPMP>Vta2tC%@RsRPQV!thO${e@a+V+aO8@PnV9*ce$5iiOTG7wZHe@b zZAV0e=M^|r+aaTg&c4?S*{*1@gt|1Q+39AJIM-YUKGbU z@jTA(v_Y6qy1;sT3HrM7?pu?`SrxIfJepv+g@Ztq~Xp*J zH5RUqqOsVy{O!-&(s@rC=7-OhBW39kp`NXpoDqs^;ZngHYIj~fxygu!5lG0bE`J;3 zpc4VXG0CJxjg=PgV76}o6a7Z5Jx`I-_msaZGr3z*j@nlqhMRy)XGX8Rh>)a8pXDDP zF@3%%|6b4qDDU*_TAF2O0$xgynyF_`z5UYv?W)=1mcUwp(;@Y9ydopyi;D~$6H|Ao e!TY(%n|u|kmz`OMACb3S@b=b@R^^9LG5-bereo3o diff --git a/images/facebook.png b/images/facebook.png deleted file mode 100644 index d0c2a525eedb1b6a45ca16377257f0292ad557d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8651 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 diff --git a/images/github.png b/images/github.png deleted file mode 100644 index 182a1a3f734fc1b7d712c68b04c29bad9460d6cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2625 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 diff --git a/images/icon48.png b/images/icon48.png deleted file mode 100644 index 7500491513f9f0f82ca7b4c0ff13c1fb4959489c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4890 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 M07*qoM6N<$g6^mtRsaA1 diff --git a/images/paypal.png b/images/paypal.png deleted file mode 100644 index b41fa3fec9d3ec15a13ffb69868c4672313ae45e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6966 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 diff --git a/images/star.png b/images/star.png deleted file mode 100644 index a6d82d9a90abaff17523ae254e3a294fa3265902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2954 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 diff --git a/jquery-2.1.3.min.js b/jquery-2.1.3.min.js deleted file mode 100644 index 25714ed..0000000 --- a/jquery-2.1.3.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.3",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="
",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c) -},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("