From 18467e0fd400a354e1fbbbaa6c283cf90933be7d Mon Sep 17 00:00:00 2001 From: Chris Nutter Date: Mon, 7 Sep 2020 14:15:44 -0700 Subject: [PATCH] oh please work --- .Xresources | 250 + .../packages/atom-material-syntax/.npmignore | 4 + .../packages/atom-material-syntax/LICENSE.md | 20 + .atom/packages/atom-material-syntax/README.md | 6 + .../packages/atom-material-syntax/index.less | 12 + .../atom-material-syntax/package.json | 57 + .../atom-material-syntax/styles/base.less | 404 + .../atom-material-syntax/styles/colors.less | 20 + .../styles/languages/babel.less | 16 + .../styles/languages/css.less | 51 + .../styles/languages/gfm.less | 36 + .../styles/languages/html.less | 15 + .../styles/languages/javascript.less | 67 + .../styles/languages/json.less | 39 + .../styles/languages/php.less | 19 + .../styles/languages/python.less | 45 + .../styles/languages/ruby.less | 21 + .../styles/syntax-variables.less | 32 + .atom/packages/atom-material-ui/.editorconfig | 15 + .atom/packages/atom-material-ui/.eslintrc.js | 20 + .atom/packages/atom-material-ui/.npmignore | 3 + .../packages/atom-material-ui/CONTRIBUTING.md | 98 + .../atom-material-ui/ISSUE_TEMPLATE.md | 32 + .atom/packages/atom-material-ui/LICENSE.md | 20 + .../atom-material-ui/PULL_REQUEST_TEMPLATE.md | 24 + .atom/packages/atom-material-ui/README.md | 74 + .../fonts/Roboto/roboto-black-webfont.woff2 | Bin 0 -> 19640 bytes .../Roboto/roboto-blackitalic-webfont.woff2 | Bin 0 -> 24116 bytes .../fonts/Roboto/roboto-bold-webfont.woff2 | Bin 0 -> 20260 bytes .../Roboto/roboto-bolditalic-webfont.woff2 | Bin 0 -> 24828 bytes .../fonts/Roboto/roboto-italic-webfont.woff2 | Bin 0 -> 24596 bytes .../fonts/Roboto/roboto-light-webfont.woff2 | Bin 0 -> 19408 bytes .../Roboto/roboto-lightitalic-webfont.woff2 | Bin 0 -> 25376 bytes .../fonts/Roboto/roboto-medium-webfont.woff2 | Bin 0 -> 20068 bytes .../Roboto/roboto-mediumitalic-webfont.woff2 | Bin 0 -> 24964 bytes .../fonts/Roboto/roboto-regular-webfont.woff2 | Bin 0 -> 19896 bytes .../fonts/Roboto/roboto-thin-webfont.woff2 | Bin 0 -> 18912 bytes .../Roboto/roboto-thinitalic-webfont.woff2 | Bin 0 -> 24820 bytes .../Roboto/robotocondensed-bold-webfont.woff2 | Bin 0 -> 21564 bytes .../robotocondensed-bolditalic-webfont.woff2 | Bin 0 -> 28632 bytes .../robotocondensed-italic-webfont.woff2 | Bin 0 -> 28604 bytes .../robotocondensed-light-webfont.woff2 | Bin 0 -> 21700 bytes .../robotocondensed-lightitalic-webfont.woff2 | Bin 0 -> 28508 bytes .../robotocondensed-regular-webfont.woff2 | Bin 0 -> 21784 bytes .../assets/svg/arrow-drop-down-white.svg | 4 + .../assets/svg/arrow-drop-down.svg | 4 + .atom/packages/atom-material-ui/index.less | 39 + .../atom-material-ui/lib/color-templates.json | 58 + .../lib/colors/build-color-settings.js | 30 + .../atom-material-ui/lib/colors/index.js | 44 + .../atom-material-ui/lib/fonts/index.js | 5 + .../lib/fonts/set-font-size.js | 6 + .../lib/helper/to-camel-case.js | 10 + .../lib/helper/toggle-class-name.js | 11 + .../lib/helper/write-config-file.js | 28 + .atom/packages/atom-material-ui/lib/main.js | 40 + .../atom-material-ui/lib/tab-bar/index.js | 19 + .../lib/user-interface/index.js | 15 + .../node_modules/tinycolor2/.npmignore | 6 + .../node_modules/tinycolor2/.travis.yml | 7 + .../node_modules/tinycolor2/Gruntfile.js | 59 + .../node_modules/tinycolor2/LICENSE | 20 + .../node_modules/tinycolor2/README.md | 466 + .../node_modules/tinycolor2/bower.json | 9 + .../node_modules/tinycolor2/demo/demo.css | 23 + .../tinycolor2/demo/jquery-1.9.1.js | 9597 +++++++++++++++++ .../tinycolor2/dist/tinycolor-min.js | 4 + .../node_modules/tinycolor2/docs/docco.css | 192 + .../tinycolor2/docs/tinycolor.html | 1003 ++ .../node_modules/tinycolor2/index.html | 207 + .../node_modules/tinycolor2/package.json | 60 + .../node_modules/tinycolor2/test/index.html | 19 + .../node_modules/tinycolor2/test/qunit.css | 244 + .../node_modules/tinycolor2/test/qunit.js | 2152 ++++ .../node_modules/tinycolor2/test/test.js | 760 ++ .../node_modules/tinycolor2/tinycolor.js | 1166 ++ .atom/packages/atom-material-ui/package.json | 243 + .../spec/colors/build-color-settings-spec.js | 36 + .../spec/fonts/set-font-size-spec.js | 20 + .../spec/helper/to-camel-case-spec.js | 17 + .../spec/helper/toggle-class-name-spec.js | 19 + .../atom-material-ui/styles/alert.less | 24 + .../atom-material-ui/styles/atom.less | 25 + .../atom-material-ui/styles/autocomplete.less | 54 + .../styles/background-tips.less | 6 + .../atom-material-ui/styles/buttons.less | 78 + .../atom-material-ui/styles/dock.less | 84 + .../atom-material-ui/styles/dropdowns.less | 15 + .../atom-material-ui/styles/editor.less | 36 + .../atom-material-ui/styles/fonts/roboto.less | 123 + .../atom-material-ui/styles/fuzzy-finder.less | 3 + .../packages/atom-material-ui/styles/git.less | 6 + .../atom-material-ui/styles/github-panel.less | 21 + .../styles/incompatible-packages.less | 101 + .../atom-material-ui/styles/lists.less | 181 + .../atom-material-ui/styles/md-colors.less | 307 + .../atom-material-ui/styles/messages.less | 4 + .../packages/atom-material-ui/styles/nav.less | 26 + .../styles/notifications.less | 167 + .../atom-material-ui/styles/overlays.less | 48 + .../styles/packages/activate-power-mode.less | 37 + .../styles/packages/busy-signal.less | 3 + .../styles/packages/linter.less | 62 + .../styles/packages/main.less | 10 + .../styles/packages/nuclide.less | 1 + .../styles/packages/open-recent.less | 4 + .../styles/packages/platformio.less | 7 + .../styles/packages/remote-ftp.less | 16 + .../styles/packages/terminal.less | 5 + .../styles/packages/tool-bar.less | 276 + .../styles/packages/vim-mode-plus.less | 62 + .../atom-material-ui/styles/panels.less | 98 + .../atom-material-ui/styles/panes.less | 50 + .../atom-material-ui/styles/progress.less | 27 + .../styles/search-replace.less | 5 + .../styles/settings/checkbox.less | 54 + .../styles/settings/main.less | 145 + .../styles/settings/package.less | 60 + .../styles/settings/radio.less | 15 + .../styles/settings/table.less | 36 + .../atom-material-ui/styles/sites.less | 11 + .../atom-material-ui/styles/spinner.less | 21 + .../atom-material-ui/styles/tabs.less | 213 + .../atom-material-ui/styles/text.less | 123 + .../atom-material-ui/styles/title-bar.less | 19 + .../atom-material-ui/styles/tooltips.less | 66 + .../atom-material-ui/styles/tree-view.less | 38 + .../atom-material-ui/styles/ui-mixins.less | 98 + .../atom-material-ui/styles/ui-variables.less | 104 + .../atom-material-ui/styles/utilities.less | 19 + .bashrc | 159 + .i3/config | 446 + .i3/i3blocks.conf | 200 + .oh-my-zsh/themes/bira-custom.zsh-theme | 30 + .scripts/arch-flair.sh | 5 + .scripts/jessica.txt | 31 + .scripts/loop-sl.sh | 8 + .scripts/matrix-pipes.sh | 9 + .scripts/wal.sh | 11 + .vim/.netrwhist | 4 + .vim/colors/wal | 196 + .zshrc | 117 + 142 files changed, 22252 insertions(+) create mode 100644 .Xresources create mode 100644 .atom/packages/atom-material-syntax/.npmignore create mode 100644 .atom/packages/atom-material-syntax/LICENSE.md create mode 100644 .atom/packages/atom-material-syntax/README.md create mode 100644 .atom/packages/atom-material-syntax/index.less create mode 100644 .atom/packages/atom-material-syntax/package.json create mode 100644 .atom/packages/atom-material-syntax/styles/base.less create mode 100644 .atom/packages/atom-material-syntax/styles/colors.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/babel.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/css.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/gfm.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/html.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/javascript.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/json.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/php.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/python.less create mode 100644 .atom/packages/atom-material-syntax/styles/languages/ruby.less create mode 100644 .atom/packages/atom-material-syntax/styles/syntax-variables.less create mode 100644 .atom/packages/atom-material-ui/.editorconfig create mode 100644 .atom/packages/atom-material-ui/.eslintrc.js create mode 100644 .atom/packages/atom-material-ui/.npmignore create mode 100644 .atom/packages/atom-material-ui/CONTRIBUTING.md create mode 100644 .atom/packages/atom-material-ui/ISSUE_TEMPLATE.md create mode 100644 .atom/packages/atom-material-ui/LICENSE.md create mode 100644 .atom/packages/atom-material-ui/PULL_REQUEST_TEMPLATE.md create mode 100644 .atom/packages/atom-material-ui/README.md create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-black-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-blackitalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-bold-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-bolditalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-italic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-light-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-lightitalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-medium-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-mediumitalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-regular-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-thin-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-thinitalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-bold-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-bolditalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-italic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-light-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-lightitalic-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-regular-webfont.woff2 create mode 100644 .atom/packages/atom-material-ui/assets/svg/arrow-drop-down-white.svg create mode 100644 .atom/packages/atom-material-ui/assets/svg/arrow-drop-down.svg create mode 100644 .atom/packages/atom-material-ui/index.less create mode 100644 .atom/packages/atom-material-ui/lib/color-templates.json create mode 100644 .atom/packages/atom-material-ui/lib/colors/build-color-settings.js create mode 100644 .atom/packages/atom-material-ui/lib/colors/index.js create mode 100644 .atom/packages/atom-material-ui/lib/fonts/index.js create mode 100644 .atom/packages/atom-material-ui/lib/fonts/set-font-size.js create mode 100644 .atom/packages/atom-material-ui/lib/helper/to-camel-case.js create mode 100644 .atom/packages/atom-material-ui/lib/helper/toggle-class-name.js create mode 100644 .atom/packages/atom-material-ui/lib/helper/write-config-file.js create mode 100644 .atom/packages/atom-material-ui/lib/main.js create mode 100644 .atom/packages/atom-material-ui/lib/tab-bar/index.js create mode 100644 .atom/packages/atom-material-ui/lib/user-interface/index.js create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/.npmignore create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/.travis.yml create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/Gruntfile.js create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/LICENSE create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/README.md create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/bower.json create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/demo/demo.css create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/demo/jquery-1.9.1.js create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/dist/tinycolor-min.js create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/docs/docco.css create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/docs/tinycolor.html create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/index.html create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/package.json create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/test/index.html create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/test/qunit.css create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/test/qunit.js create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/test/test.js create mode 100644 .atom/packages/atom-material-ui/node_modules/tinycolor2/tinycolor.js create mode 100644 .atom/packages/atom-material-ui/package.json create mode 100644 .atom/packages/atom-material-ui/spec/colors/build-color-settings-spec.js create mode 100644 .atom/packages/atom-material-ui/spec/fonts/set-font-size-spec.js create mode 100644 .atom/packages/atom-material-ui/spec/helper/to-camel-case-spec.js create mode 100644 .atom/packages/atom-material-ui/spec/helper/toggle-class-name-spec.js create mode 100644 .atom/packages/atom-material-ui/styles/alert.less create mode 100644 .atom/packages/atom-material-ui/styles/atom.less create mode 100644 .atom/packages/atom-material-ui/styles/autocomplete.less create mode 100644 .atom/packages/atom-material-ui/styles/background-tips.less create mode 100644 .atom/packages/atom-material-ui/styles/buttons.less create mode 100644 .atom/packages/atom-material-ui/styles/dock.less create mode 100644 .atom/packages/atom-material-ui/styles/dropdowns.less create mode 100644 .atom/packages/atom-material-ui/styles/editor.less create mode 100644 .atom/packages/atom-material-ui/styles/fonts/roboto.less create mode 100644 .atom/packages/atom-material-ui/styles/fuzzy-finder.less create mode 100644 .atom/packages/atom-material-ui/styles/git.less create mode 100644 .atom/packages/atom-material-ui/styles/github-panel.less create mode 100644 .atom/packages/atom-material-ui/styles/incompatible-packages.less create mode 100644 .atom/packages/atom-material-ui/styles/lists.less create mode 100644 .atom/packages/atom-material-ui/styles/md-colors.less create mode 100644 .atom/packages/atom-material-ui/styles/messages.less create mode 100644 .atom/packages/atom-material-ui/styles/nav.less create mode 100644 .atom/packages/atom-material-ui/styles/notifications.less create mode 100644 .atom/packages/atom-material-ui/styles/overlays.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/activate-power-mode.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/busy-signal.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/linter.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/main.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/nuclide.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/open-recent.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/platformio.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/remote-ftp.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/terminal.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/tool-bar.less create mode 100644 .atom/packages/atom-material-ui/styles/packages/vim-mode-plus.less create mode 100644 .atom/packages/atom-material-ui/styles/panels.less create mode 100644 .atom/packages/atom-material-ui/styles/panes.less create mode 100644 .atom/packages/atom-material-ui/styles/progress.less create mode 100644 .atom/packages/atom-material-ui/styles/search-replace.less create mode 100644 .atom/packages/atom-material-ui/styles/settings/checkbox.less create mode 100644 .atom/packages/atom-material-ui/styles/settings/main.less create mode 100644 .atom/packages/atom-material-ui/styles/settings/package.less create mode 100644 .atom/packages/atom-material-ui/styles/settings/radio.less create mode 100644 .atom/packages/atom-material-ui/styles/settings/table.less create mode 100644 .atom/packages/atom-material-ui/styles/sites.less create mode 100644 .atom/packages/atom-material-ui/styles/spinner.less create mode 100644 .atom/packages/atom-material-ui/styles/tabs.less create mode 100644 .atom/packages/atom-material-ui/styles/text.less create mode 100644 .atom/packages/atom-material-ui/styles/title-bar.less create mode 100644 .atom/packages/atom-material-ui/styles/tooltips.less create mode 100644 .atom/packages/atom-material-ui/styles/tree-view.less create mode 100644 .atom/packages/atom-material-ui/styles/ui-mixins.less create mode 100644 .atom/packages/atom-material-ui/styles/ui-variables.less create mode 100644 .atom/packages/atom-material-ui/styles/utilities.less create mode 100644 .bashrc create mode 100644 .i3/config create mode 100644 .i3/i3blocks.conf create mode 100644 .oh-my-zsh/themes/bira-custom.zsh-theme create mode 100644 .scripts/arch-flair.sh create mode 100644 .scripts/jessica.txt create mode 100644 .scripts/loop-sl.sh create mode 100644 .scripts/matrix-pipes.sh create mode 100644 .scripts/wal.sh create mode 100644 .vim/.netrwhist create mode 100644 .vim/colors/wal create mode 100644 .zshrc diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..df6142c --- /dev/null +++ b/.Xresources @@ -0,0 +1,250 @@ +!!Xft.dpi: 96 +!!Xft.antialias: true +!!Xft.hinting: true +!!Xft.rgba: rgb +!!Xft.autohint: false +!!Xft.hintstyle: hintslight +!!Xft.lcdfilter: lcddefault + +Xft.dpi: 96 +Xft.antialias: true +Xft.hinting: true +Xft.rgba: rgb +Xft.autohint: false +Xft.hintstyle: hintslight +Xft.lcdfilter: lcddefault + +XTerm*background: #222D31 +XTerm*foreground: #d8d8d8 +XTerm*pointerColor: #1ABB9B +XTerm*faceName: Fixed +XTerm*faceSize: 11 +XTerm*reverseVideo: on +XTerm*selectToClipboard: true + +*background: #222D31 +*foreground: #d8d8d8 +*fading: 8 +*fadeColor: black +*cursorColor: #1ABB9B +*pointerColorBackground: #2B2C2B +*pointerColorForeground: #16A085 + +!! black dark/light +*color0: #222D31 +*color8: #585858 + +!! red dark/light +*color1: #ab4642 +*color9: #ab4642 + +!! green dark/light +*color2: #7E807E +*color10: #8D8F8D + +!! yellow dark/light +*color3: #f7ca88 +*color11: #f7ca88 + +!! blue dark/light +*color4: #7cafc2 +*color12: #7cafc2 + +!! magenta dark/light +*color5: #ba8baf +*color13: #ba8baf + +!! cyan dark/light +*color6: #1ABB9B +*color14: #1ABB9B + +!! white dark/light +*color7: #d8d8d8 +*color15: #f8f8f8 + +Xcursor.theme: Adwaita +Xcursor.size: 0 + +!URxvt.font: 9x15,xft:TerminessTTFNerdFontMono +!URxvt.font: 9x15,boxxy:size=12 +!====================================================================== +URxvt.font: -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +!URxvt.font: xft:TerminessTTFNerdFontMono:size=12 +terminal.font: xft:TerminessTTFNerdFontMono:size=12 + +! alternative font settings with 'terminus': +!URxvt.font: -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso10646-1 +!URxvt.bold.font: -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1 +!! terminus names see end of file! + +URxvt.depth: 32 +URxvt.background: [100]#222D31 +URxvt*scrollBar: false +URxvt*mouseWheelScrollPage: false +URxvt*cursorBlink: true +URxvt*background: black +URxvt*foreground: grey +URxvt*saveLines: 5000 + +! for 'fake' transparency (without Compton) uncomment the following three lines +URxvt*inheritPixmap: true +URxvt*transparent: true +!URxvt*shading: 138 +URxvt*shading: 23 + +! Normal copy-paste keybindings without perls +URxvt.iso14755: false +URxvt.keysym.Shift-Control-V: eval:paste_clipboard +URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard +!Xterm escape codes, word by word movement +URxvt.keysym.Control-Left: \033[1;5D +URxvt.keysym.Shift-Control-Left: \033[1;6D +URxvt.keysym.Control-Right: \033[1;5C +URxvt.keysym.Shift-Control-Right: \033[1;6C +URxvt.keysym.Control-Up: \033[1;5A +URxvt.keysym.Shift-Control-Up: \033[1;6A +URxvt.keysym.Control-Down: \033[1;5B +URxvt.keysym.Shift-Control-Down: \033[1;6B +! Rxvt.perl-ext-common: ...,clipboard +! URxvt.keysym.M-C-c: perl:clipboard:copy +! URxvt.keysym.M-v: perl:clipboard:paste +! URxvt.keysym.M-C-v: perl:clipboard:paste_escaped +! URxvt*termName: string +! URxvt*geometry: geometry +! URxvt*chdir: string +! URxvt*loginShell: boolean +! URxvt*multiClickTime: number +! URxvt*jumpScroll: boolean +! URxvt*skipScroll: boolean +! URxvt*pastableTabs: boolean +! URxvt*scrollstyle: plain +! URxvt*scrollBar_right: boolean +! URxvt*scrollBar_floating: true +! URxvt*scrollBar_align: mode +! URxvt*thickness: number +! URxvt*scrollTtyOutput: boolean +! URxvt*scrollTtyKeypress: boolean +! URxvt*scrollWithBuffer: boolean +! URxvt*tintColor: !7DA55 +! URxvt*blurRadius: HxV +! URxvt*fading: number +! URxvt*fadeColor: color +! URxvt*utmpInhibit: boolean +! URxvt*urgentOnBell: boolean +! URxvt*visualBell: boolean +! URxvt*mapAlert: boolean +! URxvt*meta8: boolean +! URxvt*tripleclickwords: boolean +! URxvt*insecure: boolean +! URxvt*cursorUnderline: boolean +! URxvt*pointerBlank: boolean +! URxvt*color0: color +! URxvt*color1: color +! URxvt*color2: color +! URxvt*color3: color +! URxvt*color4: color +! URxvt*color5: color +! URxvt*color6: color +! URxvt*color7: color +! URxvt*color8: color +! URxvt*color9: color +! URxvt*color10: color +! URxvt*color11: color +! URxvt*color12: color +! URxvt*color13: color +! URxvt*color14: color +! URxvt*color15: color +! URxvt*colorBD: color +! URxvt*colorIT: color +! URxvt*colorUL: color +! URxvt*colorRV: color +! URxvt*underlineColor: color +! URxvt*scrollColor: color +! URxvt*troughColor: color +! URxvt*highlightColor: color +! URxvt*highlightTextColor: color +! URxvt*cursorColor: color +! URxvt*cursorColor2: color +! URxvt*pointerColor: color +! URxvt*pointerColor2: color +! URxvt*borderColor: color +! URxvt*iconFile: file +! URxvt*font: fontname +! URxvt*boldFont: fontname +! URxvt*italicFont: fontname +! URxvt*boldItalicFont: fontname +! URxvt*intensityStyles: boolean +! URxvt*inputMethod: name +! URxvt*preeditType: style +! URxvt*imLocale: string +! URxvt*imFont: fontname +! URxvt*title: string +! URxvt*iconName: string +! URxvt*buffered: boolean +! URxvt*depth: number +! URxvt*visual: number +! URxvt*transient-for: windowid +! URxvt*override-redirect: boolean +! URxvt*hold: boolean +! URxvt*externalBorder: number +! URxvt*internalBorder: number +! URxvt*borderLess: true +! URxvt*lineSpace: number +! URxvt*letterSpace: number +! URxvt*skipBuiltinGlyphs: boolean +! URxvt*pointerBlankDelay: number +! URxvt*backspacekey: string +! URxvt*deletekey: string +! URxvt*print-pipe: string +! URxvt*modifier: modifier +! URxvt*cutchars: string +! URxvt*answerbackString: string +! URxvt*secondaryScreen: boolean +! URxvt*secondaryScroll: boolean +! URxvt*perl-lib: string +! URxvt*perl-eval: perl-eval +! URxvt*perl-ext-common: string +! URxvt*perl-ext: string +! URxvt*iso14755: boolean +! URxvt*iso14755_52: boolean +! URxvt*xrm: string +! URxvt*keysym.sym: keysym +! URxvt*background.border: boolean +! URxvt*background.expr: string +! URxvt*background.interval: seconds +! URxvt*bell-command: string +! URxvt*kuake.hotkey: string +! URxvt*matcher.button: string +! URxvt*matcher.launcher: string +! URxvt*matcher.launcher.*: string +! URxvt*matcher.pattern.*: string +! URxvt*matcher.rend.*: string +! URxvt*remote-clipboard.fetch: string +! URxvt*remote-clipboard.store: string +! URxvt*searchable-scrollback: string +! URxvt*selection-autotransform.*: string +! URxvt*selection-pastebin.cmd: string +! URxvt*selection-pastebin.url: string +! URxvt*selection.pattern-0: string +! URxvt*tab-bg: colour +! URxvt*tab-fg: colour +! URxvt*tabbar-bg: colour +! URxvt*tabbar-fg: colour +! URxvt*url-launcher: string + +! The Terminus font uses the following X-names: +! -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso10646-1 +! -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso10646-1 +! -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso10646-1 +! -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso10646-1 +! -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso10646-1 +! -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso10646-1 +! -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso10646-1 +! -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso10646-1 +! -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso10646-1 +! -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso10646-1 +! -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1 +! -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso10646-1 +! -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso10646-1 +! -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso10646-1 +! -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso10646-1 diff --git a/.atom/packages/atom-material-syntax/.npmignore b/.atom/packages/atom-material-syntax/.npmignore new file mode 100644 index 0000000..8e91acb --- /dev/null +++ b/.atom/packages/atom-material-syntax/.npmignore @@ -0,0 +1,4 @@ +.DS_Store +npm-debug.log +node_modules +snippets/ diff --git a/.atom/packages/atom-material-syntax/LICENSE.md b/.atom/packages/atom-material-syntax/LICENSE.md new file mode 100644 index 0000000..62b6eb1 --- /dev/null +++ b/.atom/packages/atom-material-syntax/LICENSE.md @@ -0,0 +1,20 @@ +Copyright (c) 2017 Silvestre Herrera + +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/.atom/packages/atom-material-syntax/README.md b/.atom/packages/atom-material-syntax/README.md new file mode 100644 index 0000000..5548513 --- /dev/null +++ b/.atom/packages/atom-material-syntax/README.md @@ -0,0 +1,6 @@ +![](http://i.imgur.com/f58FC9u.png) +--- + +A syntax theme for [Atom Material UI](https://github.com/silvestreh/atom-material-ui). Inspired by Mattia Astorino's [SublimeText theme](https://github.com/equinusocio/material-theme). + +![screenshot](http://i.imgur.com/3YQeDps.png) diff --git a/.atom/packages/atom-material-syntax/index.less b/.atom/packages/atom-material-syntax/index.less new file mode 100644 index 0000000..8e35b81 --- /dev/null +++ b/.atom/packages/atom-material-syntax/index.less @@ -0,0 +1,12 @@ +@import "styles/base"; + +// Languages +@import (less) "styles/languages/babel"; +@import (less) "styles/languages/css"; +@import (less) "styles/languages/gfm"; +@import (less) "styles/languages/html"; +@import (less) "styles/languages/javascript"; +@import (less) "styles/languages/json"; +@import (less) "styles/languages/php"; +@import (less) "styles/languages/python"; +@import (less) "styles/languages/ruby"; diff --git a/.atom/packages/atom-material-syntax/package.json b/.atom/packages/atom-material-syntax/package.json new file mode 100644 index 0000000..2815317 --- /dev/null +++ b/.atom/packages/atom-material-syntax/package.json @@ -0,0 +1,57 @@ +{ + "_from": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball", + "_id": "atom-material-syntax@1.0.8", + "_inBundle": false, + "_integrity": "sha512-Sr9lYOlqNkLACOvVKQDgGdN8D+qRuhUjWmr9usWFNxKf/ec5WoYafUFah0M7UgdUZEa3CSbT2cBq6sK2rPX+Jw==", + "_location": "/atom-material-syntax", + "_phantomChildren": {}, + "_requested": { + "type": "remote", + "raw": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball", + "rawSpec": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball", + "saveSpec": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball", + "fetchSpec": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball", + "_shasum": "7e8a52dc55a491cd3d4338cea7ad769fb436c13d", + "_spec": "https://www.atom.io/api/packages/atom-material-syntax/versions/1.0.8/tarball", + "_where": "/tmp/apm-install-dir-119228-2437-aocpky.gssto", + "bugs": { + "url": "https://github.com/silvestreh/atom-material-syntax/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A dark syntax theme for Atom that uses Google's Material Design color palette", + "engines": { + "atom": ">=1.13.0 <2.0.0" + }, + "homepage": "https://github.com/silvestreh/atom-material-syntax#readme", + "keywords": [ + "syntax", + "theme", + "material", + "material design" + ], + "license": "MIT", + "name": "atom-material-syntax", + "repository": { + "type": "git", + "url": "git+https://github.com/silvestreh/atom-material-syntax.git" + }, + "theme": "syntax", + "version": "1.0.8", + "_atomModuleCache": { + "version": 1, + "dependencies": [], + "extensions": { + ".json": [ + "package.json" + ] + }, + "folders": [] + } +} \ No newline at end of file diff --git a/.atom/packages/atom-material-syntax/styles/base.less b/.atom/packages/atom-material-syntax/styles/base.less new file mode 100644 index 0000000..7d5c48f --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/base.less @@ -0,0 +1,404 @@ +@import "syntax-variables"; + +atom-text-editor { + background-color: @syntax-background-color; + color: @syntax-text-color; + + .wrap-guide { + background-color: @syntax-indent-guide-color; + } + + .indent-guide { + color: @syntax-indent-guide-color; + } + + .invisible-character { + color: @syntax-invisible-character-color; + } + + .cursor-line { + background-color: fade(darken(@syntax-background-color, 20%), 20%); + } + + .gutter { + background-color: @syntax-gutter-background-color; + color: @syntax-gutter-text-color; + + .line-number { + &.cursor-line { + background-color: darken(@syntax-background-color, 2.5%); + color: @syntax-gutter-text-color-selected; + } + + &.cursor-line-no-selection { + color: @syntax-gutter-text-color-selected; + } + } + } + + .fold-marker:after, + .gutter .line-number.folded, + .gutter .line-number:after { + color: @light-gray; + } + + .invisible { + color: @syntax-text-color; + } + + .cursor { + color: @syntax-cursor-color; + border-width: 2px; + } + + .selection .region { + background-color: @syntax-selection-color; + } +} + +atom-text-editor .search-results .syntax--marker .region { + background-color: transparent; + border: 1px solid @syntax-result-marker-color; +} + +atom-text-editor .search-results .syntax--marker.current-result .region { + border: 1px solid @syntax-result-marker-color-selected; +} + +// Syntax styles +.syntax--comment { + color: @syntax-comment-color; +} + +.syntax--keyword { + color: @purple; + + &.syntax--control { + color: @purple; + + &.syntax--elements { + color: @light-gray; + } + } + + &.syntax--operator { + color: @cyan; + } + + &.syntax--other.syntax--special-method { + color: @blue; + } + + &.syntax--other.syntax--unit { + color: @orange; + } +} + +.syntax--storage { + color: @purple; +} + +.syntax--constant { + color: @red; + + &.syntax--character.syntax--escape { + color: @cyan; + } + + &.syntax--numeric { + color: @strong-orange; + } + + &.syntax--other.syntax--color { + color: @cyan; + } + + &.syntax--other.syntax--symbol { + color: @green; + } + + &.syntax--language.syntax--null { + color: @pink; + } +} + +.syntax--variable { + color: @very-light-gray; + + &.syntax--interpolation { + color: darken(@red, 10%); + } + + &.syntax--parameter.syntax--function { + color: @strong-orange; + } + + &.syntax--language { + color: @pink; + } + + &.syntax--variable { + &.syntax--object { + color: @orange; + } + } +} + +.syntax--invalid.syntax--illegal { + background-color: @red; + color: @syntax-background-color; +} + +.syntax--string { + color: @green; + + &.syntax--regexp { + color: @cyan; + + .syntax--source.syntax--ruby.syntax--embedded { + color: @orange; + } + } + + &.syntax--other.syntax--link { + color: @red; + } +} + +.syntax--punctuation { + &.syntax--definition { + &.syntax--comment { + color: @syntax-comment-color; + } + + &.syntax--array, + &.syntax--parameters, + &.syntax--string, + &.syntax--variable { + color: @syntax-text-color; + + &.syntax--begin, &.syntax--end { + color: @cyan; + } + } + + &.syntax--heading, + &.syntax--identity { + color: @blue; + } + + &.syntax--bold { + color: @light-orange; + font-weight: bold; + } + + &.syntax--italic { + color: @purple; + font-style: italic; + } + + &.syntax--entity { + color: @cyan; + } + } + + &.syntax--section { + &.syntax--array { + color: @cyan; + } + + &.syntax--embedded { + color: @cyan; + } + } + + &.syntax--separator { + &.syntax--key-value { + color: @cyan; + } + } + + &.syntax--terminator { + color: @cyan; + } +} + +.syntax--support { + &.syntax--class { + color: @orange; + } + + &.syntax--function { + color: @blue; + + &.syntax--any-method { + color: @blue; + } + } + + &.syntax--type { + color: @orange; + } + + &.syntax--variable { + &.syntax--dom { + color: @orange; + } + } +} + +.syntax--entity { + &.syntax--name { + &.syntax--function { + color: @blue; + } + + &.syntax--type { + color: @very-light-gray; + } + } + + &.syntax--other { + &.syntax--inherited-class { + color: @green; + } + + &.syntax--attribute-name { + &.syntax--pseudo-element { + color: @purple; + } + + &.syntax--attribute { + color: @purple; + } + } + } + + &.syntax--name.syntax--class, + &.syntax--name.syntax--type.syntax--class { + color: @orange; + } + + &.syntax--name.syntax--section { + color: @blue; + } + + &.syntax--name.syntax--tag { + color: @red; + } + + &.syntax--other.syntax--attribute-name { + color: @orange; + } +} + +.syntax--meta { + &.syntax--class { + color: @light-orange; + } + + &.syntax--delimiter { + &.syntax--period { + color: @cyan; + } + } + + &.syntax--link { + color: @orange; + } + + &.syntax--require { + color: @blue; + } + + &.syntax--selector { + color: @purple; + } + + &.syntax--separator { + background-color: @gray; + color: @syntax-text-color; + } + + &.syntax--brace { + &.syntax--round, &.syntax--square { + color: @cyan; + } + } +} + +.syntax--none { + color: @syntax-text-color; +} + +.syntax--markup { + &.syntax--bold { + color: @orange; + font-weight: bold; + } + + &.syntax--changed { + color: @purple; + } + + &.syntax--deleted { + color: @red; + } + + &.syntax--italic { + color: @purple; + font-style: italic; + } + + &.syntax--heading .syntax--punctuation.syntax--definition.syntax--heading { + color: @blue; + } + + &.syntax--inserted { + color: @green; + } + + &.syntax--list { + color: @red; + } + + &.syntax--quote { + color: @orange; + } + + &.syntax--raw.syntax--inline { + color: @green; + } +} + +.syntax--source.syntax--gfm .syntax--markup { + -webkit-font-smoothing: auto; + + &.syntax--heading { + color: @green; + } +} + +// Mini editor +atom-text-editor[mini] .scroll-view { + padding-left: 1px; +} + +// Bracket Matcher +atom-text-editor { + .highlight .region.bracket-matcher { + z-index: inherit; + } +} + +.bracket-matcher .region { + border-bottom: 1px solid @syntax-cursor-color; + box-sizing: border-box; + background-color: fade(@syntax-text-color, 10%); + box-shadow: inset 0 -1px 0 @syntax-cursor-color; +} + +// Misspelled word +atom-text-editor .spell-check-misspelling .region { + z-index: auto; +} diff --git a/.atom/packages/atom-material-syntax/styles/colors.less b/.atom/packages/atom-material-syntax/styles/colors.less new file mode 100644 index 0000000..40cf2db --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/colors.less @@ -0,0 +1,20 @@ +// These colors are specific to the theme. Do not use in a package! + +@very-light-gray: #EEFFFF; +@light-gray: #B2CCD6; +@gray: #373b41; +@dark-gray: #282a2e; +@very-dark-gray: #263238; + +@green: #C3E88D; +@teal: #009688; +@light-teal: #73d1c8; +@cyan: #89DDF3; +@blue: #82AAFF; +@indigo: #7986CB; +@purple: #C792EA; +@pink: #FF5370; +@red: #F07178; +@strong-orange: #F78C6A; +@orange: #FFCB6B; +@light-orange: #FFE082; diff --git a/.atom/packages/atom-material-syntax/styles/languages/babel.less b/.atom/packages/atom-material-syntax/styles/languages/babel.less new file mode 100644 index 0000000..c0a6683 --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/babel.less @@ -0,0 +1,16 @@ +.syntax--jsx { + &.syntax--component { + color: @red; + } +} + +atom-text-editor { + // Over-nesting to override `language-babel` default styles. + .syntax--source.syntax--js.syntax--jsx { + .syntax--jsx { + .syntax--entity.syntax--other.syntax--attribute-name { + font-style: normal; + } + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/css.less b/.atom/packages/atom-material-syntax/styles/languages/css.less new file mode 100644 index 0000000..feac9b3 --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/css.less @@ -0,0 +1,51 @@ +.syntax--css { + .syntax--support { + &.syntax--constant { + color: @cyan; + } + + &.syntax--property-name { + color: @light-teal; + } + } + + .syntax--keyword { + &.syntax--unit { + color: @strong-orange; + } + } + + .syntax--constant { + &.syntax--numeric { + color: @light-orange; + } + + &.syntax--color { + color: @light-orange; + + .syntax--punctuation { + color: currentColor; + } + } + } + + .syntax--entity { + &.syntax--tag { + color: @light-gray; + } + + &.syntax--id { + color: @purple; + } + } + + .syntax--punctuation { + &.syntax--delimiter { + color: @cyan; + + + .syntax--constant.syntax--numeric:not(.syntax--color) { + color: @strong-orange; + } + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/gfm.less b/.atom/packages/atom-material-syntax/styles/languages/gfm.less new file mode 100644 index 0000000..775cda8 --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/gfm.less @@ -0,0 +1,36 @@ +[data-grammar*="gfm"] { + .syntax--markup.syntax--underline.syntax--link { + color: lighten(@pink, 10%); + + span.syntax--punctuation { + color: @pink; + } + } + .syntax--markup.syntax--strike { + position: relative; + color: fade(@syntax-text-color, 50%); + + &::after { + content: ""; + position: absolute; + top: calc(50% + 4px); + left: 0; + right: 0; + height: 1px; + background-color: fade(@syntax-text-color, 50%); + } + } + .syntax--table .syntax--border { + color: fade(@syntax-text-color, 50%); + } + .syntax--markup.syntax--heading { + color: @blue; + } + .syntax--punctuation.syntax--definition.syntax--begin, + .syntax--punctuation.syntax--definition.syntax--end { + color: @blue; + } + .syntax--punctuation.syntax--definition.syntax--begin + span:not(.syntax--function.syntax--parameter) { + color: lighten(@blue, 5%); + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/html.less b/.atom/packages/atom-material-syntax/styles/languages/html.less new file mode 100644 index 0000000..37714ff --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/html.less @@ -0,0 +1,15 @@ +.syntax--html, .syntax--jsx { + .syntax--meta { + &.syntax--tag { + &.syntax--doctype { + color: @purple; + } + } + } + + .syntax--punctuation { + &.syntax--tag { + color: @cyan; + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/javascript.less b/.atom/packages/atom-material-syntax/styles/languages/javascript.less new file mode 100644 index 0000000..fe785c1 --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/javascript.less @@ -0,0 +1,67 @@ +.syntax--js { + &.syntax--constant { + color: @very-light-gray; + } + + &.syntax--support { + &.syntax--variable { + &.syntax--property { + color: @very-light-gray; + } + &.syntax--property.syntax--dom { + color: @blue; + } + } + } + + &.syntax--entity { + &.syntax--name { + &.syntax--type { + color: @orange; + } + } + } + + &.syntax--variable { + &.syntax--property { + color: @blue; + } + &.syntax--other.syntax--object { + color: @very-light-gray; + } + &.syntax--other.syntax--object.syntax--property { + color: @blue; + } + } + + &.syntax--string.syntax--quoted.syntax--template { + .syntax--other.syntax--object.syntax--property { + color: @green; + } + } + + &.syntax--constant { + &.syntax--numeric { + color: @strong-orange; + } + + &.syntax--boolean { + color: @red; + } + } + + &.syntax--punctuation.syntax--begin, + &.syntax--punctuation.syntax--end, + &.syntax--delimiter.syntax--object.syntax--comma, + &.syntax--brace.syntax--curly { + color: @cyan; + + .syntax--comment & { + color: @syntax-comment-color; + } + } + + &.syntax--export .syntax--variable.syntax--default { + color: @purple; + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/json.less b/.atom/packages/atom-material-syntax/styles/languages/json.less new file mode 100644 index 0000000..4cc28ac --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/json.less @@ -0,0 +1,39 @@ +.syntax--json { + .syntax--meta { + &.syntax--array.syntax--structure .syntax--string.syntax--quoted.syntax--double { + color: @green; + + > * { + color: currentColor; + + &.syntax--punctuation { + &.syntax--begin, &.syntax--end { + color: @cyan; + } + } + } + } + + .syntax--punctuation.syntax--separator.syntax--key-value + .syntax--string.syntax--quoted { + color: @green; + + * { + color: currentColor; + + &.syntax--punctuation { + &.syntax--begin, &.syntax--end { + color: @cyan; + } + } + } + } + + &.syntax--structure.syntax--dictionary .syntax--string.syntax--quoted { + color: @purple; + + .syntax--punctuation.syntax--string { + color: currentColor; + } + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/php.less b/.atom/packages/atom-material-syntax/styles/languages/php.less new file mode 100644 index 0000000..888f95f --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/php.less @@ -0,0 +1,19 @@ +.syntax--php { + &.syntax--keyword { + &.syntax--operator { + &.syntax--assignment { + color: @purple; + } + } + } + + &.syntax--meta { + &.syntax--object { + color: @blue; + } + + &.syntax--arguments { + color: @purple; + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/python.less b/.atom/packages/atom-material-syntax/styles/languages/python.less new file mode 100644 index 0000000..9589e6d --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/python.less @@ -0,0 +1,45 @@ +.syntax--python { + .syntax--meta { + &.syntax--function-call { + color: @blue; + + .syntax--punctuation { + color: @cyan; + } + + .syntax--arguments { + color: @indigo; + + &.syntax--punctuation { + color: @cyan; + } + } + } + } + + .syntax--variable { + &.syntax--self { + color: @pink; + } + } + + .syntax--meta { + .syntax--punctuation { + &.syntax--inheritance, &.syntax--section { + color: @cyan; + } + } + } + + .syntax--variable { + &.syntax--parameter { + color: @cyan; + } + } + + .syntax--keyword { + &.syntax--operator { + color: @purple; + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/languages/ruby.less b/.atom/packages/atom-material-syntax/styles/languages/ruby.less new file mode 100644 index 0000000..f3a6a41 --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/languages/ruby.less @@ -0,0 +1,21 @@ +.syntax--ruby { + .syntax--punctuation { + &.syntax--separator { + color: @cyan; + } + } + + .syntax--variable { + &.syntax--block { + color: @red; + } + + &.syntax--instance { + color: @red; + + .syntax--punctuation { + color: currentColor; + } + } + } +} diff --git a/.atom/packages/atom-material-syntax/styles/syntax-variables.less b/.atom/packages/atom-material-syntax/styles/syntax-variables.less new file mode 100644 index 0000000..b8f379c --- /dev/null +++ b/.atom/packages/atom-material-syntax/styles/syntax-variables.less @@ -0,0 +1,32 @@ +@import "colors"; + +// This defines all syntax variables that syntax themes must implement when they +// include a syntax-variables.less file. + +// General colors +@syntax-text-color: @very-light-gray; +@syntax-cursor-color: @teal; +@syntax-selection-color: lighten(@syntax-background-color, 10%); +@syntax-background-color: @very-dark-gray; +@syntax-comment-color: lighten(@very-dark-gray, 20%); + +// Guide colors +@syntax-wrap-guide-color: @dark-gray; +@syntax-indent-guide-color: lighten(@syntax-background-color, 2.5%); +@syntax-invisible-character-color: @gray; + +// For find and replace markers +@syntax-result-marker-color: @light-gray; +@syntax-result-marker-color-selected: white; + +// Gutter colors +@syntax-gutter-text-color: fade(@syntax-text-color, 20%); +@syntax-gutter-text-color-selected: @syntax-gutter-text-color; +@syntax-gutter-background-color: @syntax-background-color; +@syntax-gutter-background-color-selected: darken(@syntax-background-color, 5%); + +// For git diff info. i.e. in the gutter +@syntax-color-renamed: @blue; +@syntax-color-added: @green; +@syntax-color-modified: @orange; +@syntax-color-removed: @red; diff --git a/.atom/packages/atom-material-ui/.editorconfig b/.atom/packages/atom-material-ui/.editorconfig new file mode 100644 index 0000000..8bc4f10 --- /dev/null +++ b/.atom/packages/atom-material-ui/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[package.json] +indent_size = 2 diff --git a/.atom/packages/atom-material-ui/.eslintrc.js b/.atom/packages/atom-material-ui/.eslintrc.js new file mode 100644 index 0000000..e8fbe53 --- /dev/null +++ b/.atom/packages/atom-material-ui/.eslintrc.js @@ -0,0 +1,20 @@ +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module', + }, + extends: 'airbnb', + env: { + browser: true, + jasmine: true, + }, + globals: { + atom: false, + Color: false, + waitsForPromise: false, + }, + rules: { + indent: ['error', 4], + }, +}; diff --git a/.atom/packages/atom-material-ui/.npmignore b/.atom/packages/atom-material-ui/.npmignore new file mode 100644 index 0000000..edbd9e7 --- /dev/null +++ b/.atom/packages/atom-material-ui/.npmignore @@ -0,0 +1,3 @@ +node_modules +.npm-debug* +styles/user-settings.less diff --git a/.atom/packages/atom-material-ui/CONTRIBUTING.md b/.atom/packages/atom-material-ui/CONTRIBUTING.md new file mode 100644 index 0000000..5a66ba7 --- /dev/null +++ b/.atom/packages/atom-material-ui/CONTRIBUTING.md @@ -0,0 +1,98 @@ +![](http://i.imgur.com/7C2H2mw.png) +--- +# Contributing to Atom Material UI + +Some of this content comes from Atom's Contributing guidelines. Please, don't be intimidated, this is just a *guideline*. All bug reports, feature requests, and questions are **always** welcome. + +## Code contributions +If you want to get your hands dirty and contribute with some code, you should fork this repository, make your changes, and then send in a pull request. + +```shell +git clone +cd atom-material-ui/ +apm link -d && npm install +atom -d . +``` + +I recommend installing the package [editorconfig](https://atom.io/packages/editorconfig) so you don't have to change your global settings for indentation. + +### Stylesheets + +Use four spaces per indent and leave an empty line between a selector's properties and a nested selector. Also leave a empty line between selectors. The white space helps with readability: + +```scss +.selector { + property: value; + + .nested { + property: value; + } +} + +.another-selector { + property: value; +} +``` + +Don't abuse nesting or we'll all regret it in the future. Having `!important` flags all over to fight specificity is nasty. Try using three levels at the most. `!important` is only allowed if you need to override a package's inline styles. + +Don't be afraid to include another level if you want to target a `&.className`: + +```scss +.selector { + property: value; + + &.className { + property: value; + } +} +``` + +Using BEM(ish) syntax nesting is OK: + +```scss +.block { + &__element { + &__sub-element { + &--modifier { + property: value; + } + } + } +} +``` + +That unholy pyramid doesn't look great, but the output CSS isn't that hard to override. + +### JavaScript + +In a nutshell, we're following Airbnb's JavaScript style guide, except we use four spaces per indent. Make sure to check the [style guide](https://github.com/airbnb/javascript). Also, we have ESLint to catch bugs and style errors, so make sure to install it along with `linter` and `linter-eslint`. + +## Trying new features + +### Getting the development version + +If you'd like to test new features and hunt bugs, follow these simple steps to get the latest (development) version. + +```shell +git clone git@github.com:silvestreh/atom-material-ui.git +cd atom-material-ui/ +apm link -d && npm install +``` + +You'll have to run Atom in *developer mode* to test the theme. To do so, open a terminal and run: + +```shell +atom -d . +``` + +This way both, the APM published version and the development version, can coexist. + +### Reporting a bug + +Before opening an issue please search through the existing ones, even those that are marked as closed. Also, please take these into account before submitting an issue: + +- **Which version of Atom are you using?** You can get the exact version by running `atom -v` in your terminal, or by starting Atom and running the Application: About command from the Command Palette. +- **What's the name and version of the OS you're using?** +- **Which packages do you have installed?** You can get that list by running `apm list --installed` in a terminal. +- **Are you using local styles in your user stylesheets?** If so, provide its contents, preferably in a code block or with a link to a gist. diff --git a/.atom/packages/atom-material-ui/ISSUE_TEMPLATE.md b/.atom/packages/atom-material-ui/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..efcc3b2 --- /dev/null +++ b/.atom/packages/atom-material-ui/ISSUE_TEMPLATE.md @@ -0,0 +1,32 @@ + + +[Short description of problem here] + +**Reproduction Steps:** + +1. [First Step] +2. [Second Step] +3. [Other Steps...] + +**Expected behavior:** + +[Describe expected behavior here] + +**Observed behavior:** + +[Describe observed behavior here] + +**Screenshots and GIFs** + +![Screenshots and GIFs which follow reproduction steps to demonstrate the problem](url) + +**Atom version:** [Enter Atom version here] +**OS and version:** [Enter OS name and version here] + +**Installed packages:** + +[List of installed packages here] diff --git a/.atom/packages/atom-material-ui/LICENSE.md b/.atom/packages/atom-material-ui/LICENSE.md new file mode 100644 index 0000000..a659077 --- /dev/null +++ b/.atom/packages/atom-material-ui/LICENSE.md @@ -0,0 +1,20 @@ +Copyright (c) 2017 Silvestre Herrera. + +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/.atom/packages/atom-material-ui/PULL_REQUEST_TEMPLATE.md b/.atom/packages/atom-material-ui/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..7607e5a --- /dev/null +++ b/.atom/packages/atom-material-ui/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,24 @@ +### Requirements + +* Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion. +* All new code requires tests to ensure against regressions + +### Description of the Change + + + +### Benefits + + + +### Possible Drawbacks + + + +### Applicable Issues + + diff --git a/.atom/packages/atom-material-ui/README.md b/.atom/packages/atom-material-ui/README.md new file mode 100644 index 0000000..c29071b --- /dev/null +++ b/.atom/packages/atom-material-ui/README.md @@ -0,0 +1,74 @@ +[![Build Status](https://img.shields.io/travis/atom-material/atom-material-ui.svg?style=flat-square)](https://travis-ci.org/atom-material/atom-material-ui) +[![apm](https://img.shields.io/apm/dm/atom-material-ui.svg?style=flat-square)](https://atom.io/packages/atom-material-ui) +[![apm](https://img.shields.io/apm/v/atom-material-ui.svg?style=flat-square)](https://atom.io/packages/atom-material-ui) +[![apm](https://img.shields.io/apm/l/atom-material-ui.svg?style=flat-square)]() +[![Gitter](https://img.shields.io/gitter/room/silvestreh/atom-material-ui.svg?style=flat-square)](https://gitter.im/silvestreh/atom-material-ui) +[![Support AMU](https://img.shields.io/badge/donate-on%20pledgie-green.svg?style=flat-square)](https://pledgie.com/campaigns/29552) + +![AMU](http://i.imgur.com/7C2H2mw.png) +--- + +A dynamic UI theme for Atom that (kinda) follows Google's Material Design Guidelines. Best with [Atom Material Syntax](https://github.com/atom-material/atom-material-syntax). + +Inspired by Mattia Astorino's [SublimeText theme](https://github.com/equinusocio/material-theme). + +# Installation + +Fire up a console and type: + +```shell +apm install atom-material-ui +``` + +Or, inside Atom's settings select Install and then search for this package. + +# Configuration + +Atom Material UI supports different accent colors. To change it, go to Settings > Themes and click the cog icon next to the theme selector. + +![](http://i.imgur.com/pf3oiZr.png) + +You'll find the color picker there. + +# Screenshots + +Here's the obligatory screenshot. + +### With [Atom Material Syntax](https://atom.io/packages/atom-material-syntax) + +```shell +apm install atom-material-syntax +``` + +![](http://i.imgur.com/ExPYmJY.png) + +### With [Light syntax](https://atom.io/packages/atom-material-syntax-light) theme variant + +```shell +apm install atom-material-syntax-light +``` + +![](http://i.imgur.com/q1o78sX.png) + +### With [Dark syntax](https://atom.io/packages/atom-material-syntax-dark) theme variant + +```shell +apm install atom-material-syntax-dark +``` + +![](http://i.imgur.com/orhIvwS.png) + +# Contributing + +Please check the [CONTRIBUTING.md](https://github.com/atom-material/atom-material-ui/blob/master/CONTRIBUTING.md) file. + +# Extra + +![](http://i.imgur.com/0tHORB1.png) + +You can download the redesigned icon from [dropbox](https://www.dropbox.com/s/8gyn40sw95626dx/Atom-MD-Icon.zip?dl=0). It's a ZIP file containing multiple resolution PNGs, ICNS and ICO formats. Windows ICO converted by Akshit Tripathi. + +# License +Atom Material UI is licensed under MIT. + +View the license file [here](https://github.com/atom-material/atom-material-ui/blob/master/LICENSE.md) diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-black-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-black-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1794687c57227805257e0ba50aced2510218c8fc GIT binary patch literal 19640 zcmV(~K+nH-Pew8T0RR9108F?56951J0JVew08B{$0ssI200000000000000000000 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 D@vUS( literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-bold-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-bold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0e4b3b5312fccd22b2ee35b2a0d3df3ea8b5639c GIT binary patch literal 20260 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
  • V`brum|&s31b@tfnJY1!L@=P#8uRB+Ow%mG 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 literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-bolditalic-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-bolditalic-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cbdf328e045b82b681b5d3f048beb236764bd19f GIT binary patch literal 24828 zcmV(?K-a%_Pew8T0RR910ATz86951J0NeZk0AP&(0ssI200000000000000000000 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 literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-light-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-light-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b890bc3b629759bf340d876c62415a9646313d1e GIT binary patch literal 19408 zcmV)7K*zs#Pew8T0RR91087vS6951J0JR7J083v00ssI200000000000000000000 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 brn`)xTVGg4Y#l!1!YzsfopkK^Jpcdzh>V@Y literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-lightitalic-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-lightitalic-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3ed6b6796cf1652b6706d47182814e67fd24665d GIT binary patch literal 25376 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 Pwun}8)&Uq1Y~Kq2pDV6S literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-medium-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-medium-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a785554ce958efdafd812dde7b56c39250c7fd0c GIT binary patch literal 20068 zcmV(-K-|A~Pew8T0RR9108V586951J0Jty!08RA(0ssI200000000000000000000 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 T;fZ{0_WCXSmA@3?tEc%Es!4x~ literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-regular-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a606db1096bd9828c9eba096add123a10898115 GIT binary patch literal 19896 zcmV(^K-Ir@Pew8T0RR9108O|66951J0K1F;08L8(0ssI200000000000000000000 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 literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-thin-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/roboto-thin-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b88c7029298b63acce3a6695dd6946f0744eaf65 GIT binary patch literal 18912 zcmV)3K+C^(Pew8T0RR9107>8g6951J0JInY07-EG0ssI200000000000000000000 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 literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-bolditalic-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-bolditalic-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c00ed36ab5c354367f4c6a0e96f2f107596b896d GIT binary patch literal 28632 zcmV)CK*GOwPew8T0RR910B_g;6951J0RRvH0B>pl0RR9100000000000000000000 z0000#Mn+Uk92zVeu6!I&24Db#atMJ034~=42nvIxB!h!(0X7081BWyVgIoXvAO(mj z2ZjO+gAYGfv`-X^)z>ju%jn3O*BGCpM83gyZWyG6pUI1p2Gd8RNl|L zMobeTqVPsukOwL}4liHTE_c%vFWaCunw-ZW2RvO{Yi1Z{Am^1CPFHJW&k>=i6 z_~4kYO8N_I8~MgM_40gV_s{>TuI@SaNs;^^W>hL7cK9R9vwz^v_5ReF6VDmDx^-Z6 zF7E^eaCIJj;F7Sm9X-IW&42Hr;hN*_IJhPbI5IA|Y&w)k={9Ok5iuH!-qdd_T)6$s zMLE%4U@Z#&)5gjoVqusUK6n<@WpPWeGnrnjJ|BQFBc493gcMhI7fz~6|=1XPjGIl8M-~Y)d znE*OD0CU;;)(_<0uejWR?GFGebxHdI=VV-yObP*3DXL5k=9TKz*$*HO(EsVQvgHoM z2fTpgQPE?Gf98)oipTVx_lPH%Mk-Hg14^V2EudkE>?JbXann+C9<8;f-i7i4>|yFV zJGg`-mMWoH#*@hi5Ke{ZQ-`d$Mde^c^7N^@PACz~J?<-P96LFjNp{Qvvl|J@+i-2gG@1|>TD&5X14>(@&Cs_%m8 zh3%0H2}ednxdr;wA?iat0h$oZOo+iTO|9BG86e3Lg^G%>COo}dB#+?=Kd>>ne7h`A zO^3BflU}W<-2j5*l2@$@D6%Ny{@=Y&9S`h8kS8$%*QlX!#%r4Zu&NQ{Ks-2VT*>7ROI_ugj# zHRK^~yKOsQCjjeYQRxn;Ci4yLf%rIP4TY@|;M3k_c~BF3lT9N!ni`6Th)6IcNB8t^ z?;K;U&b8{>ZcwpED^l9?hcUHE8jZc&Saz%=P2He?fQ+d>4%w`l%8K3#tJkfqRgmC; z0Fy8iIr*VbfY04%{)+&7>`%li3*ak{UAYqOeIjrXz<`AiK`i9UF~p=0IHDQY{aD(J zAh*1=%Wgp7i2Pq%54z8VGk{WI8Z3R_MC<&cL&pz!t)rU13BUa36(R};DqlrCC_iY0 zR9t0OPtDbj5j7G<+L#$J$(tq(&d42I8j_CzbmYkI1x;!VNI>c#hoqjbei#`8R^ubs zun?wL705%Z16-lXDjoD5+YBN)Y4#omm0ju&`|S9o2)jRX&T2!Nshg(yNX zgcW5GD@O$?E2<(=({o)UM)qHfV{$BloyxM*78u^V1@2!UU}l^{W;jNQl~Ej^{$mgk zQo}Rl*y(gGr}X5E@vL0S6=S6R;r1jh5%bId z?}*ilJr}-vX%(0>Z&Il=6(-W{q&EvOT%A`D5d#&&S{#zi5!n(E=ZLsQ!~-cqjtlU> zA1jCm8idD-3}G0?Fp6Oe!=%QQ;`g{PI4&r>MPVbVO)kSNQwjl? zsaV23O!bK;pGOoklJQJld`22+q>)DY;obYyz=XEQS+3nJ=ejF#_tnNkXTx@G;=~hQ z0-?Pi=X6fzbwL;V&BWd4z(S95VUa0Efp1`rwMa@nyzpqo5?a9V)!!oC++yOEJGR=KX0ZuI!YGu&mO2y>ZUXVAkD?<`- z7V^a9EisMlpSPJKJ2^e?6`)0w?iS4HZJBF&?KP77>B{*T0)(J~5W2n{pa9EN7!+<#_Rrya3r+Yex3!NILv{&8F5` zb+N>CnFvQ`I_@&7Ir9L~PY)e(kYX0@ln|d=lF7`YY4w+gqk}W(P*tXGUmj_u$tNuX zxYXg~$+F*n(e}d~F zGNCC8DQ)**;X69u)W_QiL7oBj$H~v%6?+hY?y?`(TjM>p`T44_l8=gkKD|l#K;fzR!$Gf4Zz!KM7e_eqm|BobK-#c1vybjM`~_(MgqMn>g3N7IE_0oSjH2c>)kb5<1vgj7|5YO1NEhHC1S zer3kAj6k)o(3qBSP}}5KZ5Xye6|#^`i2_tDw5CKCDi0$th7!W5n!z&yTS5YRRS%(1 zgeWpX7X={+#W6`LY|fRc4+JeRL-PQAc+r=SdWBHnLKC=wF2GOsSOEEODj{q}kW7>i zJRu4R8aX1eew;Fus8Bo%uQn$^ohpaWPcmSTS|EiiN&USySmv~a5{jiTAaLo z1~AB?x?>f&Q?-tpW8^#x`*hTx4)th4Cq{6F{kQYEjsO0htN%xllyc2tX|=O!VDZVQ zLT$@ol!t}MpRapf&s=JAv2E}C`};Lb)J{}QR8EvlxSYM-lQDnzIwZx599?p3Tx|e- zF)mas0OQU7Ah2OMXk(oZF=fmPmQ~%fzUzl^3d<|2YwH`ETR;ek;RH$149oF?D9MVd z>4s@7mNL0QnW0i^v^u@PXfj)@HatK`R9;^DBL!0|l`GYupI^RyyRs?o?d~5Q94VTr z8=$9KFbD;jm1-<`fBfg1 zc){Kk0Z}earBph;J9-4j&@bCVm!*q#T7fI7i$NZGf zR;ui4{>$H6Ns80k4bR=MwMkP`XVP{4(LskY^uzk#)N&Z7M@N#yASd*yRW90$uU zii9glwxhdi&}Ylgd9a{Z&LE&c-y_;Gj|9Z}Li{K|fO8oaxcXA9oqV}wL7q5pFQrp~ z7*Mn?LHQSs&rsh1^(t`gHz~N<8}V6<4}k}sIS5!I4-oiauq}EqoE2%Tss@(#VpZB| z8j4*~!%&O4Ho9G=DUh_dVbINRW?IZyxKWWQYPp50Y{cjrJR;u=5pG0u(^$33!C`Z( zQB87r$k5(JCV9xoLtH}AS^HjasiAovRK18jLj5`I@yVy_aRc~?QhxC`$R%32+g_y z*)9*%h%QPN2=1ES#pRg;?KB_2LapOE>Hp+yC+z=+{Ay8u&tbas?nqe6DO)Uz(q2^? zekXLA*P%I?G^-RGIc!0kB7?Zhdra<4Zw@H&W3v=#kjwe!4#Pf^p%d?)BZG$_AhM*! zXc&m%wgK}{oW6L;_5^QE3p`rmBC+kn=!V~lJw~Ng7e(u^6uKQNqUb?hNo_PQP{7`% z)iJX92B~#}s;rR%MTQv#R3;s@zn51V*oKx52f$GuRc5F4IjL_B~p7Ate?`lJvr1#X*-6G7S8zW*%G3s6^3v<)(=SZ&`K>mJ#2n zKI5hn;c%vqe;AAOVOmoCoaOO_aj)P{?zcRuqQh1?{ zH~SK$TPjHH?EB(ZYo2Wd1hQT- znZ--ZoVLt<$7__C&8k>Z8guY%=c_N}mJI8{WhZumI58QpU9x8oN}3Kmhskzb1SG#< z2gys3C*)>>Yj#S#eu0DyeMqO z*OO304wUP-4Y$lN-*2+Ilusf@U>=d;k; zq*3%hCz+t$niU{dQUWK9cdoMtSg(Ig7@$nypgQshPQlrmz_+HTS7m+n3g>?j#)sGyOovQr8OwzVg&{VHHHTY;JfQ_xT@<409Wtp!l&* zUq&ChenL2dweMTzjHHuw&y8(D4lOHfo+fQZNoSS@Lpo3^>nKHDHY1-ExL4x`Mp(Y; z_{eA6`pgiNT?2BU90y`4ER`3bkUE0gn$PG6$t%Dd%JYa>tN0Yt_xmSUlZrw%=^JXe z5TET2Hv5AlNe;clX5P`~;jy`Njt(CN>xaBtFP;;T)Zt|F{&B!hLxJr%+d%% zeUw4m3#ap|66v;55HJUe`(QW;1(Xcp$E9s)Z%C(IGswMdWCKD@ z62w;OV-$h44B(3=V1WX$3NN79-e&MJT)AL~IPd*r3ktCnP1*fB8ZjN|(ZlCNgEGgx z9BL45^E)#o@&es_OSe{OWMjk%xILy9l9l6Ee%l3j&(>?3k4@>_K&U!5lF7f9VqM@r#_PJf(jgJiHBnA zaJQ{Y(-}Pk$}y;L%3}X?>SmzM+<%J>haWRHl(aNjbTYwHoH)1Ma0uB4ehck+6FOyO zj#LO60k02fTB*I`oTbmrJhe=p=WT^%@%uLum1swB4>E@~L3{uS% z1>z@L>uGH@I}CLW6R8yQoWWk9*KlLZ&6+$VQ)+m*`=$fsT|Q!zjqe-!R3-(VfS7Jj z3MZDCTERISt9GE{5Rw;t1Na%k930@FvE>?RmV92EhPDkRx(_Ep1`*dlzqKpkJh9xH zj#@Y;w~GVCvp6&XmRcKFSW;T84%81tIn8ad%KJm3(zqC%I6T~CV(%c%#|-{_Kxebs zyd0Z63WLZoBvy@CV|&wm83FYiMn6NjrAZiOop$`LdmCjB#d=TM2~z7&mMuOuR1zlM z%U}Us`3fWkG8S4Nlq3KYHY77!{Ku>V({*}ItKz^JS~7(c8PbAGmj_zX++eB1m)6*u zyjsdosd8bhb!X zttxE5nNas?!*RZ(Qi0->hoY*hJw6>**>Ky*SV>sjXe+@C|f>f zeAb^Cs*xgdQ$_YD_OL@Mn`AV|y z1q4xbOyRg(vcyQROU*5l&vcRoul2&C%m#b87(pmF^!g&zm2o zJ`gKpEl<6ds`Os3{o7P0oCQ15{Rf|BBM7`MkhdL@ox3)MS9hm7U0AcqYuU+HQFvOc8n3n^(Tm-=(Yl;`lU9|U7AtW7a)&1a50Ndh%KgGu-Q7Pil>0C|$ zK?&_l4eN30Gpc`Ak2d&7&N9}r9V%Q1ZSHJay&{b$mz?2}me5Cxv8MGcwOWCJoz^pJ zp^mtX!&|2V-YSJiYc#MXl5G~LDQO-)t`p37A)QBXILE{_5+JRLeg+mJlBZqdg`P8c zJuO(*xtB@;Ggex!hLi#81q{5cSN;E`SXm1?{%3C2^61q>)q{LhV1Fp9A;B2^c3v%* z&kk0*pHHOtW~Fa>AjrKnfwbwi7KSQd-c*-YXa#f&3=DVs@mh@23<7P(_dP1M6A7-h zblf#wpe_RE1=&vfwtGi<@eGQs7d@Ms|HjienY1(x3-Ho5bTnFPA2M>{xc?~8NfI!w zW#dia4LL^FaAy*E9idniJFjQQo#uJ7|Ksk+;p>RW)oTZ>`;6F^7G%lNRC%{$C4M>1$n;LxmJA8S z}X9n&7@XkN6wk zH80_^k_ML-uiTDmt-FXiSlixKrvlcvvyRKYyAC?eN219b?ueVP!@2z&&$>2%<7_Eqb2RO(0H>t2G&2kJa;1q=-Z`@2E2r=s+UBC^Hy%o< zeYUZVyyIbw6g_T2cD^~dVrl4;O)PlU&F2XD%gNhH} z_b1Y4*pSx*i3q8PDcLI*)wxU+!U4D&Zcm&jC?A&Eu!5T#1n)YDwOP_`pKTvt8+8a> zwrGvURwkAL&yOOLY`#^AaDBF@Mq`O`!Mj_NY^7I%CruHQ(jH3$zZAUo4)g4V+8)i& z_k5%Q3_EwYXGSw}7DO4nPevj1*&%DR)|R+dIuBtGsIA(ZsANlPX9JmE9LZl&w_FyW zj3Dmp#o8IousT1=G{x_MNyRmq>>N|{1G=7UK$?Q!#`x*{>Y+3{C`#QII4NT@f+dYN`ZtTULHYp86#ugo_H}Z{ zz-NU9OUa+X&%RY^PRJ;4-Qfc~&ZhmtoOhWE=eV4KEyKZm9in|h9KgK~LNs>t{ z>>sBa2u8FzSZpFq!?d75oCy}zk2CZH14bQ$D2I})E>N#M7X9Y;DHmUI;;Ejkx7r}= zPp>|`mu`%624>}jD7@B5R_+S5WM?!9K;&tTuj@acF99;a(Ui=pz>P>(wJh6OFxt@7 z@jd1%{?jbRGzq|U4_=e(mM;Hn46Py>RJHl+-T(wHuLG}0x$n`nYEhVCJ)0eBs??JK zgj2ntv0_`28}xvaDS4Hl8xS6~Fh9*~mHv4!LCvI+3OmIY&Sr@X| z?VCit7IkKwxFl2aY@wpq`gl+%6__YHf}SKg_M?`k#OV*K@L)W9LGu3a>XkO z(TVSpum7+Z^87tdVxq7MBa2oyL`svK)c0Zbb2)x*5lV z1OPXA2;JF#sygBCsGV>J+#}nzrgm#;Hs}O<)9h7(X@nKIwsB8xyf!U)37L<`Rqbr5 zn@i1yxWTcs?3$2`Ofy8GKVY62Gm-S{5Qrjdn`CCYP(s$T2MW`l_yPjdw_Zw-kJlp_ zz(;=LEoXM1UNT@cQdExOV)N#GSqOhb*CrUV#4WTwaG(lT;#C@d-Lcrbaa+|}sr5A9 zmsmU4FD`PcJLuX?d9lgqxgwb+IRDQZjDua-Ec!;m*%SDFf<}%|suZ{HelN%(6|hOR zP!^vFb7H7Oij&& zfBCw7?W!7T~i}DqawpfiCd8p?grf#H#YT zy4X`YPb{&t{5sFW{-_e<32Y2E!6EglT_w9kC5uSx>&0N-;Qp@QNB)Q)XfhgqV{tE# z1#XSV%cHB*fQAf1)wk>{6@Qv2^S7mnFeDkukxe; zQsF}32LSK$;g$NuRuy2~K|UBvz?-7F1z?Ni8qO=dOYl3f)v-K%tTZ}5q6dj;1b11A z#zYq?*#K35!{M1)nfNLKaXYO0K%kCcCuC}Pe?_Vj=x8K9&H3+55QU00?}^LsFBtX( zadnQ1V}p4-H>V1Xc7cOYd9IXZ|B({pPrelBgPbdkx5wJZHAewyR1xP#a&PfnlhtCa z39kwphC&lwW`OS2ctf#h7-MAL*Cd59y>T>B#$IKBv;-J!p`s|{6*k%RR`5@kWWC-Y zFDp)g5MMcKytKTmi=~!)*A;IJB>&RQdqn zNPB?vD+>alUX7B}az>`Pe<*@Q47@j;pdXX-*ifiAdunqO_C4Wu53}4?>oa;n<>)Vy z5eN@38d>a+HgQMi1}za#qTf@h_s4&}=wG#FPXb4%o;RR#N=nQz4#4GbI=b6yA&|gR zH~DgsQGz-7JOFcT1(&Ni)Y5Aa7`O#+co8_JcB~_szgLmhw@0a}vSFL)_FC@=!XBP# zXV~mE<%apQL@)lO*C8)8FQj_7oyL4cTUSU`wsL)E8gu#6Yl!8S)_Q3-N<=#TOdl0;BZV~W_lZY9Ms|QsU5r( ztXaH6HCoW{hmOXy!aQ{o#kpx?_l;kW@GxF zsNpbJ$kDx01R^4AZ93CYh}rNY0N?Sv*VvY1Y0}iJ0Ed4y5>W-tDbrHP&YNC>E$Gh| z<6(^~I-jKqJiRF5UY|CQ-)wp*^`3P5PJhciw5d^Rf8ahu3)R%Yn-; za;+J-JAhz1_A3@i2+KE(b-8y3d)zn|#ryPEepecoyy8h9%%bj_XxI2Csd^~P47Nw_ zoFqyw!DvDHyZXuSoE;!u5#+P0Bta$xN~4ud)DN*}Uo7R!Ul^ra^$4DZcQATz4yT|uoW6;8t-DIJYgLds-J zZncvAx@Z;wCyd^j*p8PWb)Z^C<98t>rZGh z6mogbXA}Sul?CZm8XNJtTY!{6gaSA~;yY-8!#V3N={vk7NSO#>q>iPfMoh6I82>U1 z5CCbDtgounuoO%S98n9I@fc^H1ofe9NL3Z1E2Jg8(q$ZsmH`OFCwYn7k^mpVKH!gn znk;;Sge*`1dE#_4x1z!ljU=HlXbM#<>E=QpqR(C*cdkIty$EIGejc>T=h$$#q~&}{_TeY?lssX= zqi{I98rWvZ9wvA;CkX>@kpR6Bgh9R9I&Rd#V4@SRf~3Bd>LheSNjLwqE&!W_wj@s$ zl*#>MOgj|Hm0*!R%P=^Rt1NHI^~zr0f3}bf{S91D?bVLTs3im<1Z$9UG?Qe{Vo8!h zQ9)@WCP8^?Q#=%!)VOKY%FI59r;=Dk||ULdwuW$IjrFHs{l)a?jF;?;2N-el{mh+y)t2D za4-y7YZBx>{yoQogTNw^>yA_Fmx5AHk@+<9U+Z`0b=;=Z9S<_>rSL7%6y&n3IUXzsi_p~{r`9cr!v1d&h~C~sn)&0HKafgnsrquN zCRxKN-U`mHtO097tlHS3Cy&GsN|+9r@!|HaTki}p2Ua3cYalaO)(zO~qL>h}FnzM1 z2ZX~3=+qE5rA&iRQFQ4$>vu)DD}PhVqL#%Y)D(k$7eV>;-+*_~X>){1IMYO=nK>1n zgoH^Z z0SF{yd3o+`@WA2$dZ0NqZ(w6I-;k7GxeOOl^Llb*pMqDrLU9rZL>w{(;d;y|$Osgg zMrBF603iimeSRzx9w5~~;D~6tA;d$f&=-;LtWppx{8S(SwHZ_R+ZLYBR;7SuJ#B_S zlC~dy-tqnr+=KwUn}$yFBh;}2DYx#GCu(w%1p>}r@n{s(sOYT9Qc`79H2{Sg!0zxY z*JQgM3Z)>^C<6ZonWR(q-mj{l(Zb}wSl(apSS-w{>DW4|Ax(#pGu1dQ%VW zhuKQ_pS6XfDPib|S$ZOq!J|yp*8*hF_q#9^M!*hb$HqEGqyk^x?1ZChdTzT6D^Q|~Y4{dVoW!Ir{JbFa+n9vpARCil zIQI+p4NmsWY;U?f>4C6jwdPT>(iyu2%9N%ZP7`ZbJDE(a`IK20HBbAt_BILvNw4ZS zBy=HRaU4?4tDJD|{qIVXicI>FP$~OT0+Ds`)$Abu*%!<+e{I>ue;OXT>V7q#5D1B*rZT+5xxvtK(DVw5*cc z#8$#2QqQ~<3CfZCR_W+Pc=-0w&SaDNdi}nY#oP0ulf#t0B8L_NxRPB1igFX$@DoT~ z4u$XL0iTagoNV=h<(kFJx|%yYHov>-oiJJ82Hm;_g9Ri!u>F!WVQBq<9B}6Be{t8r z6jA{vC(15Qck%MspWA*&+M#c`O=fS}_g%a*v=;aB*9WNOUtvoBb0A_H7jU+eu_J9f z4zTeE%YV4tXdB9a%}rh^o}A4ozzDv+81(Fv-4s4qrG$1DmevWx4F(8dn9%39@W zOyK>C!7B!8QSoXOg#SVbzJX-#O{8w^2>Pj+br0>9&#i6UrpSY2f&B_g9d8rVP6SYX zukBpk<8Sb?VEXdQ;GdonhS!DVjbR|cFaJcn+qxKb%Ax(m4X$)tP?_qtZyKnXGQ}*W z4|i2EZMZgV~H$XVa0S)Cc4 zyzm}`6PcGYVvPKdH38Qm^X%*U3-?84g8ATvwEVSUZ$NWN0Em*Gj_lzt`}|?^Y!8z8 z`Dy*Sm6`eBy$BaFFMHS=@u6Qc+kERxZ{EJ}<0t^PCX`o3ZyP*bnR?`TS_M$?Z=kHb zyz>_c*Q*Vv_?aUg@}gS&^5oDt=5uq6pPxzQ0ucV1nMFWJ4LBIUoFgv%1XCz~tKz`q z#Qu`Yab;j3a4>nKq;x!e5A75>8&fE|4Dl{S;K8Jk(w|NX!E00au&J@yIT~dJ`XCR> zPA)b+Ahe@(UK_)QjSba~u}BN(1b2r`*;|{kCQ{zSSU-uuHlqxQlX;bcsdhjO)`|2M zK?A7T0?=?W|AUKWlPE5Oot5j=ngDnDt1ok|Dro<*_P4rywuU7>GV@QMp{sZw(M^B3)5F)oNI}dG+2Ot4M=TUFg^}M+-uqz03wfP@f(jL1M z3Qdjy4mY`ikyf(M!gbAAlgY2(T^IgU(~I&F}uUkH0(Txuc%aKC=M^#Ba*0jxihiC3%d$^nXlzj!NRe6yD!tHX(kjO z{PRspm%b%@@!!(%JjU^l;Ke_i%IA7+8*SU^8&SXi%Kxe+j>#;=6R3AMXT?{6gy3SO zHeZyIkja*$vOPh8(c4UaMe3-S|W=e%$eyxX}CSiM8u-D)JB{m~1mKCAB z5y-_g!~&{<9(;wZ5#K>I;C%Kf%lMQ~8uT%CzaEP<2){ZSLkyby5b)bC$*O09 z%B1X^ghpS!w_-hOzp{abB9pG>uvFOl6od{T6Zcw*8&kBP3M@`fF81j(BJ>F85j7;E z7tuQRaa8`3=Gu{TvL+p2V5qz&q&=<1=9`d4JF*?UqrP|7-hQ(G(3afklK~uTs;^ws z@=q%UM|>c}ZYcN;aTTKfXoa$00{HK`%G{Z@KTGuPj*flrRq#f}_|+vQE?lBqvVV$t zIcj)o2%=Fwg!?>i-G$2{Yc+))_bqN@4MzD4)KE%<*-7@%OO>IL0F{~_ed+rvgy%0~ zEg3*&O1IQhZ%xVp9bj)lim)|<59MU8t1xrXl~JX`R7cD#-Ys!{U}#<^e?$a9CDAl( z%C`(QjO_f2@bV#0*u?F?4@#s@Ah}cPCvoIgwNJ&{hZVxek22|_C3mwq+8^2Tj78IC zjEJ5aY0^cR*#=J1C-I88bac^cCysd$wscs2o1uJtHb=LLr1(g!u%Bu1mTCTV4u~-rO^PPyi(V^*y z8+@{bSK<29^Ln}Rj^dAWTPt)ET9*Kv{9)M$q{!ledAYaL&hYjIH)tm8YxIy(g>+wpv;g+pOKJ(o3nSr57&%q(>rh#E+eh=IiYG?|y8JyqsN(sc z1hD02l>QK_bw&b-afra{xJqF3gvVY_I)AhNj-O6==Mt^67cKuu#@J^(mt_QHfo}hA z;-uH02du~TO6v^lv>0il!HzSMdN4WKxU?has1N*0PKKPRlf|aYGbH53BSKj?!B>!5 zYm<;(2hYXuhhnx_Sn`huXB6SKGyfQ<;g|^^AF@SS+z>v8%tKY$4i2}RO0PHsM6x`n zDG)I7-r$*Y6>!!2%K0}SF$XEw>jqqb>R@C09%Ti@2(F8_P(ROenFW(0~bSaW!NNK;;28PY;bhoJDmV16N*)}!;r#FtJiHO%J}c*J9QF#| zo5**;m)+&OMpZ)iM!mzf(j`(HJjdMIZQjMTHvfHn)+@|Ykc5Dnb z0Scfm81mMDSO-eM;$U@#IG0uhtuOPPMQGh>>%~8x+ zs9C8|fUPmf`|L6zJFn!N^g1=TV70@_m4rre^y#|iPu36=$!^VFII0t^oV_>|$=o40 zTi$ZCSL5znk&<>rm_2t`-`>Dt*N*i2*}kZkfIYP#VewWzCm#2_&4wv1y1S`I1ix?# z%#;JXj)%+vsKUx3T#0P3_ogWNRyM0WvQ|}?lhF{U1c@&H4tP&W?f!=Nt`S#DUQ~3= z_fGnD`|9o!F+J^i{f-DJ^$1FXk_S$u4LO@@Ttg8iumCb{cMfq6(GvhGS$}i3VDX&* z6;+2*C3}}sWm4WuzAi!R@GVIi-J&SImqE-grpILhxj6+`{Mdow?n*|hbsLU3>mh3x zwXAx0*V?@JsG}ZIRQaCAFO=yM?KR%*l0H>Zi08K2s!9pT%puwBx<>bEPuu=z4k3A+ zV%~D8`EZRFH%!0wK!KN=G>2;q2|Xuep9r_%9P5q`PM#V>-oSvqvt|(;e`Hnay8{`w5xxW|0&7k`jGaWtw`sgV zl{l|_)F9CUxdrq2ySxeU>1VSj_t$e1#79R2-8j!h5MS3KLEfNStnBGV(d?vvDRH00 zL^MI&NUq(b+6AtNcFjb$<%w@+0Qp;lQ?L!t=DegB)u?ctfZc5{m`xI!WEC19`I8}xH5!FF;D*j=o4Ym zTN+7iH(xrRhA_qZvwz&m_AwxP8LUa#_67AfKp0yGsqKUGEuGAoy#GzkzHMy>BZ`P&X)o~^M5z?W7t1YS z6^~$yEq_zn|7C3b-3*lYTNSZadUb>x)Ni5XICCwy+g-Sx`?gnEJzl9GRhgqH)E*n$ z!R@6S))cjJN99B=t2t5Cr&^(vrl#{|sF+8$Wgd7i=qe0&MUT(APrbw$&XA=zFKXqyO6^ zk8ienb34g2A2)u+w(FwcpMTin|K8DpGoJbQm&P}Zet*8j{vNJVoafg~EAn<~tQ+?2 zJU-iY=H(tgf;SUKq+Ppe^AFG;ljS2PG^)_@GT25u0skiMk#y{;;Gl9pLHW?NJD(5;ukgoA$SS`s!i>vFq!dt|k&O7jaa-@QrS)Ll+YAS z-o_X2V8avXH$6PqCMr>!HdPArh}Q-rW{yN{$dT0bZ>Dbb zsbJ=E>AEmYqIYo!F;U#sVKgx=LUkELB}J=yOE*K-)T9L@@msu6VG#K?7{n-+vfS>| za|p97s0yQrAEI8Bp?PTaC2!AX+eMXo=H14RDY4!qeAEAp`ZQ|#1!LY%ozS60<=l;i z$;JD9r8vC3jU4XyRBtXYz2Tz+&gu72OB;UVt~SO8vbs)LXYT!?`S{uYhsE80Po@Py zgbdM6CygR~5@;3cVj%Pj6N9S8E>a3O(M~O!FD`=siMY%ShaM+U8!7Hl84Th5t7RA< zf-;*sNCpt^DUL-@kj1nphinH6gCLqST5X*-zOx<`lz+h)h^?6(ImC_4gXI;hm`62YJ~cNP znHY+dWZF|DC98Id{HEfSo2&C?zg&H@Gq$JBYJ$3|Az@3%Y89Ay3hMV1`vu8r9h$-r z#2x+XLy!SLa9zy)d=LoxaH(bwl=mxd2n|uJEcp(j;n8k9fFKrTxNNH1PyhQee2{7n zntA$u8_uRQMSkU%!HY9ij@h3$xKqsBJymT`K1zhNN3@v#3Wi!ER)DUix9<;@lM1aV zD?~L|xn^{Y)jUL zch+BgIe{Ev)tNhnf7KTp3SLJq^`C!F$^BWO2lj3sHH%7GrRc^vT?iAiUr8Qr#8K*G zca%;jPaMXE@lwZfU06J0ZX9e+4k9=mojZ@UT2R~?JD*hT5gmc3*O!~__>CowrK}?- zWmrDATP;3H55nprE)+%B>ew^5|MClom!(d1eTB5&G92*?4TK9dLKg^){DUH>do7%V zFuL0q5SIKbu!h8}aY02D?8nA7QYN8RtV>wPG$HDONHASg&TK4QOb*2+CJ7rP22T3C zj$A02NRbwG1S9QEjNL4eM41kUnf8v!xABwEH;fh*lhc2=2(w-=ppr#pCS8Gb^-!c9Q32jc0;ZaTKqIAtquHVYt1A8=V5Jz` zV@{UuE$30OAEaFVW}PIZi9-}B>w^X-LcdXv15z?p22Hv%%Hh4@JhLx7F$@>yK-_aN zoLIOhaDbwVQb>&Y$!00&RV-PhHb5Jv7~&b3?n;=KNniWO3Y+TsaQ=bipiC~{aZlU8 zR6$-0X5E<#DY8-lTG}mw7Cb?5m*)Kdx&pXG;c&j9SH-(ligF1QCB(R{#+Y^AGw7CK zy^@Rdf{gOh^EEs$cKtNr7Lr7R_@ zG>9OF4%m>o09cutWT-C{O;tO|Huq^lb5#`)Mpei`2G?*&4MnamyxkPkpU(Rg5`WE| z#iw>ZxB_NBP6-54!~_eI2J9VK2a6dF-K4Wz-7?}eTyiB1o$RcJoROh41DP+xf~rNB z@ZKdEk6RVR?K0yD5>)p`oK>|{Z+IhQjVci}Pv6iBu?gMTu&;c_Cn0#7c-{|xOZv(& zbj7W5FAY)rPI}x*h&i=w{>7R*`ywh1nAw-MGTEJ-v8MWKE(Q`?Tn27fDCJE1 zSQol`6g^VWnyi`zM)j0r=}-0M;ljtd=*GHp#r0FZoo6uFKlWRxoYExw6)D}>q%>u~ zjr?lk$W`R#jxeck0<+#G6y)N!RVJHna_l>X2^%1${Wi`Y!}UE}Xk+%WP0Z~N3DJxo z5rQw0RYj?JrK5FOS>vGtXyQX zMY$^Loxx1}Ax5G$23X#Kqoe(aJoV*4oLwj@)9c%3xh5Og%rBYT{~X$~RtVgsM0}HW z(DaGq?Qm`S(*D0t(tbt>4$c*GAPM&yI0CCtsWW<@@_vQXw_tq2f#OH`SfBvH7QS-L z$6%t&gd_HMLgI}`O@kzWZLG0YHP00Ik=wBZy6Hf ziGd&+G7$a^0!Fe^1CEnxmlaa%1Mj@oMk?bPC)+Zik$qHQQdBXkJ?3XA1EzExqdl}J za)25@>gHJl94Qs1p2%)f5z=icw|06&E5iUR2qF=Vk@A@>6#V_y-q)8|4Dk)D zr{hbXqSX{H=*N^cAs2W3?c<76uLbHU#2K!`zD0PS$4JOjDyn*0PQE5R@Hsq&=XiSj z-91f%Ulu~k>j+-s5pS0w>f=&8EJ@)RKYkGpxK+c!fXHvQ;5&Zw#Kx{C|H6C>e)EDs zmyb%cC{w{r^Vo5*wVv)Dv0IGcKhKFnGD*LF&*_mpz2eHKx9{}0COc<1%>zX+x>m-D z9xK6UzyLy_WO6q6q}NJjFrXOKaaWopg`1(?T|uF%8lk58WYe&684Y**;`M$QUP-@% zCw4#a&&u97w06a8tf`upf!3Y8fnsre;|uc}`CKnkrOM;EQ@#ie|4$ z6zqFec@hi_cn=~{m!%qnteM(7RpA{~Pop7b0t_Xoo`?I6?;Em~x6KYqMYGpGoa9o? zv~IEPBd0zdoBmFnqx18hA9*lHvm$bMKOiCQ-fbcU5^V)O!H#5$0<^??h!Y^LjFE+^ zWGP8vmJOOkDU$A}^cYWC<8X@v9K5?LvVwpufKvrEyq}r*AP_#lUyXe^fyngDE*|m*7hl#hQqU9#?wAfsDls z$OEF?K%hV%HOdSS6bML@$Vl;;%RC`4Euh(S#Q+R)XK+$M;kQr+ z?@~tMTj{tAt@B`7$vk8Pzjv1|m=#M-0EMbhoCI`7il6~rqH(5Kd@d3KHg7CkF!xxr zBLBoWum?CB0`lI+?s?Vb>D~pvA8`>K%nKsrqX-Bt99wOnaq9&U6k}Y6#fmp@#q6Ko z{f|$131~hA$7h88A(Yj8)oLPQFWbOgmrzqA4^)+l-ZC^IPP-7EayA458d~{*hDFx zp$rl#r@Bevp4>-Sa&hCDdK7tlBp;Ha6~3LOxh=H0hyAmr(GUm(6anarZDUm@R=TW_ z-Jt&J%R@$14v1LS@@b!aj6?G>)>V3bSN%*_AUbuc8xa<5_$>?<7e^ltk4GoEl)sMx zvOIrG@_SNZHLhxfVt_W^ZsmzSDUGjTt&BnGQLES(63ynK#sfW#ntp{AGv%Q0-Iu>k zLlaH0Gg4?c`kltcDj56q|B0?nuU)T8zpJxMSRgu;(22trC`UN??elmHj!-b-cfh9V zx>;<5Vx@_)IM6p{ahEl!U`bj!^^{&VQmkKJC!Se;oWcuck@+7c=*7GT(KL9Atjb#E zXTv7!3~T7J-re)cf#@^|-A@)$T%<&8wH{6VLn=`}FBR8q3+zH})-6LbfDzJq@ci`fbU%3Lyq78(tJ2ywPjM)Item%shRtf-UKtGLGmYKOV=bTAr3Nn zAoywuJ1Eu=xs)ML*-dH{zV3mf!P-$b0F3| zz#%-2)M3d4Ino&{p#^igO}FY2ac)*`CgH@;Lg=ai(!J@{BpqacG}f+td!~4$URHp z4t6+!afLBZdiqv{5{sr8Zju^~*u6n+In0aheRwG9^;$71EK_Sb`=4V6`=@7@scAo2 zVaAD_;XlauVrTg4lvJW*R#R4I%cW{^U`3Hq%!235#X07W_YIt)*hr>aRM^CZ)i9zC zJ}~_K-U%I6S@0}Pvc((b(u4p)@OwQBVMDHfEK9Vu;7GZ)$86d3(fBg)IOz0z`iWaWUp*$)t$$PjrMPUuC9c78yghI(#Yk3LTRm>ff#ad7&DtJ>65QJ&-GpI9 z*IZJu=~as0}TBS!^VIssZ+VVNol^UzXE7=f&n zN4#@BG)B`W^vW`2ViX@4%}F!dA@VWFX`O0PQ~DUW$?=Bv?P)Kka?FcQ2EkP9Kon;) zH0A0nxk*Ruy~EKMM4-BOr*>!i^eeyuoieIKJIBG}uNu&W!n`5TSQ&uQD|Ms{1x^(; z^GtfKXc)};u@Z1NBhgTtl2$tjHcL4d$}yF#yIZV)G(k$`QH$Zc$pY9WD=s)(PfcV+ zh$tJ)7gQrwft3JSg@RZD@xE4wgdNOvc#F(pX-E>~(dFa;SHWoN7*lP`i?QW`Q^LUn z4|`pq1$WdO4Wt*KMOiWng5&PIEXeLLi=}0ibmnu0_MyuhNudM{Sozb6;|f~?Cmf1K z*dAbm%y`(~G(LhZCsARbizzNE5$(&yM?pIClZu>)^zTw;i z1=QmtNz%&@dthKY5ylD&6zX@SE^06JLtb5{S=#29Ue7jov|GD8^02qc*3ZJm(TeWt zBg)cPI$Ii-WzP0O#-uqmM4{(3~pk2ae!h%Q)q1}h)A|J@2%{- zH@Ki|rdR_`sHz%{pblYq03LqS zk9`HUvF0(9nv&VPnaR^bT50W@$>Ngi37x@xU1B6HP3XEvA#LCXgv%ok1d8>vXXm5! zv=LR(UYs=&8_j^}ZisRJ@;RZivuOPof&j+_sIw-T5lm0#))CIvgp7I?nh#>rw9yj3|6F@J0jsTEA9N@-iLK2lkUJe+dJHFX;y|&YVJg4MkrCUc};8t z0v+~L9gNp^l_M~_jn7x&mzAPjNOIkhbNWAeX7q z#D}qWje@E+d$g9k8xyfpf2L5aT#n%Mp`~_eUta%qFHo;DrM`Qr_qA8`+w*~5ktX;J=Ity|cra7J_ULL*r`Q4W?A=%nS_vyQ_AuqXue0cmS zei*rZ4|!a=GV&wRs-1@h0Lf-Dc_yDPiPzcg%^NpaKEB`f^H&>H#<*4=?pHkUKvp-u zSXF`~XOy?-cv(K?oSKw}&#;J*AaW~Y?cU++UVUeWOCker(wmpZPJmue)##X#GBj<| z0PFQoml9z$hiECoO;uaE+}?7|0xh023iVmjV6D@_Q*t^4xf>X#4w&N$zM=5`u$(kq z!@mPz9CcSIb7*rMuDBz)Fh(5CWlM4TsHju%MLSaQ9I=YiB<@W1)RKYxlG#FH>yu)U zQWX`oRFWc@#NR}_6GyNpp|emo+Nge#B5?58Jna2E$7ITh(XI*mA z;VdGHPP&2%p}^@>mD+5{sb{|InfO$-!FNf>KVtdWc&k!p}&BXwQe zw<%zW(o>pHv7izP77cD4x&PJjASyT=sydPa&IY=UTn;oW4aI$ij%eQ}vV%r;9v3cF zMU0G7#<_TRazPS?0N8EHa9OESS7U7tt*V1`t3q7XFi)dVknRR`heee)IINQ= zX$44uiwsqA;{rR-O@YcF*sRgTRcDhje9&w^x=OINH2_u<@<}jI#ug4@MDfw0O{RrA ziVG2kj0PLpO@_pt9^{{Na1qAM&>|(N$SAcG5V1eV;)nt-pd14 z(U2j`B)q!($JkeZWTgfqbxlw>n$tp5j})$ow`XjkK;!;-wthxP+WNNtB1nKEgFGOT$vvM+e-c6m*<3*K+IE+CLkk{NGf z*`w?~hZqRZE^B|deM-V;jfO9Af+<-(Buh6TDh5udMY^(_8$Z3&kz>Z_J${Ep`~S>!7|e}sYvjb1%`Y&;TqJK z3hyly7?-4I!n5(UO70C&$X(gV*+-f=AXI%?2E>*s#Jw` zqS+mC^>UJ+sy(%>wd{ZW5()24Nf(;Ky(tB(yQ|v5)lm7?B_chileDw$?Em^fzKcRA2YB*=XQ9J*5oOYd022WN^DOsJFvN8=nNKEyx z5j;Zer_|aga$GO|?k%NJqQ42`4t<1rk-Z`_$v;NZtspq*Ej4V z#z+ruH*g7ov*(SIX0x;@9AsS5T;rk&@c%dnZOK?e<*!l2np4ke^w z(Cg6wPXJvK#l-X~qlFaR4+0?6(gMXWy0iYQ(w~J1Q50ZCX?N?ERJLYgW~J)QJV~gn zSh&_JvnA+h#m=y{YEKDs>RBZ8UgG@ZXu>2wQ&ZOUil5{C!b6?{v?yC~_#>w#~I05vtzj*uY9bdQ4-wn@|&A1z-KHlk1bQpecdPd3% z+-}@5yn|ct%=v{Hbk>ZU@9y1k&Z6P9xxRTGpAR3D^KsA0?0Abm(X-(<>aR#Qj;)-; zY6!6ydM9g@2LK+g$oK`JDc^L7HargbavH!%A=jI^UEbuFzXfhyK;A<;{RWS3`~LBs zYge66DXZ3&Oo%r*p2bReW89y}-A9@jKR%pTuzSVz{RQ?WTEBYu_7q-9~;E zG35#$$*`4d@M-uRQ_^^63qjg>txc+2DsB9HCby@f8qbiYyQ_gIfewf~;e5vD%6m>Xx`Dr$sZirzeKbaS`a?^#1I%z*YD3>y$WTmB{q}H^tSIKaTD>9!G#! zH*}4jmxXg6Lbv>absI$8*e& zJ4{qqy$ABMGiCVZ1~`d#v5SpyOB`~8BN;I3SYuK1ayLB6=r#vX8gH(N`}hJE&ow4J zax|s6wvo>dHI*Ezr+8!s6`Q6!%Vu)Vz>9!hR)5ZEgIb!=d=8nVOaJgBIvJvvO2Cc= z6$ZODPSnB0nh=VogKtJ|*X3KgXU7p8zwxrvkn$e)j)nqQ>0X!)wJc~>I?yMH4NO;mZHVrhMTQ+~&4l~C73Y0sE3D3B8v|=0n?XcQ#ftFwVsEteQaMaH1+$8>mLsH5D`96-1 z)h4}gB+}ehD7k){V>6T%lll?yao{cEmdk%^3V7sF9&2oH{=?!5wJRq67~7|1nXrWc z1ec(I0?Cj(t6^XHNM&GIR}2SrJlxFFB*6M4yHo9162;3j5~ISF@vWWAbZWXXPEpi2 z3`^}A9%3>v=TKDPGCA7SY^}N?@~VJ}`)ZF_QBWMSOt)hvo~JT^dz&{XiwS|B*SVP)!)1$(uY6EJ%f@^CGbmD!bNk$&3`M6vo)CRSU}vTBIa z-m~~=2ms<6&!@5(i870YTupHR16;i-&$+;=u+6uf-12KycCsu^J&#CWz&x=cdd(vC zi?59g&J8?j3=tGALHDqOUV$ue;NTkkpW97YBU8Bx6*(aib|g2WEdpc|3g}nVwy5A~ zRyEP;fy%U^L+v8n+g(r5$~+r85(W{&GKfaWq-%vtiA~$OFe~up`UodmQ@^YB!rYco z=jZ5tVpC;yy@iu*5?is~1DNIs8@=d8X#IC|IE;fxd2Qq4;bn91VR&@*qb?RBa&upwMpQT+>~>WNYG)LK}qRHquhBfEV!>BPaI`rpd81oE$tJq zU8b6zH_?*eeYR5WKeMW&0J;6d;C3!+dTka4(=)aXXvvF8VP>J`j3^4qt5cJkc-?z_ zt#=w(O*7%B19aE|+JlW41g_=zn*|qjQik&U;!?T()`w{x91br6@?bt0+%G+b`i@wc zrM0Sdb>|6uA70peQ-0|8h?@uvDIo7b(Nvxa#G58JFAv8wKsTEE&n6~Bh5aQJ2Qm%v zNdw0hue9_QP4QTRf~>TN8P_szxz8if79P5pS~Au5HIt`3lQtsdq~`8F4;+dXqmbDI zwc8^abH%#5${}SAF#_7hXTr$F_)$U*XkONr9Ezr@Er?JR17YDI@X?YrJwT6)P^wM; zE#0k~7jqdqMV}N;)~olgpPEj5{uI4BK*o~l1yS24x3aM8ds|DVcf*Obxi(zuVlz)k zR;(4KU*URg?%mTxlC{olyFT5b1=#lwkddsT>zwk4%W6^5{WE*f1k?m@5=8|CzfXje z0R~17y>^KC_{S56XUwDiH*?vwnvIAbRh9a_$C`Ts|!vqgh|7=H7^S=LUNil7&DmNKDBBGP-!t{6asBh zvdrWfol%wqFN1I6KFJJo3RqkAnZ!D#QvcQtaDdvRZUBOUZ75ToJ7eLIr7@NEQ-1EOATP@SJ4a|Cjr&)I1OXL+6PmAkh{;f1{>Bm0WA@(WMv}c|0 zLlM@CYD&r`!JviBTdvjzCjD$SXj`*(&!SHfOV$V)!)q^dd9&r!G|J@FM1L@;^$1E9 z)SJC>-bp;|Og382GgyI<5v8XP3XDz<0Y(tll1$foUb{bQLL$i=g&1CGAjsK%L&QA| zZI;~`FQDpaZ--8Tn6tAu;P%|&O2eoGRmeoO`c*BLlCZH`q7LlfNYqjthzu*IEt+n} z=LEPs!y1w&R_1N%%B&xRp_&jwwqq^aL`p5$e6trtpP2l;L_N5)Mhv2~>$qj}zV97~ zM!m_B3vTuSOm45{exqh)ZZ(=--y}~WEL!lXxP5th7i4jRIGa~o z&j$RUl9seY&j&n$o9)yo4olBoI+cJ;G27eQdBqj1wrn#m&RsBlgUi^pB&ET-MC~)T za{^Fu$~R(n2+RER>H;Sh!NN{*GTOb6Fm1=3D{t<)+=}wa#Tc-LmfF<8o}FiX%^zb! z*QgsF>76LUN{?w_^eW{faq{Ndy9e;CJMEcrQ@>g6ym1E+2`Zg34j-!5X)) zt7U&z>hblnWkc*ULsH#y6V?ySEKixt^*o?Ci$1?;f^s$0cp7gK{tL3R+q5@l=R<1^ z+I6&Du(`{lBAG#j+x<9%I>kUI{K6ki_HaVnR@g@X}3@IwP^m7dXu^Dv-LsJk zr|jpolF5|XKCjcyA<1h<_B@c1>Ez(l&D)`z{swphzQ5p>=hXZ>8cA9^i$dSa@7}?r zm+70|+j?xm?C1I1-{woL0@3HHPG8OMb!j!{kEqxWnd|&~a(b4*cr(9x24S3{>~Goj zkR$V@mY$5T@28bN@cr->Hb7X^kb=pk3H#6MqICB^y6KmHt2}>Z9Oqj7KQnhl++3a8 zVn>@M-&EDEKXey-d#|njV^4(X&PN}ab{D_=<720i>6-RFX?8f7sbA?I8D`o{SwGE> z`GbmO;>CI(v>#+LHR@W8*FZk@Kdb5PmXS6g25Ljk1yFGcy9<;@6Lb@HQQ(W z*bO~s8j!~r&jIx_P&Y3ee?jB3fCmBkfKGm4Q)71NyI7yduLg1TF%?aQ@|O3!iT_JS zuf%1_SZ~R=3HA`>yUAZ$|C4b#y_yMN-dfb$h`D`(c?iaY0Kaz?9Q;=lMGR%L0`hw7 z*-j&dg-lrhHwNqTE5zcgji&Ns4}@js5^&@S&&Z4jtcoBRyGv1LN2xf7OtBV3p;PBX zA(#aYPA>Z$r`Mzypmkj?q?n>JSV z1548RrBP&B^JXFGAOayQrb}bv7Q$*>gOtQ_`@yA1u%aNi%afG|VX9@u=IbbPE$U+1 zr;H0JKV6rlpcmIdP7LVX(&ka4mb7Js0d6Hi9rz-I&Y~`_s8mYEZAsgVBgyzCq(YQ4 zH+f54j*q&X{$j(HAWNln@o#d1I93Mwj%I^fs)NhQlnZhyEvs9O<|$Nm0BI! z^lcBB^n z6Dm}xQEiPmXVs~V$>ua^)U3r**R0c~U8fG`q`N!aoR@!})H}scS%d}*78Ri(bc9jF zA{DtPMJ=DAm2c6DAzRMGDv|uRMy@=yo_bRn%9NL8u>_TN1r)nD#ofvteEr-p^O>fH z9yjxNW|Nka9-fAMDk3R7j$$-pTdD(#y*h;5>|rna*v|nDa;R%6P0hNyaI-t7^Z`dN zUpRbd|HWg^)-!k6KL=Aj=E7N0KZkNmH>`1?!P&5V?&?MTfBYsSnDd)@+wYzwkdS*U zJvOPGbDiwbp~kv=?de`DZHD)D!(uPK)uJ@K~){hVj8FG9{15V{L>UDPiDJ3qu=d?7+p794i%N`svNR;jtOaqBygOJez9h voEw2z2Lm!PMxz7QJS`~m=pL$E7Gs<%2kJbIz$9w+6%T4e0=erQSf2m@KT}x3 literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-italic-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-italic-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a1950df86837672bbd9d9c3421ea72dcca4e7bef GIT binary patch literal 28604 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

    OAcqfK|iOj{8#+ggpcx3xVoJi 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 bm+6lRgD>Md-Q+7_e0PYr;OxwJZW4V5LTY-( literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-regular-webfont.woff2 b/.atom/packages/atom-material-ui/assets/fonts/Roboto/robotocondensed-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6ab5f06dfc63fd44806927287e8baa332711c2ec GIT binary patch literal 21784 zcmV(@K-Rx^Pew8T0RR91096+fw8~chHs3gX9_&C7te>?En9sAZ5r( zP%kaOoWB=CQiGn$x2jrOyPLB->Jh!P5ZxJX)L6tQ(XI=vrt6E&v}mpF^hR@PmTpC{ z`Aa^3^!E%(EbkavN*INE-j9xDzI(pjA5-t27YrV)%6qs34h{y6;~+4^0M!2}U|N*H zt-h{UdA?R2jxDSG==cxY2VJX;obb}A$%{sL{^9?=-@flpQ`7QMG|QxwCy;U&Mf5>> z=Lh~=?@xJKYw>EW4nYfAAQui|lDA{z!HLJU){&cP{Yx$-N=r&4fX&*F-~EfY17G3~ zDcHFwW7W9pJhKj!YmbWF12DH5DWYN#!ZsL#F<@0}Fc!%o*~Y3FHE746M=8=0LZ29i z%CL@$);mA6uOhrFfPYlS0>83)<@sViUeDd#_wrrPgD?=9&)s*d$uKc4r0Sj;pmH?Ij|bN%f~Ao-(DrIHt0 zDd*d-XA3Sm-5z*GPCjMp&H%gLB^)_xDej0R&2ED-AdS2g?gUVs!I zC@0Ov37e~}Qc=;CHWt;Mtt#O?fD|GHJdiR0QZ&U$BuAcQnDJ2<8w{dBiuOu!PMWPk z((aEMIZ8jI*mSY_)j$0&i(izVLOtOld;n|;G{6C2{qOG^-#PymKkyC)o@ivt`sM)L zxt6W;usF*gz$RQ)z~=vTZ|cp_*@>QT7d+9PUUt)p#(H`At-MVy6p#&FxHQWL3-JXw zf|=+FVaNhyYshNp!;cq2K#g{$t^e%zEf1vDTh`24$0pWc5E1c4jJf;%dpeA1R!nji zv+RFvX1f6wAVU;T+x@={R}F9bJu&Z=ngN>q?OtpMh6^ z2^xY8zAhT0aBv|o%xYlzJqlIGJKxzGcoC)lM~_eU$)mul!ZcX6GkV}VWP5QpmQhbs z)lgJ9SNA^JZR+V;3}!vcGc(F!y|Z&>xku00izoExJ!_YNZt8d74&rDqEHqU{Gd zGP{;Jw81ff6I|c}KYjn+2#O;(w$Q{J+gBXok$^-bnQJerLp>VMh$eH(4XtPc6D+i& z1D)tXx4ADzKL#*p9*S*b*ReJ%CT0a|P6VUD>OyOv1j0*R4u{?p<6bd|%d90;!1%-9 zg=?07w=o)beA^-_O75b0n%{AT~H&a6vg!QHedio}R=x4*zBa z#!=tw@!CXuD0zkEgL)5G?YWaHzlK{!wCK{KkItA0Gv=H)bLGXG4}ZZz#flRzL82rnQl&|kAy>Wvg^Cob z(y9#;%N^}Hbn4P=$cSeZk| zHD${UwW>`_vDB^(b*f9<*_We!4QTKhx-Mws!RH2cbt`B^Ye!S1qmeqIjxY=A+{XlBp3PRE+W~ItyZ;( zDVD}^9#IQg((*3|9yoZa^ck?=3>ojj04t^#vJ~v36apOLas-^<0zb5%6>VUGg)tS! zr{e8E2RhM(?u1yRVvwi+W~usj4}2)6*W7Z|YlrXQ0d1Kjqgbfmt1U&1fDU+XKu8dtrmc=ft^vUTq5Gn{d& zCbM*r>t((0%3cB7$-D4)TC=y7(-feMrx#vy-O)$qrBBf}&5yPTJoH{+{3dU|U&qT` z_2(p&A|O_I1Q8KU*Fif-4}Y`7>>s92ng1!udNRR;y@0G?@#It-9&reeDVSTae{%=t zsQqcG6|7pb^<-Rs`tgg+R!y%;=>+RU?9l-GgLer~|9fMBPVAeLAdf;g(LHYHE&^z- z)jM7e=xl52`9}Ja>nq4W@p$9hM7~<;=ouh5YDfERkSuUMve3N-x2^TG`ogz>HnuyH zv+Xmge;2*10@P2KaC5yt5*vZ42&G2et=4~W>&aT`j z;fua;v@1TX6UJ{?=)4D7uRFXf{=7Sd;^>uHFjq?-RN^8~rmstV%%6&0g%X+}s=lI6 zU^$0e2&?qo569GZ=aZvf&4SN;1bs-HpY22MkhDQFY}<=(ucTamLfwhG32xQ{7C+fd zzWpp8-b&Kl^(cRkvg>EhJ-lxvT-&2ozip3Vy;%7wx}vSU0l>U>Kohlo+lGsMz8o&) z)|S?;N9BU~H7JI71syVkR%R7=6l9=KgiwN^3{9n2>NKFx2-3tytNgU-K+%P!M*tm; z5kba;m>@ERXNJJses&JBm&8FLC&^ql<%ir!$-l-SzDyE-X@aE+0Te1#7?6|;BUJ{h zOgT_;6KHuCO1@%fWhx1(N=i_xiHMexwPF!-r{damlQ2ZmFi|5Ujf08s1GCFmgeX5a zyNneiinRfOqE9M#z#|bRacW(J0wfH_QiHH`N}4>!(q{?FP?8jazZVBSkbp;GPGeb& z?822q8xA4P5Aj1v5|Ds`w2LDW$%ypbPNGZ^D~T|j!qPS%mvUjr0}gnT3KmfgiIP{J zK>`p8jxs6|)|f;oEb(T|5hoHn5CIQFOau}DAVR^=zp21br-u)nxdZH!NR1wV3>;eN z5d)}Yg-y0!rm$a3O_?etUcl1qqnpdGN95&Z>FZ4^{M>3shnS^k(FWPe&-Cl|78HN~4C;S(kP867KEPGioje6hk$(>k{s9}; zPF|0IJbyj|%n1uiWrqT~ytWGh@D23SrCl(d0LP;y%@cvbN61zGBIY}~3tQzY7Ki}v#^J$}q6Nn@-rGQE+ETR`Pm@GDj%i{}#B_gpz zDw8XeDs`zQZGHXx0|JAB86lxz;X8NjhN1gY((;Nc>uT#88=6|$TA8dH*Kgjs)6w49 z-PPYWFbHQZ+<$mASaa&a+rSYx`YfCUxa4{O;L2NIj`ih<_w5BQ+~KC$pds@}I9LgNav81HerH0&iTZQo4N6YTY!c zT|E3c*H!2-XhNJ+)e;qIlqFZQRz|MjF5RmPAPIvCF`Q=%j;8^jj9Oq>XV^c#o4~K1 z=uNIRg^~IDlSV1bJU(ZG8l-5zd|b=8%$W4rkOJl7bVTLS{^+J7l_l+;zICJmO9tE1 z@S-Scs>aGi!G__2b2f}fuz@0WPfc@q8Mo$Bu*^3D@F%t*20S^c z40LJ?Fk`;Q!}-y@g+u~*%V&-amc$(^Eu~U1RxUC>Peqb!ArGQ8V;0yZ_O0q_vIYWBMy`>z@l4; za>xOlmEQ-}RkrbY5*W|Qd@_fRs<#k-qs#V#tvP$hOX0i*AlV%~dmPAv><^OGep_C! zRPm7$NI&w|Iny26Qzy;}>!3U7k^%A-^u#^vzIc3_2yjLfJ23qdgU*MhI}D&~N{K;9 zH@M7M0T{s9?JFQhVjK&q6O!%*J8Fo8L{&uKzDx~(_XF$6Y5I1#d;szU*tr?tz-v&P z>Hs+Ni&HqUL_PxhF4iIXqH0#AqE)S6qAyydLruG47rEU~J98cAb}>taj&^R?`9K&m z?aU=&)-8waa>;;cX2O&$U#vr9e z@5Oql{2ZZZkEm&8`!62epnHOr9|Lm*r(ln);|$uCKqQBv<)Sxj#@v^1~WgZIveQzu>9Ib<57;FXN6(ylnzAqBSy-1dSHJ11*T5i_rs(~ z&2}(h-(NNjYu{O1(DLLK^I|lH=5_3l`QazN0d;dyj_B`5^4sqGjQS69|5s|%ehYGp z^ZWz!2Ya|ib<`Ykx~@v!u!<2W$|8x)Y6ddgl4T^KGRB57hupJdy>u0@TAnUyV9cA-A$26F>dJf+>?B(tN5e(IR41gyv7-1 z%DFoEJ@_vUJnc)D9n-x~!cAB3q6^ufM|_oz9VX8OT`3preSW;kWeTfUw0wxX_cF)UtCH?D zWXyp2AAqo%@~EIZDF~saOXB{di63VB?2#Q5v$^7oRr1cwEszu`T1oR{5}7yk57HV= zG3iv++p{>;${8J{)Ru$xL%XESToyA;ZMyr!7LyY$g+pY0e<4toq>82pzCu>tW7yW5r6gYEXIb-kTyTwvd z!`U-9O&FYZPX!o%uA3*4f^o!m7=h1~aKE?514-P88O|&@10y zZ{3@8njY#Qc}@?$^CV7S$#K4za`|G;9GkSmwM_eG*NF%RvE4JgfUExvNwN9o3|a8K;zA!=Xma3QNp4#C-nGtc4ORS`5hDVLxM^jgm4+^@gzI7IQzRXDcJ*@D~bdcJh;XdboC~tri?IE~JAu+~f|_nwxKgkxvrx zHKwE-(AC$O?D~$%ncwRI4|&K1r3S4H(U|f`Ooo(VKiQtEeJBHvvEmgTYsWn zx2RB^7&goXln!kg$jh765u?^Dc9ylj7e$%bnrtrgF2>tk)UdQ=y{1QATEpp{(fvos z=u%bt55Y{UoCjrO1|6EQ;*8&QN#uvPw1pZl67&msh^NDrFsfZ#v7?*gCp0_D@Xs0+(eviE}oYk0TD z12!=azl~YUvPb2_zZDuT$V08ep;j$_Gwz-0^Iy)}TDhD8!sp4k!M8bz@%GWylqhX- z^=g3&G9Fdgbn9~)TVE#97n@zPmJJ&{l}Dv}>#$aovuB;L5ytD#z47ohHjVG2F)u@N zbY5cX9>-jeOhKk}d81J=wC7gX+hvS3Tip9*=e+%VtF%DnfUuV<2gCSzjU*j$+y$P* z^wUSYNpf@7t*_ynA@-(bW^RaaR*xJ=!kI;UYv})_ll9kb(2cPL=_a8zR!JtU_lzU_NYrfcWk6%Qg2nr;tlC7+D^)gRkHQ8wRwHjp(QXR7}!_2EVG%Iua8`gL2Ub%pi zYes=ENK>Kv!601)g{05>0T}{)&t%lwi(VaY7m;3Z#7OPoa+bPh+SVacbkao&49!e+ z$Iu}|N~<;X86HU2dw3a!TeEIK>yNH0_FWBo{G>T{T%R~ro<#Msu!Z)k5iPc2rH=4h z=B3%U5GRh9%#YVej7+&fL7Gm3Mh_xv85>*?*`0{GX{yP?4#P7KV7d!TEp<=|cQ38c zT>Iqs9I#r9ZVuI=QVg{x6HIJ(reAv6?+>f}&&W8;Dr7X-!&#ESyT6AQZMP8js&P2t z;U!)_&AT06FD3f|meRsP3EA?we0u~gyFt@W+`4Aa^mc*Tb&O!NZ)S${eZ zG163=JeVp`b;RA?UK(qB|1q;Q2`J1GN6on_eiEde#OCV?qx493@!{1V_31jR<4o1r zndcg?FjlNEG`&5doOG4I#Ub+rVI3A4O1}@_9#3aQWG*3yoe_NA15u- z<3c2WF>81b>|O>qlis!2^0}cm>GoHTZdxz*H*%8oX_OYd8 ziP1RSK zicLC=_-~>YOnFd=)F69R`UbRs@5f2idH!NjvNlgbXWI)!`l z#djqbd4@6p&X_9lR8gik^(3H$!dK@~snwKUs5P(WYlucw);nZU-KK;!6zT4G^MKLng9g5KEUG>wVxCEOreBciGso(8 z^0hvr)jU|X$$c&Np@^>QYv+pc3nDHup#h=v3;W7EF+~jMwx0QaGWjPIA6n1oHqC=3 ztM6dMH5_Uh<&V=9?ldV@qh|1i>j{?_k7ryu)MmJGFiT_Jl$^bIwq {}&&4g5E&0 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 L4sJ{LSjqSfG4fTy literal 0 HcmV?d00001 diff --git a/.atom/packages/atom-material-ui/assets/svg/arrow-drop-down-white.svg b/.atom/packages/atom-material-ui/assets/svg/arrow-drop-down-white.svg new file mode 100644 index 0000000..c4de82d --- /dev/null +++ b/.atom/packages/atom-material-ui/assets/svg/arrow-drop-down-white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.atom/packages/atom-material-ui/assets/svg/arrow-drop-down.svg b/.atom/packages/atom-material-ui/assets/svg/arrow-drop-down.svg new file mode 100644 index 0000000..b8aa6da --- /dev/null +++ b/.atom/packages/atom-material-ui/assets/svg/arrow-drop-down.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.atom/packages/atom-material-ui/index.less b/.atom/packages/atom-material-ui/index.less new file mode 100644 index 0000000..5b58b57 --- /dev/null +++ b/.atom/packages/atom-material-ui/index.less @@ -0,0 +1,39 @@ +// Atom Material UI theme + +@import "styles/ui-variables"; +@import "styles/ui-mixins"; + +@import "styles/alert"; +@import "styles/atom"; +@import "styles/autocomplete"; +@import "styles/background-tips"; +@import "styles/buttons"; +@import "styles/dock"; +@import "styles/editor"; +@import "styles/fuzzy-finder"; +@import "styles/git"; +@import "styles/github-panel"; +@import "styles/incompatible-packages"; +@import "styles/lists"; +@import "styles/messages"; +@import "styles/nav"; +@import "styles/notifications"; +@import "styles/overlays"; +@import "styles/panels"; +@import "styles/panes"; +@import "styles/progress"; +@import "styles/search-replace"; +@import "styles/sites"; +@import "styles/spinner"; +@import "styles/tabs"; +@import "styles/text"; +@import "styles/title-bar"; +@import "styles/tooltips"; +@import "styles/tree-view"; +@import "styles/utilities"; +@import "styles/settings/main"; +@import "styles/packages/main"; + +:root { + font-size: @font-size; +} diff --git a/.atom/packages/atom-material-ui/lib/color-templates.json b/.atom/packages/atom-material-ui/lib/color-templates.json new file mode 100644 index 0000000..6004094 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/color-templates.json @@ -0,0 +1,58 @@ +{ + "amber": { + "base": "#FFD54F", + "accent": "#A28832" + }, + "blue": { + "base": "#2196F3", + "accent": "#FFFFFF" + }, + "blueGrey": { + "base": "#607D8B", + "accent": "#FFFFFF" + }, + "brown": { + "base": "#795548", + "accent": "#FFFFFF" + }, + "cyan": { + "base": "#80DEEA", + "accent": "#528C94" + }, + "green": { + "base": "#AAD875", + "accent": "#6F8853" + }, + "grey": { + "base": "#7E7E7E", + "accent": "#FFFFFF" + }, + "indigo": { + "base": "#5C6BC0", + "accent": "#FFFFFF" + }, + "lime": { + "base": "#CDDC39", + "accent": "#737F10" + }, + "orange": { + "base": "#FFA726", + "accent": "#9F6918" + }, + "pink": { + "base": "#EC407A", + "accent": "#46FFC1" + }, + "purple": { + "base": "#7E57C2", + "accent": "#B0E457" + }, + "red": { + "base": "#EF5350", + "accent": "#59FCFF" + }, + "teal": { + "base": "#009688", + "accent": "#FFFFFF" + } +} diff --git a/.atom/packages/atom-material-ui/lib/colors/build-color-settings.js b/.atom/packages/atom-material-ui/lib/colors/build-color-settings.js new file mode 100644 index 0000000..0554e7b --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/colors/build-color-settings.js @@ -0,0 +1,30 @@ +'use babel'; + +import tinycolor from 'tinycolor2'; + +export default function buildColorSettings(baseColor = '#009688', accentColor = '#FFFFFF') { + const newAccent = (typeof accentColor === 'object') ? + accentColor.toHexString() : + accentColor; + + const newBase = (typeof baseColor === 'object') ? + baseColor.toHexString() : + baseColor; + + const luminance = tinycolor(newBase).getLuminance(); + let accentTextColor = '#666'; + + if (luminance <= 0.3 && luminance > 0.22) { + accentTextColor = 'rgba(255,255,255,0.9)'; + } else if (luminance <= 0.22) { + accentTextColor = 'rgba(255,255,255,0.8)'; + } else if (luminance > 0.3) { + accentTextColor = 'rgba(0,0,0,0.6)'; + } + + return ` + @accent-color: ${newAccent}; + @accent-text-color: ${accentTextColor}; + @base-color: ${newBase}; + `; +} diff --git a/.atom/packages/atom-material-ui/lib/colors/index.js b/.atom/packages/atom-material-ui/lib/colors/index.js new file mode 100644 index 0000000..7deded7 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/colors/index.js @@ -0,0 +1,44 @@ +'use babel'; + +import tinycolor from 'tinycolor2'; +import writeConfigFile from '../helper/write-config-file'; +import toggleClassName from '../helper/toggle-class-name'; +import toCamelCase from '../helper/to-camel-case'; +import colorTemplates from '../color-templates.json'; +import buildColorSettings from './build-color-settings'; + +atom.config.onDidChange('atom-material-ui.colors.abaseColor', ({ newValue }) => { + if (atom.config.get('atom-material-ui.colors.genAccent')) { + const accentColor = tinycolor(newValue.toHexString()) + .complement() + .saturate(20) + .lighten(5); + + return atom.config.set('atom-material-ui.colors.accentColor', accentColor.toRgbString()); + } + + return writeConfigFile( + buildColorSettings( + newValue, atom.config.get('atom-material-ui.colors.accentColor'), + ), + true, + ); +}); + +atom.config.onDidChange('atom-material-ui.colors.predefinedColor', (value) => { + const newValue = toCamelCase(value.newValue); + + atom.config.set('atom-material-ui.colors.abaseColor', colorTemplates[newValue].base); + atom.config.set('atom-material-ui.colors.accentColor', colorTemplates[newValue].accent); +}); + +atom.config.onDidChange('atom-material-ui.colors.accentColor', ({ newValue }) => ( + writeConfigFile( + buildColorSettings( + atom.config.get('atom-material-ui.colors.abaseColor'), newValue, + ), + true, + ) +)); + +atom.config.observe('atom-material-ui.colors.paintCursor', value => toggleClassName('amu-paint-cursor', value)); diff --git a/.atom/packages/atom-material-ui/lib/fonts/index.js b/.atom/packages/atom-material-ui/lib/fonts/index.js new file mode 100644 index 0000000..aece6f3 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/fonts/index.js @@ -0,0 +1,5 @@ +'use babel'; + +import setFontSize from './set-font-size'; + +atom.config.observe('atom-material-ui.fonts.fontSize', size => setFontSize(size)); diff --git a/.atom/packages/atom-material-ui/lib/fonts/set-font-size.js b/.atom/packages/atom-material-ui/lib/fonts/set-font-size.js new file mode 100644 index 0000000..c0de529 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/fonts/set-font-size.js @@ -0,0 +1,6 @@ +'use babel'; + +export default function setFontSize(size) { + const fontSize = size ? `${size}px` : null; + document.documentElement.style.fontSize = fontSize; +} diff --git a/.atom/packages/atom-material-ui/lib/helper/to-camel-case.js b/.atom/packages/atom-material-ui/lib/helper/to-camel-case.js new file mode 100644 index 0000000..19bdbd4 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/helper/to-camel-case.js @@ -0,0 +1,10 @@ +'use babel'; + +export default function toCamelCase(str) { + return str + .replace(/-/g, ' ') + .replace(/_/g, ' ') + .replace(/\s(.)/g, $1 => $1.toUpperCase()) + .replace(/\s/g, '') + .replace(/^(.)/, $1 => $1.toLowerCase()); +} diff --git a/.atom/packages/atom-material-ui/lib/helper/toggle-class-name.js b/.atom/packages/atom-material-ui/lib/helper/toggle-class-name.js new file mode 100644 index 0000000..aac1518 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/helper/toggle-class-name.js @@ -0,0 +1,11 @@ +'use babel'; + +export default function toggleClassName(className, mustAddClass) { + const root = document.documentElement; + + if (mustAddClass) { + root.classList.add(className); + } else { + root.classList.remove(className); + } +} diff --git a/.atom/packages/atom-material-ui/lib/helper/write-config-file.js b/.atom/packages/atom-material-ui/lib/helper/write-config-file.js new file mode 100644 index 0000000..eefaeb3 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/helper/write-config-file.js @@ -0,0 +1,28 @@ +'use babel'; + +import fs from 'fs'; + +function writeConfigFile(content, reload = false) { + return new Promise((resolve, reject) => { + if (!content) return reject({ success: false, error: 'No content given' }); + + fs.writeFile(`${__dirname}/../../styles/user-settings.less`, content, 'utf8', (error) => { + if (error) return reject({ success: false, error: 'Failed to write settings file' }); + + if (reload) { + const amuPackage = atom.packages.getLoadedPackage('atom-material-ui'); + + if (amuPackage) { + amuPackage.deactivate(); + setImmediate(() => amuPackage.activate()); + } + } + + return resolve({ success: true, error: null }); + }); + + return resolve({ success: true, error: null }); + }); +} + +export default writeConfigFile; diff --git a/.atom/packages/atom-material-ui/lib/main.js b/.atom/packages/atom-material-ui/lib/main.js new file mode 100644 index 0000000..8ada3c5 --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/main.js @@ -0,0 +1,40 @@ +'use babel'; + +import setFontSize from './fonts/set-font-size'; +import toggleClassName from './helper/toggle-class-name'; +import './colors'; +import './fonts'; +import './tab-bar'; +import './user-interface'; + +const classNames = { + // Fonts + 'amu-paint-cursor': atom.config.get('atom-material-ui.colors.paintCursor'), + + // Tabs settings + 'amu-compact-tab-bar': atom.config.get('atom-material-ui.tabs.compactTabs'), + 'amu-no-tab-min-width': atom.config.get('atom-material-ui.tabs.noTabMinWidth'), + 'amu-tinted-tab-bar': atom.config.get('atom-material-ui.tabs.tintedTabBar'), + 'amu-stretched-tabs': atom.config.get('atom-material-ui.tabs.stretchedTabs'), + + // General UI settings + 'amu-use-animations': atom.config.get('atom-material-ui.ui.useAnimations'), + 'amu-panel-contrast': atom.config.get('atom-material-ui.ui.panelContrast'), + 'amu-panel-shadows': atom.config.get('atom-material-ui.ui.panelShadows'), +}; + +export default { + activate() { + Object.keys(classNames).forEach(className => ( + toggleClassName(className, classNames[className])), + ); + + setFontSize(atom.config.get('atom-material-ui.fonts.fontSize')); + }, + + deactivate() { + // Reset all the things! + Object.keys(classNames).forEach(className => toggleClassName(className, false)); + setFontSize(null); + }, +}; diff --git a/.atom/packages/atom-material-ui/lib/tab-bar/index.js b/.atom/packages/atom-material-ui/lib/tab-bar/index.js new file mode 100644 index 0000000..02277bc --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/tab-bar/index.js @@ -0,0 +1,19 @@ +'use babel'; + +import toggleClassName from '../helper/toggle-class-name'; + +atom.config.observe('atom-material-ui.tabs.tintedTabBar', (value) => { + toggleClassName('amu-tinted-tab-bar', value); +}); + +atom.config.observe('atom-material-ui.tabs.compactTabs', (value) => { + toggleClassName('amu-compact-tab-bar', value); +}); + +atom.config.observe('atom-material-ui.tabs.noTabMinWidth', (value) => { + toggleClassName('amu-no-tab-min-width', value); +}); + +atom.config.observe('atom-material-ui.tabs.stretchedTabs', (value) => { + toggleClassName('amu-stretched-tabs', value); +}); diff --git a/.atom/packages/atom-material-ui/lib/user-interface/index.js b/.atom/packages/atom-material-ui/lib/user-interface/index.js new file mode 100644 index 0000000..a048dee --- /dev/null +++ b/.atom/packages/atom-material-ui/lib/user-interface/index.js @@ -0,0 +1,15 @@ +'use babel'; + +import toggleClassName from '../helper/toggle-class-name'; + +atom.config.observe('atom-material-ui.ui.panelShadows', (value) => { + toggleClassName('amu-panel-shadows', value); +}); + +atom.config.observe('atom-material-ui.ui.panelContrast', (value) => { + toggleClassName('amu-panel-contrast', value); +}); + +atom.config.observe('atom-material-ui.ui.useAnimations', (value) => { + toggleClassName('amu-use-animations', value); +}); diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/.npmignore b/.atom/packages/atom-material-ui/node_modules/tinycolor2/.npmignore new file mode 100644 index 0000000..48e2fc7 --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/.npmignore @@ -0,0 +1,6 @@ +.DS_Store +ehthumbs.db +Icon? +Thumbs.db +node_modules +.idea diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/.travis.yml b/.atom/packages/atom-material-ui/node_modules/tinycolor2/.travis.yml new file mode 100644 index 0000000..f33da69 --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +node_js: + - "0.11" +before_script: + - npm install -g grunt-cli +script: + - grunt default --verbose \ No newline at end of file diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/Gruntfile.js b/.atom/packages/atom-material-ui/node_modules/tinycolor2/Gruntfile.js new file mode 100644 index 0000000..e1995cd --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/Gruntfile.js @@ -0,0 +1,59 @@ + +module.exports = function(grunt) { + + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + meta: { + banner: '// TinyColor v<%= pkg.version %>\n' + + '// https://github.com/bgrins/TinyColor\n' + + '// <%= grunt.template.today("yyyy-mm-dd") %>, Brian Grinstead, MIT License\n' + }, + + uglify: { + options: { + mangle: false, + banner: '<%= meta.banner %>' + }, + dist: { + files: { + 'dist/tinycolor-min.js': ['tinycolor.js'] + } + } + }, + + qunit: { + all: ['test/index.html'] + }, + + + jshint: { + options: { + browser: true, + sub: true, + globals: { + jQuery: true + } + }, + all: ['tinycolor.js'] + }, + + docco: { + debug: { + src: ['tinycolor.js'], + options: { + output: 'docs/' + } + } + } + }); + + + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-qunit'); + grunt.loadNpmTasks('grunt-docco'); + + grunt.registerTask('default', ['jshint', 'qunit']); + grunt.registerTask('version-bump', ['jshint', 'qunit', 'uglify', 'docco']); + +}; diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/LICENSE b/.atom/packages/atom-material-ui/node_modules/tinycolor2/LICENSE new file mode 100644 index 0000000..b6424d8 --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/LICENSE @@ -0,0 +1,20 @@ +Copyright (c), Brian Grinstead, http://briangrinstead.com + +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. \ No newline at end of file diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/README.md b/.atom/packages/atom-material-ui/node_modules/tinycolor2/README.md new file mode 100644 index 0000000..9fd9ecf --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/README.md @@ -0,0 +1,466 @@ +# TinyColor + +## JavaScript color tooling + +TinyColor is a small, fast library for color manipulation and conversion in JavaScript. It allows many forms of input, while providing color conversions and other color utility functions. It has no dependencies. + +[![Build Status](https://travis-ci.org/bgrins/TinyColor.png?branch=master)](https://travis-ci.org/bgrins/TinyColor) + +## Including in a browser + +Download [tinycolor.js](https://raw.githubusercontent.com/bgrins/TinyColor/master/tinycolor.js) or install it with bower: + + bower install tinycolor + +Then just include it in the page in a `script` tag: + + + + +## Including in node + +`tinycolor` may also be included as a [node](http://nodejs.org/) module like so: + + npm install tinycolor2 + +Then it can be used in your script like so: + + var tinycolor = require("tinycolor2"); + var color = tinycolor("red"); + +## Usage + +Call `tinycolor(input)` or `new tinycolor(input)`, and you will have an object with the following properties. See Accepted String Input and Accepted Object Input below for more information about what is accepted. + +## Accepted String Input + +The string parsing is very permissive. It is meant to make typing a color as input as easy as possible. All commas, percentages, parenthesis are optional, and most input allow either 0-1, 0%-100%, or 0-n (where n is either 100, 255, or 360 depending on the value). + +HSL and HSV both require either 0%-100% or 0-1 for the `S`/`L`/`V` properties. The `H` (hue) can have values between 0%-100% or 0-360. + +RGB input requires either 0-255 or 0%-100%. + +If you call `tinycolor.fromRatio`, RGB and Hue input can also accept 0-1. + +Here are some examples of string input: + +### Hex, 8-digit (ARGB) Hex + + tinycolor("#000"); + tinycolor("000"); + tinycolor("#f0f0f6"); + tinycolor("f0f0f6"); + tinycolor("#88f0f0f6"); + tinycolor("88f0f0f6"); + +### RGB, RGBA + + tinycolor("rgb (255, 0, 0)"); + tinycolor("rgb 255 0 0"); + tinycolor("rgba (255, 0, 0, .5)"); + tinycolor({ r: 255, g: 0, b: 0 }); + tinycolor.fromRatio({ r: 1, g: 0, b: 0 }); + tinycolor.fromRatio({ r: .5, g: .5, b: .5 }); + +### HSL, HSLA + + tinycolor("hsl(0, 100%, 50%)"); + tinycolor("hsla(0, 100%, 50%, .5)"); + tinycolor("hsl(0, 100%, 50%)"); + tinycolor("hsl 0 1.0 0.5"); + tinycolor({ h: 0, s: 1, l: .5 }); + tinycolor.fromRatio({ h: 1, s: 0, l: 0 }); + tinycolor.fromRatio({ h: .5, s: .5, l: .5 }); + +### HSV, HSVA + + tinycolor("hsv(0, 100%, 100%)"); + tinycolor("hsva(0, 100%, 100%, .5)"); + tinycolor("hsv (0 100% 100%)"); + tinycolor("hsv 0 1 1"); + tinycolor({ h: 0, s: 100, v: 100 }); + tinycolor.fromRatio({ h: 1, s: 0, v: 0 }); + tinycolor.fromRatio({ h: .5, s: .5, v: .5 }); + +### Named + + tinycolor("RED"); + tinycolor("blanchedalmond"); + tinycolor("darkblue"); + +### Accepted Object Input + +If you are calling this from code, you may want to use object input. Here are some examples of the different types of accepted object inputs: + + { r: 255, g: 0, b: 0 } + { r: 255, g: 0, b: 0, a: .5 } + { h: 0, s: 100, l: 50 } + { h: 0, s: 100, v: 100 } + +## Methods + +### getFormat + +Returns the format used to create the tinycolor instance +```js + var color = tinycolor("red"); + color.getFormat(); // "name" + color = tinycolor({r:255, g:255, b:255}); + color.getFormat(); // "rgb" +``` + +### getOriginalInput + +Returns the input passed into the constructer used to create the tinycolor instance +```js + var color = tinycolor("red"); + color.getOriginalInput(); // "red" + color = tinycolor({r:255, g:255, b:255}); + color.getOriginalInput(); // "{r: 255, g: 255, b: 255}" +``` + +### isValid + +Return a boolean indicating whether the color was successfully parsed. Note: if the color is not valid then it will act like `black` when being used with other methods. + + var color1 = tinycolor("red"); + color1.isValid(); // true + color1.toHexString(); // "#ff0000" + + var color2 = tinycolor("not a color"); + color2.isValid(); // false + color2.toString(); // "#000000" + +### getBrightness + +Returns the perceived brightness of a color, from `0-255`, as defined by [Web Content Accessibility Guidelines (Version 1.0)](http://www.w3.org/TR/AERT#color-contrast). + + var color1 = tinycolor("#fff"); + color1.getBrightness(); // 255 + + var color2 = tinycolor("#000"); + color2.getBrightness(); // 0 + +### isLight + +Return a boolean indicating whether the color's perceived brightness is light. + + var color1 = tinycolor("#fff"); + color1.isLight(); // true + + var color2 = tinycolor("#000"); + color2.isLight(); // false + +### isDark + +Return a boolean indicating whether the color's perceived brightness is dark. + + var color1 = tinycolor("#fff"); + color1.isDark(); // false + + var color2 = tinycolor("#000"); + color2.isDark(); // true + +### getLuminance + +Returns the perceived luminance of a color, from `0-1` as defined by [Web Content Accessibility Guidelines (Version 2.0).](http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef) + + var color1 = tinycolor("#fff"); + color1.getLuminance(); // 1 + + var color2 = tinycolor("#000"); + color2.getLuminance(); // 0 + +### getAlpha + +Returns the alpha value of a color, from `0-1`. + + var color1 = tinycolor("rgba(255, 0, 0, .5)"); + color1.getAlpha(); // 0.5 + + var color2 = tinycolor("rgb(255, 0, 0)"); + color2.getAlpha(); // 1 + + var color3 = tinycolor("transparent"); + color3.getAlpha(); // 0 + +### setAlpha + +Sets the alpha value on a current color. Accepted range is in between `0-1`. + + var color = tinycolor("red"); + color.getAlpha(); // 1 + color.setAlpha(.5); + color.getAlpha(); // .5 + color.toRgbString(); // "rgba(255, 0, 0, .5)" + +### String Representations + +The following methods will return a property for the `alpha` value, which can be ignored: `toHsv`, `toHsl`, `toRgb` + +### toHsv + + var color = tinycolor("red"); + color.toHsv(); // { h: 0, s: 1, v: 1, a: 1 } + +### toHsvString + + var color = tinycolor("red"); + color.toHsvString(); // "hsv(0, 100%, 100%)" + color.setAlpha(0.5); + color.toHsvString(); // "hsva(0, 100%, 100%, 0.5)" + +### toHsl + + var color = tinycolor("red"); + color.toHsl(); // { h: 0, s: 1, l: 0.5, a: 1 } + +### toHslString + + var color = tinycolor("red"); + color.toHslString(); // "hsl(0, 100%, 50%)" + color.setAlpha(0.5); + color.toHslString(); // "hsla(0, 100%, 50%, 0.5)" + +### toHex + + var color = tinycolor("red"); + color.toHex(); // "ff0000" + +### toHexString + + var color = tinycolor("red"); + color.toHexString(); // "#ff0000" + +### toHex8 + + var color = tinycolor("red"); + color.toHex8(); // "ffff0000" + +### toHex8String + + var color = tinycolor("red"); + color.toHex8String(); // "#ffff0000" + +### toRgb + + var color = tinycolor("red"); + color.toRgb(); // { r: 255, g: 0, b: 0, a: 1 } + +### toRgbString + + var color = tinycolor("red"); + color.toRgbString(); // "rgb(255, 0, 0)" + color.setAlpha(0.5); + color.toRgbString(); // "rgba(255, 0, 0, 0.5)" + +### toPercentageRgb + + var color = tinycolor("red"); + color.toPercentageRgb() // { r: "100%", g: "0%", b: "0%", a: 1 } + +### toPercentageRgbString + + var color = tinycolor("red"); + color.toPercentageRgbString(); // "rgb(100%, 0%, 0%)" + color.setAlpha(0.5); + color.toPercentageRgbString(); // "rgba(100%, 0%, 0%, 0.5)" + +### toName + + var color = tinycolor("red"); + color.toName(); // "red" + +### toFilter + + var color = tinycolor("red"); + color.toFilter(); // "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff0000,endColorstr=#ffff0000)" + +### toString + +Print to a string, depending on the input format. You can also override this by passing one of `"rgb", "prgb", "hex6", "hex3", "hex8", "name", "hsl", "hsv"` into the function. + + var color1 = tinycolor("red"); + color1.toString(); // "red" + color1.toString("hsv"); // "hsv(0, 100%, 100%)" + + var color2 = tinycolor("rgb(255, 0, 0)"); + color2.toString(); // "rgb(255, 0, 0)" + color2.setAlpha(.5); + color2.toString(); // "rgba(255, 0, 0, 0.5)" + +### Color Modification + +These methods manipulate the current color, and return it for chaining. For instance: + + tinycolor("red").lighten().desaturate().toHexString() // "#f53d3d" + +### lighten + +`lighten: function(amount = 10) -> TinyColor`. Lighten the color a given amount, from 0 to 100. Providing 100 will always return white. + + tinycolor("#f00").lighten().toString(); // "#ff3333" + tinycolor("#f00").lighten(100).toString(); // "#ffffff" + +### brighten + +`brighten: function(amount = 10) -> TinyColor`. Brighten the color a given amount, from 0 to 100. + + tinycolor("#f00").brighten().toString(); // "#ff1919" + +### darken + +`darken: function(amount = 10) -> TinyColor`. Darken the color a given amount, from 0 to 100. Providing 100 will always return black. + + tinycolor("#f00").darken().toString(); // "#cc0000" + tinycolor("#f00").darken(100).toString(); // "#000000" + +### desaturate + +`desaturate: function(amount = 10) -> TinyColor`. Desaturate the color a given amount, from 0 to 100. Providing 100 will is the same as calling `greyscale`. + + tinycolor("#f00").desaturate().toString(); // "#f20d0d" + tinycolor("#f00").desaturate(100).toString(); // "#808080" + +### saturate + +`saturate: function(amount = 10) -> TinyColor`. Saturate the color a given amount, from 0 to 100. + + tinycolor("hsl(0, 10%, 50%)").saturate().toString(); // "hsl(0, 20%, 50%)" + +### greyscale + +`greyscale: function() -> TinyColor`. Completely desaturates a color into greyscale. Same as calling `desaturate(100)`. + + tinycolor("#f00").greyscale().toString(); // "#808080" + +### spin + +`spin: function(amount = 0) -> TinyColor`. Spin the hue a given amount, from -360 to 360. Calling with 0, 360, or -360 will do nothing (since it sets the hue back to what it was before). + + tinycolor("#f00").spin(180).toString(); // "#00ffff" + tinycolor("#f00").spin(-90).toString(); // "#7f00ff" + tinycolor("#f00").spin(90).toString(); // "#80ff00" + + // spin(0) and spin(360) do nothing + tinycolor("#f00").spin(0).toString(); // "#ff0000" + tinycolor("#f00").spin(360).toString(); // "#ff0000" + +### Color Combinations + +Combination functions return an array of TinyColor objects unless otherwise noted. + +### analogous + +`analogous: function(, results = 6, slices = 30) -> array`. + + var colors = tinycolor("#f00").analogous(); + + colors.map(function(t) { return t.toHexString(); }); // [ "#ff0000", "#ff0066", "#ff0033", "#ff0000", "#ff3300", "#ff6600" ] + +### monochromatic + +`monochromatic: function(, results = 6) -> array`. + + var colors = tinycolor("#f00").monochromatic(); + + colors.map(function(t) { return t.toHexString(); }); // [ "#ff0000", "#2a0000", "#550000", "#800000", "#aa0000", "#d40000" ] + +### splitcomplement + +`splitcomplement: function() -> array`. + + var colors = tinycolor("#f00").splitcomplement(); + + colors.map(function(t) { return t.toHexString(); }); // [ "#ff0000", "#ccff00", "#0066ff" ] + +### triad + +`triad: function() -> array`. + + var colors = tinycolor("#f00").triad(); + + colors.map(function(t) { return t.toHexString(); }); // [ "#ff0000", "#00ff00", "#0000ff" ] + +### tetrad + +`tetrad: function() -> array`. + + var colors = tinycolor("#f00").tetrad(); + + colors.map(function(t) { return t.toHexString(); }); // [ "#ff0000", "#80ff00", "#00ffff", "#7f00ff" ] + + +### complement + +`complement: function() -> TinyColor`. + + tinycolor("#f00").complement().toHexString(); // "#00ffff" + +## Color Utilities + + tinycolor.equals(color1, color2) + tinycolor.mix(color1, color2, amount = 50) + +### random + +Returns a random color. +```js +var color = tinycolor.random(); +color.toRgb(); // "{r: 145, g: 40, b: 198, a: 1}" +``` + +### Readability + +TinyColor assesses readability based on the [Web Content Accessibility Guidelines (Version 2.0)](http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef). + +#### readability + +`readability: function(TinyColor, TinyColor) -> Object`. +Returns the contrast ratio between two colors. + + tinycolor.readability("#000", "#000"); // 1 + tinycolor.readability("#000", "#111"); // 1.1121078324840545 + tinycolor.readability("#000", "#fff"); // 21 + +Use the values in your own calculations, or use one of the convenience functions below. + +#### isReadable + +`isReadable: function(TinyColor, TinyColor, Object) -> Boolean`. Ensure that foreground and background color combinations meet WCAG guidelines. `Object` is optional, defaulting to `{level: "AA",size: "small"}`. `level` can be `"AA"` or "AAA" and `size` can be `"small"` or `"large"`. + +Here are links to read more about the [AA](http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html) and [AAA](http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast7.html) requirements. + + tinycolor.isReadable("#000", "#111", {}); // false + tinycolor.isReadable("#ff0088", "#5c1a72",{level:"AA",size:"small"}); //false + tinycolor.isReadable("#ff0088", "#5c1a72",{level:"AA",size:"large"}), //true + +#### mostReadable + +`mostReadable: function(TinyColor, [TinyColor, Tinycolor ...], Object) -> Boolean`. +Given a base color and a list of possible foreground or background colors for that base, returns the most readable color. +If none of the colors in the list is readable, `mostReadable` will return the better of black or white if `includeFallbackColors:true`. + + tinycolor.mostReadable("#000", ["#f00", "#0f0", "#00f"]).toHexString(); // "#00ff00" + tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" + tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" + tinycolor.mostReadable("#ff0088", ["#2e0c3a"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString() // "#2e0c3a", + tinycolor.mostReadable("#ff0088", ["#2e0c3a"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString() // "#000000", + +See [index.html](https://github.com/bgrins/TinyColor/blob/master/index.html) in the project for a demo. + +## Common operations + +### clone + +`clone: function() -> TinyColor`. +Instantiate a new TinyColor object with the same color. Any changes to the new one won't affect the old one. + + var color1 = tinycolor("#F00"); + var color2 = color1.clone(); + color2.setAlpha(.5); + + color1.toString(); // "#ff0000" + color2.toString(); // "rgba(255, 0, 0, 0.5)" diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/bower.json b/.atom/packages/atom-material-ui/node_modules/tinycolor2/bower.json new file mode 100644 index 0000000..b4548ac --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/bower.json @@ -0,0 +1,9 @@ +{ + "name": "tinycolor", + "repository": "bgrins/TinyColor", + "version": "1.3.0", + "main": "tinycolor.js", + "scripts": ["tinycolor.js"], + "license": "MIT", + "ignore": ["test"] +} diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/demo/demo.css b/.atom/packages/atom-material-ui/node_modules/tinycolor2/demo/demo.css new file mode 100644 index 0000000..3565ad1 --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/demo/demo.css @@ -0,0 +1,23 @@ + +html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } +body { font-size: 15px; line-height: 1.231; margin: 4px; background-color: #FCFFFD; } +body, button, input, select, textarea { font-family: Droid Sans, Verdana, sans-serif; color: #222; } +a { color: #33f; } +table th { width: 200px; text-align: right; padding-right:10px; font-family: Georgia serif;} +#container { width: 90%; margin:0 auto; } +#code-output { border: solid 5px #333; margin:15px; border-top-width: 40px; } +#color { width: 200px; height: 2em;} +#inputter a { padding:3px; } +.invisible { visibility: hidden; } +h1 { font-size: 3.8em; color: #293c11; font-family:Tahoma; margin: 3px 0; padding:0; } +h1 .small { font-size: 0.4em; } +h1 a { text-decoration: none } +h2 { font-size: 1.5em; color: #293c11; margin: 0;margin-left: 10px; } +h3 { color: #293c11; } +.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;} +.download { float: right; } +pre { background: #000; color: #fff; padding: 15px;} +hr { border: 0; width: 80%; border-bottom: 1px solid #aaa} +.footer { text-align:center; padding-top:30px; font-style: italic; } + +#filter-output div, #combine-output span { width: 40px; height: 40px; display:inline-block; margin: 10px; } \ No newline at end of file diff --git a/.atom/packages/atom-material-ui/node_modules/tinycolor2/demo/jquery-1.9.1.js b/.atom/packages/atom-material-ui/node_modules/tinycolor2/demo/jquery-1.9.1.js new file mode 100644 index 0000000..c508b0a --- /dev/null +++ b/.atom/packages/atom-material-ui/node_modules/tinycolor2/demo/jquery-1.9.1.js @@ -0,0 +1,9597 @@ +/*! + * jQuery JavaScript Library v1.9.1 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-2-4 + */ +(function( window, undefined ) { + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +//"use strict"; +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<9 + // For `typeof node.method` instead of `node.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + location = window.location, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.9.1", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function() { + + var support, all, a, + input, select, fragment, + opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
    a"; + + // Support tests won't run in some limited or non-browser environments + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + if ( !all || !a || !all.length ) { + return {}; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + support = { + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + checkOn: !!input.value, + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Tests for enctype support on a form (#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: document.compatMode === "CSS1Compat", + + // Will be defined later + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
    t
    "; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "

    "; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})(); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var i, l, thisCache, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( !name.indexOf( "data-" ) ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + // Try to fetch any internally stored data first + return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + } + + this.each(function() { + jQuery.data( this, key, value ); + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + hooks.cur = fn; + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, notxml, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + // In IE9+, Flash objects don't have .getAttribute (#12945) + // Support: IE9+ + if ( typeof elem.getAttribute !== core_strundefined ) { + ret = elem.getAttribute( name ); + } + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( rboolean.test( name ) ) { + // Set corresponding property to false for boolean attributes + // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 + if ( !getSetAttribute && ruseDefault.test( name ) ) { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } else { + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + var + // Use .prop to determine if this attribute is understood as boolean + prop = jQuery.prop( elem, name ), + + // Fetch it accordingly + attr = typeof prop === "boolean" && elem.getAttribute( name ), + detail = typeof prop === "boolean" ? + + getSetInput && getSetAttribute ? + attr != null : + // oldIE fabricates an empty string for missing boolean attributes + // and conflates checked/selected into attroperties + ruseDefault.test( name ) ? + elem[ jQuery.camelCase( "default-" + name ) ] : + !!attr : + + // fetch an attribute node for properties not recognized as boolean + elem.getAttributeNode( name ); + + return detail && detail.value !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; + +// fix oldIE value attroperty +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return jQuery.nodeName( elem, "input" ) ? + + // Ignore the value *property* by using defaultValue + elem.defaultValue : + + ret && ret.specified ? ret.value : undefined; + }, + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret == null ? undefined : ret; + } + }); + }); + + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + event.isTrigger = true; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur != this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + } + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== document.activeElement && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === document.activeElement && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var i, + cachedruns, + Expr, + getText, + isXML, + compile, + hasDuplicate, + outermostContext, + + // Local document vars + setDocument, + document, + docElem, + documentIsXML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + sortOrder, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Array methods + arr = [], + pop = arr.pop, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + + rnative = /^[^{]+\{\s*\[native code/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Use a stripped-down slice if we can't use a native one +try { + slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + while ( (elem = this[i++]) ) { + results.push( elem ); + } + return results; + }; +} + +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var cache, + keys = []; + + return (cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + }); +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !documentIsXML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsXML = isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.tagNameNoComments = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = ""; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
    "; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + support.getIdNotName = !doc.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = ""; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // ID find and filter + if ( support.getIdNotName ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.tagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = ""; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + var compare; + + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { + if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { + if ( a === doc || contains( preferredDoc, a ) ) { + return -1; + } + if ( b === doc || contains( preferredDoc, b ) ) { + return 1; + } + return 0; + } + return compare & 4 ? -1 : 1; + } + + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + // Always assume the presence of duplicates if sort doesn't + // pass them to our comparison function (as in Google Chrome). + hasDuplicate = false; + [0, 0].sort( sortOrder ); + support.detectDuplicates = hasDuplicate; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( !documentIsXML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( documentIsXML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifider + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsXML ? + elem.getAttribute("xml:lang") || elem.getAttribute("lang") : + elem.lang) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !documentIsXML && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + documentIsXML, + results, + rsibling.test( selector ) + ); + return results; +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Easy API for creating new setFilters +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Initialize with the default document +setDocument(); + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, ret, self, + len = this.length; + + if ( typeof selector !== "string" ) { + self = this; + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + ret = []; + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, this[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true) ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
    ", "
    " ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
    " ], + tr: [ 2, "", "
    " ], + col: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
    ", "
    " ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + var isFunc = jQuery.isFunction( value ); + + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( !isFunc && typeof value !== "string" ) { + value = jQuery( value ).not( this ).detach(); + } + + return this.domManip( [ value ], true, function( elem ) { + var next = this.nextSibling, + parent = this.parentNode; + + if ( parent ) { + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + }); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, table ? self.html() : undefined ); + } + self.domManip( args, table, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + node, + i + ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery.ajax({ + url: node.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + var attr = elem.getAttributeNode("type"); + elem.type = ( attr && attr.specified ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
    " && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + var bool = typeof state === "boolean"; + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("