1 |
- {"version":3,"sources":["webpack:///js/global.js","webpack:///webpack/bootstrap 76e6ae63fa7cdfcb4bde","webpack:///./mobile/src/js/flexible.js","webpack:///./mobile/src/js/global.js","webpack:///./mobile/src/js/zepto.js","webpack:///./mobile/src/images/shareguide.png","webpack:///./mobile/src/router/global.js","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","8","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","value","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","11","a","b","styleSheet","disabled","cssText","innerHTML","innerText","f","getBoundingClientRect","width","style","fontSize","k","rem","documentElement","g","querySelector","h","j","flexible","warn","getAttribute","match","parseFloat","parseInt","toFixed","navigator","appVersion","q","devicePixelRatio","firstElementChild","r","write","addEventListener","persisted","readyState","body","dpr","refreshRem","rem2px","this","px2rem","lib","12","$","on","userAgent","toLocaleLowerCase","indexOf","append","remove","Zepto","17","_typeof","Symbol","iterator","obj","constructor","String","class2type","toString","isFunction","isWindow","isDocument","nodeType","DOCUMENT_NODE","isObject","isPlainObject","getPrototypeOf","likeArray","compact","array","filter","item","flatten","fn","concat","apply","dasherize","str","replace","toLowerCase","classRE","classCache","RegExp","maybeAddPx","cssNumber","defaultDisplay","nodeName","element","display","elementDisplay","getComputedStyle","getPropertyValue","parentNode","removeChild","children","slice","map","childNodes","node","Z","dom","selector","len","extend","target","source","deep","key","isArray","filtered","nodes","funcArg","context","arg","idx","payload","removeAttribute","className","klass","svg","baseVal","deserializeValue","test","parseJSON","traverseNode","fun","classList","camelize","uniq","emptyArray","column-count","columns","font-weight","line-height","opacity","z-index","zoom","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","adjacencyOperators","table","tableRow","containers","tr","tbody","thead","tfoot","td","th","*","readyRE","simpleSelectorRE","zepto","tempParent","propMap","tabindex","readonly","for","class","maxlength","cellspacing","cellpadding","rowspan","colspan","usemap","frameborder","contenteditable","Array","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","parent","temp","qsa","chr","toUpperCase","fragment","html","properties","container","$1","each","attr","isZ","init","trim","find","ready","args","arguments","forEach","found","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","querySelectorAll","contains","isEmptyObject","isNumeric","val","num","Number","isNaN","isFinite","inArray","elem","camelCase","uuid","support","expr","noop","elements","callback","values","grep","JSON","parse","split","reduce","sort","splice","toArray","el","size","every","not","add","is","excludes","has","eq","first","last","$this","some","closest","collection","_","parents","ancestors","pluck","contents","contentDocument","siblings","child","empty","show","replaceWith","newContent","before","wrap","structure","func","clone","index","wrapAll","cloneNode","wrapInner","self","unwrap","hide","css","toggle","setting","prev","next","originHtml","text","newText","textContent","join","removeAttr","attribute","prop","removeProp","data","attrName","multiple","selected","offset","coordinates","coords","parentOffset","offsetParent","props","top","left","pageXOffset","pageYOffset","Math","round","height","computedStyle","removeProperty","hasClass","addClass","cls","removeClass","toggleClass","when","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","position","detach","dimension","dimensionProperty","operator","operatorIndex","inside","argType","arr","copyByClone","nextSibling","firstChild","parentInDocument","insertBefore","ownerDocument","defaultView","zid","_zid","findHandlers","event","ns","matcher","matcherFor","handlers","handler","sel","parts","eventCapture","captureSetting","del","focusinSupported","focus","realEvent","hover","events","delegator","capture","id","set","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","_args","preventDefault","stopPropagation","removeEventListener","isDefaultPrevented","eventMethods","predicate","sourceMethod","returnTrue","returnFalse","timeStamp","Date","now","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","ignoreProperties","isString","specialEvents","blur","mouseenter","mouseleave","click","mousedown","mouseup","mousemove","proxyFn","unshift","TypeError","bind","unbind","off","one","stopImmediatePropagation","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","trigger","Event","dispatchEvent","triggerHandler","createEvent","bubbles","initEvent","triggerAndReturn","eventName","triggerGlobal","settings","global","ajaxStart","active","ajaxStop","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","success","resolveWith","ajaxComplete","ajaxError","rejectWith","status","complete","ajaxDataFilter","dataFilter","mimeToDataType","mime","htmlType","jsonType","scriptTypeRE","xmlTypeRE","appendQuery","url","query","serializeData","options","processData","param","traditional","dataType","parseArguments","serialize","params","scope","hash","jsonpID","rscript","blankRE","originAnchor","href","location","ajaxJSONP","ajax","responseData","abortTimeout","_callbackName","jsonpCallback","callbackName","originalCallback","abort","errorType","ajaxSettings","XMLHttpRequest","accepts","json","xml","crossDomain","cache","urlAnchor","hashIndex","Deferred","protocol","host","hasPlaceholder","jsonp","headers","setHeader","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","getResponseHeader","responseType","response","responseText","eval","responseXML","statusText","open","username","password","xhrFields","send","post","getJSON","load","escape","encodeURIComponent","serializeArray","field","checked","elm","submit","nativeGetComputedStyle","pseudoElement","19","27","3","31","37","list","mediaQuery","alreadyImportedModules","38","addStylesToDom","styles","domStyle","stylesInDom","refs","addStyle","listToStyles","newStyles","media","sourceMap","part","insertStyleElement","styleElement","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","removeStyleElement","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","applyToTag","newObj","replaceText","cssNode","createTextNode","unescape","stringify","blob","oldSrc","memoize","memo","isOldIE","DEBUG","newList","mayRemove","textStore","replacement","Boolean"],"mappings":"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","file":"js/global.js?v=76e6ae63","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t8: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"js/\" + chunkId + \".js?v=\" + \"76e6ae63\" + \"\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 31);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n!function () {\n var a = \"@charset \\\"utf-8\\\";html{overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html *{outline:0;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}html,body{font-family:sans-serif}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{margin:0;padding:0}input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}abbr,acronym{border:0;font-variant:normal}del{text-decoration:line-through}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:500}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:500}q:before,q:after{content:''}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ins,a{text-decoration:none}\",\n b = document.createElement(\"style\");if (document.getElementsByTagName(\"head\")[0].appendChild(b), b.styleSheet) b.styleSheet.disabled || (b.styleSheet.cssText = a);else try {\n b.innerHTML = a;\n } catch (c) {\n b.innerText = a;\n }\n}();!function (a, b) {\n function c() {\n var b = f.getBoundingClientRect().width;b / i > 540 && (b = 540 * i);var c = b / 10;f.style.fontSize = c + \"px\", k.rem = a.rem = c;\n }var d,\n e = a.document,\n f = e.documentElement,\n g = e.querySelector('meta[name=\"viewport\"]'),\n h = e.querySelector('meta[name=\"flexible\"]'),\n i = 0,\n j = 0,\n k = b.flexible || (b.flexible = {});if (g) {\n console.warn(\"将根据已有的meta标签来设置缩放比例\");var l = g.getAttribute(\"content\").match(/initial\\-scale=([\\d\\.]+)/);l && (j = parseFloat(l[1]), i = parseInt(1 / j));\n } else if (h) {\n var m = h.getAttribute(\"content\");if (m) {\n var n = m.match(/initial\\-dpr=([\\d\\.]+)/),\n o = m.match(/maximum\\-dpr=([\\d\\.]+)/);n && (i = parseFloat(n[1]), j = parseFloat((1 / i).toFixed(2))), o && (i = parseFloat(o[1]), j = parseFloat((1 / i).toFixed(2)));\n }\n }if (!i && !j) {\n var p = (a.navigator.appVersion.match(/android/gi), a.navigator.appVersion.match(/iphone/gi)),\n q = a.devicePixelRatio;i = p ? q >= 3 && (!i || i >= 3) ? 3 : q >= 2 && (!i || i >= 2) ? 2 : 1 : 1, j = 1 / i;\n }if (f.setAttribute(\"data-dpr\", i), !g) if (g = e.createElement(\"meta\"), g.setAttribute(\"name\", \"viewport\"), g.setAttribute(\"content\", \"initial-scale=\" + j + \", maximum-scale=\" + j + \", minimum-scale=\" + j + \", user-scalable=no\"), f.firstElementChild) f.firstElementChild.appendChild(g);else {\n var r = e.createElement(\"div\");r.appendChild(g), e.write(r.innerHTML);\n }a.addEventListener(\"resize\", function () {\n clearTimeout(d), d = setTimeout(c, 300);\n }, !1), a.addEventListener(\"pageshow\", function (a) {\n a.persisted && (clearTimeout(d), d = setTimeout(c, 300));\n }, !1), \"complete\" === e.readyState ? e.body.style.fontSize = 12 * i + \"px\" : e.addEventListener(\"DOMContentLoaded\", function () {\n e.body.style.fontSize = 12 * i + \"px\";\n }, !1), c(), k.dpr = a.dpr = i, k.refreshRem = c, k.rem2px = function (a) {\n var b = parseFloat(a) * this.rem;return \"string\" == typeof a && a.match(/rem$/) && (b += \"px\"), b;\n }, k.px2rem = function (a) {\n var b = parseFloat(a) / this.rem;return \"string\" == typeof a && a.match(/px$/) && (b += \"rem\"), b;\n };\n}(window, window.lib || (window.lib = {}));\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n;(function ($) {\n\t$('body').on('click', '[node-type=\"share\"]', function () {\n\t\tif (navigator.userAgent.toLocaleLowerCase().indexOf('micromessenger') > -1) {\n\t\t\t$('body').append('<section class=\"layer\" id=\"sharelayer\" style=\"display:block;\">\\n\\t <section class=\"shareguide\">\\n\\t <img src=' + __webpack_require__(27) + '>\\n\\t </section>\\n\\t </section>');\n\n\t\t\t$('#sharelayer').on('click', function () {\n\t\t\t\t$(this).remove();\n\t\t\t});\n\t\t}\n\t});\n})(Zepto);\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\nvar Zepto = function () {\n var undefined,\n key,\n $,\n classList,\n emptyArray = [],\n _concat = emptyArray.concat,\n _filter = emptyArray.filter,\n _slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {},\n classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1, 'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n adjacencyOperators = ['after', 'prepend', 'before', 'append'],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize,\n uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray || function (object) {\n return object instanceof Array;\n };\n\n zepto.matches = function (element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false;\n var matchesSelector = element.matches || element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;\n if (matchesSelector) return matchesSelector.call(element, selector);\n // fall back to performing a selector:\n var match,\n parent = element.parentNode,\n temp = !parent;\n if (temp) (parent = tempParent).appendChild(element);\n match = ~zepto.qsa(parent, selector).indexOf(element);\n temp && tempParent.removeChild(element);\n return match;\n };\n\n function type(obj) {\n return obj == null ? String(obj) : class2type[toString.call(obj)] || \"object\";\n }\n\n function isFunction(value) {\n return type(value) == \"function\";\n }\n function isWindow(obj) {\n return obj != null && obj == obj.window;\n }\n function isDocument(obj) {\n return obj != null && obj.nodeType == obj.DOCUMENT_NODE;\n }\n function isObject(obj) {\n return type(obj) == \"object\";\n }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj);\n\n return 'function' != type && !isWindow(obj) && ('array' == type || length === 0 || typeof length == 'number' && length > 0 && length - 1 in obj);\n }\n\n function compact(array) {\n return _filter.call(array, function (item) {\n return item != null;\n });\n }\n function flatten(array) {\n return array.length > 0 ? $.fn.concat.apply([], array) : array;\n }\n camelize = function camelize(str) {\n return str.replace(/-+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n };\n function dasherize(str) {\n return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();\n }\n uniq = function uniq(array) {\n return _filter.call(array, function (item, idx) {\n return array.indexOf(item) == idx;\n });\n };\n\n function classRE(name) {\n return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)');\n }\n\n function maybeAddPx(name, value) {\n return typeof value == \"number\" && !cssNumber[dasherize(name)] ? value + \"px\" : value;\n }\n\n function defaultDisplay(nodeName) {\n var element, display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getComputedStyle(element, '').getPropertyValue(\"display\");\n element.parentNode.removeChild(element);\n display == \"none\" && (display = \"block\");\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n }\n\n function _children(element) {\n return 'children' in element ? _slice.call(element.children) : $.map(element.childNodes, function (node) {\n if (node.nodeType == 1) return node;\n });\n }\n\n function Z(dom, selector) {\n var i,\n len = dom ? dom.length : 0;\n for (i = 0; i < len; i++) {\n this[i] = dom[i];\n }this.length = len;\n this.selector = selector || '';\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function (html, name, properties) {\n var dom, nodes, container;\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\");\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1;\n if (!(name in containers)) name = '*';\n\n container = containers[name];\n container.innerHTML = '' + html;\n dom = $.each(_slice.call(container.childNodes), function () {\n container.removeChild(this);\n });\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom);\n $.each(properties, function (key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);\n });\n }\n\n return dom;\n };\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function (dom, selector) {\n return new Z(dom, selector);\n };\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function (object) {\n return object instanceof zepto.Z;\n };\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function (selector, context) {\n var dom;\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z();\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim();\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector);\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector;else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector);\n // Wrap DOM nodes.\n else if (isObject(selector)) dom = [selector], selector = null;\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector);\n };\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function $(selector, context) {\n return zepto.init(selector, context);\n };\n\n function extend(target, source, deep) {\n for (key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};\n if (isArray(source[key]) && !isArray(target[key])) target[key] = [];\n extend(target[key], source[key], deep);\n } else if (source[key] !== undefined) target[key] = source[key];\n }\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function (target) {\n var deep,\n args = _slice.call(arguments, 1);\n if (typeof target == 'boolean') {\n deep = target;\n target = args.shift();\n }\n args.forEach(function (arg) {\n extend(target, arg, deep);\n });\n return target;\n };\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function (element, selector) {\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly);\n return element.getElementById && isSimple && maybeID ? // Safari DocumentFragment doesn't have getElementById\n (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : _slice.call(isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n );\n };\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector);\n }\n\n $.contains = document.documentElement.contains ? function (parent, node) {\n return parent !== node && parent.contains(node);\n } : function (parent, node) {\n while (node && (node = node.parentNode)) {\n if (node === parent) return true;\n }return false;\n };\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg;\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value);\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value) {\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined;\n\n if (value === undefined) return svg ? klass.baseVal : klass;\n svg ? klass.baseVal = value : node.className = value;\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ? value == \"true\" || (value == \"false\" ? false : value == \"null\" ? null : +value + \"\" == value ? +value : /^[\\[\\{]/.test(value) ? $.parseJSON(value) : value) : value;\n } catch (e) {\n return value;\n }\n }\n\n $.type = type;\n $.isFunction = isFunction;\n $.isWindow = isWindow;\n $.isArray = isArray;\n $.isPlainObject = isPlainObject;\n\n $.isEmptyObject = function (obj) {\n var name;\n for (name in obj) {\n return false;\n }return true;\n };\n\n $.isNumeric = function (val) {\n var num = Number(val),\n type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n return val != null && type != 'boolean' && (type != 'string' || val.length) && !isNaN(num) && isFinite(num) || false;\n };\n\n $.inArray = function (elem, array, i) {\n return emptyArray.indexOf.call(array, elem, i);\n };\n\n $.camelCase = camelize;\n $.trim = function (str) {\n return str == null ? \"\" : String.prototype.trim.call(str);\n };\n\n // plugin compatibility\n $.uuid = 0;\n $.support = {};\n $.expr = {};\n $.noop = function () {};\n\n $.map = function (elements, callback) {\n var value,\n values = [],\n i,\n key;\n if (likeArray(elements)) for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i);\n if (value != null) values.push(value);\n } else for (key in elements) {\n value = callback(elements[key], key);\n if (value != null) values.push(value);\n }\n return flatten(values);\n };\n\n $.each = function (elements, callback) {\n var i, key;\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++) {\n if (callback.call(elements[i], i, elements[i]) === false) return elements;\n }\n } else {\n for (key in elements) {\n if (callback.call(elements[key], key, elements[key]) === false) return elements;\n }\n }\n\n return elements;\n };\n\n $.grep = function (elements, callback) {\n return _filter.call(elements, callback);\n };\n\n if (window.JSON) $.parseJSON = JSON.parse;\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function concat() {\n var i,\n value,\n args = [];\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i];\n args[i] = zepto.isZ(value) ? value.toArray() : value;\n }\n return _concat.apply(zepto.isZ(this) ? this.toArray() : this, args);\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function map(fn) {\n return $($.map(this, function (el, i) {\n return fn.call(el, i, el);\n }));\n },\n slice: function slice() {\n return $(_slice.apply(this, arguments));\n },\n\n ready: function ready(callback) {\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {\n callback($);\n }, false);\n return this;\n },\n get: function get(idx) {\n return idx === undefined ? _slice.call(this) : this[idx >= 0 ? idx : idx + this.length];\n },\n toArray: function toArray() {\n return this.get();\n },\n size: function size() {\n return this.length;\n },\n remove: function remove() {\n return this.each(function () {\n if (this.parentNode != null) this.parentNode.removeChild(this);\n });\n },\n each: function each(callback) {\n emptyArray.every.call(this, function (el, idx) {\n return callback.call(el, idx, el) !== false;\n });\n return this;\n },\n filter: function filter(selector) {\n if (isFunction(selector)) return this.not(this.not(selector));\n return $(_filter.call(this, function (element) {\n return zepto.matches(element, selector);\n }));\n },\n add: function add(selector, context) {\n return $(uniq(this.concat($(selector, context))));\n },\n is: function is(selector) {\n return this.length > 0 && zepto.matches(this[0], selector);\n },\n not: function not(selector) {\n var nodes = [];\n if (isFunction(selector) && selector.call !== undefined) this.each(function (idx) {\n if (!selector.call(this, idx)) nodes.push(this);\n });else {\n var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? _slice.call(selector) : $(selector);\n this.forEach(function (el) {\n if (excludes.indexOf(el) < 0) nodes.push(el);\n });\n }\n return $(nodes);\n },\n has: function has(selector) {\n return this.filter(function () {\n return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();\n });\n },\n eq: function eq(idx) {\n return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);\n },\n first: function first() {\n var el = this[0];\n return el && !isObject(el) ? el : $(el);\n },\n last: function last() {\n var el = this[this.length - 1];\n return el && !isObject(el) ? el : $(el);\n },\n find: function find(selector) {\n var result,\n $this = this;\n if (!selector) result = $();else if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object') result = $(selector).filter(function () {\n var node = this;\n return emptyArray.some.call($this, function (parent) {\n return $.contains(parent, node);\n });\n });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {\n return zepto.qsa(this, selector);\n });\n return result;\n },\n closest: function closest(selector, context) {\n var nodes = [],\n collection = (typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object' && $(selector);\n this.each(function (_, node) {\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) {\n node = node !== context && !isDocument(node) && node.parentNode;\n }if (node && nodes.indexOf(node) < 0) nodes.push(node);\n });\n return $(nodes);\n },\n parents: function parents(selector) {\n var ancestors = [],\n nodes = this;\n while (nodes.length > 0) {\n nodes = $.map(nodes, function (node) {\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node);\n return node;\n }\n });\n }return filtered(ancestors, selector);\n },\n parent: function parent(selector) {\n return filtered(uniq(this.pluck('parentNode')), selector);\n },\n children: function children(selector) {\n return filtered(this.map(function () {\n return _children(this);\n }), selector);\n },\n contents: function contents() {\n return this.map(function () {\n return this.contentDocument || _slice.call(this.childNodes);\n });\n },\n siblings: function siblings(selector) {\n return filtered(this.map(function (i, el) {\n return _filter.call(_children(el.parentNode), function (child) {\n return child !== el;\n });\n }), selector);\n },\n empty: function empty() {\n return this.each(function () {\n this.innerHTML = '';\n });\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function pluck(property) {\n return $.map(this, function (el) {\n return el[property];\n });\n },\n show: function show() {\n return this.each(function () {\n this.style.display == \"none\" && (this.style.display = '');\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\") this.style.display = defaultDisplay(this.nodeName);\n });\n },\n replaceWith: function replaceWith(newContent) {\n return this.before(newContent).remove();\n },\n wrap: function wrap(structure) {\n var func = isFunction(structure);\n if (this[0] && !func) var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1;\n\n return this.each(function (index) {\n $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);\n });\n },\n wrapAll: function wrapAll(structure) {\n if (this[0]) {\n $(this[0]).before(structure = $(structure));\n var children;\n // drill down to the inmost element\n while ((children = structure.children()).length) {\n structure = children.first();\n }$(structure).append(this);\n }\n return this;\n },\n wrapInner: function wrapInner(structure) {\n var func = isFunction(structure);\n return this.each(function (index) {\n var self = $(this),\n contents = self.contents(),\n dom = func ? structure.call(this, index) : structure;\n contents.length ? contents.wrapAll(dom) : self.append(dom);\n });\n },\n unwrap: function unwrap() {\n this.parent().each(function () {\n $(this).replaceWith($(this).children());\n });\n return this;\n },\n clone: function clone() {\n return this.map(function () {\n return this.cloneNode(true);\n });\n },\n hide: function hide() {\n return this.css(\"display\", \"none\");\n },\n toggle: function toggle(setting) {\n return this.each(function () {\n var el = $(this);(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide();\n });\n },\n prev: function prev(selector) {\n return $(this.pluck('previousElementSibling')).filter(selector || '*');\n },\n next: function next(selector) {\n return $(this.pluck('nextElementSibling')).filter(selector || '*');\n },\n html: function html(_html) {\n return 0 in arguments ? this.each(function (idx) {\n var originHtml = this.innerHTML;\n $(this).empty().append(funcArg(this, _html, idx, originHtml));\n }) : 0 in this ? this[0].innerHTML : null;\n },\n text: function text(_text) {\n return 0 in arguments ? this.each(function (idx) {\n var newText = funcArg(this, _text, idx, this.textContent);\n this.textContent = newText == null ? '' : '' + newText;\n }) : 0 in this ? this.pluck('textContent').join(\"\") : null;\n },\n attr: function attr(name, value) {\n var result;\n return typeof name == 'string' && !(1 in arguments) ? 0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined : this.each(function (idx) {\n if (this.nodeType !== 1) return;\n if (isObject(name)) for (key in name) {\n setAttribute(this, key, name[key]);\n } else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));\n });\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n this.nodeType === 1 && name.split(' ').forEach(function (attribute) {\n setAttribute(this, attribute);\n }, this);\n });\n },\n prop: function prop(name, value) {\n name = propMap[name] || name;\n return 1 in arguments ? this.each(function (idx) {\n this[name] = funcArg(this, value, idx, this[name]);\n }) : this[0] && this[0][name];\n },\n removeProp: function removeProp(name) {\n name = propMap[name] || name;\n return this.each(function () {\n delete this[name];\n });\n },\n data: function data(name, value) {\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();\n\n var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);\n\n return data !== null ? deserializeValue(data) : undefined;\n },\n val: function val(value) {\n if (0 in arguments) {\n if (value == null) value = \"\";\n return this.each(function (idx) {\n this.value = funcArg(this, value, idx, this.value);\n });\n } else {\n return this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {\n return this.selected;\n }).pluck('value') : this[0].value);\n }\n },\n offset: function offset(coordinates) {\n if (coordinates) return this.each(function (index) {\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n };\n\n if ($this.css('position') == 'static') props['position'] = 'relative';\n $this.css(props);\n });\n if (!this.length) return null;\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) return { top: 0, left: 0 };\n var obj = this[0].getBoundingClientRect();\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n };\n },\n css: function css(property, value) {\n if (arguments.length < 2) {\n var element = this[0];\n if (typeof property == 'string') {\n if (!element) return;\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property);\n } else if (isArray(property)) {\n if (!element) return;\n var props = {};\n var computedStyle = getComputedStyle(element, '');\n $.each(property, function (_, prop) {\n props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);\n });\n return props;\n }\n }\n\n var css = '';\n if (type(property) == 'string') {\n if (!value && value !== 0) this.each(function () {\n this.style.removeProperty(dasherize(property));\n });else css = dasherize(property) + \":\" + maybeAddPx(property, value);\n } else {\n for (key in property) {\n if (!property[key] && property[key] !== 0) this.each(function () {\n this.style.removeProperty(dasherize(key));\n });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';\n }\n }\n\n return this.each(function () {\n this.style.cssText += ';' + css;\n });\n },\n index: function index(element) {\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);\n },\n hasClass: function hasClass(name) {\n if (!name) return false;\n return emptyArray.some.call(this, function (el) {\n return this.test(className(el));\n }, classRE(name));\n },\n addClass: function addClass(name) {\n if (!name) return this;\n return this.each(function (idx) {\n if (!('className' in this)) return;\n classList = [];\n var cls = className(this),\n newName = funcArg(this, name, idx, cls);\n newName.split(/\\s+/g).forEach(function (klass) {\n if (!$(this).hasClass(klass)) classList.push(klass);\n }, this);\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"));\n });\n },\n removeClass: function removeClass(name) {\n return this.each(function (idx) {\n if (!('className' in this)) return;\n if (name === undefined) return className(this, '');\n classList = className(this);\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function (klass) {\n classList = classList.replace(classRE(klass), \" \");\n });\n className(this, classList.trim());\n });\n },\n toggleClass: function toggleClass(name, when) {\n if (!name) return this;\n return this.each(function (idx) {\n var $this = $(this),\n names = funcArg(this, name, idx, className(this));\n names.split(/\\s+/g).forEach(function (klass) {\n (when === undefined ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);\n });\n });\n },\n scrollTop: function scrollTop(value) {\n if (!this.length) return;\n var hasScrollTop = 'scrollTop' in this[0];\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;\n return this.each(hasScrollTop ? function () {\n this.scrollTop = value;\n } : function () {\n this.scrollTo(this.scrollX, value);\n });\n },\n scrollLeft: function scrollLeft(value) {\n if (!this.length) return;\n var hasScrollLeft = 'scrollLeft' in this[0];\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;\n return this.each(hasScrollLeft ? function () {\n this.scrollLeft = value;\n } : function () {\n this.scrollTo(value, this.scrollY);\n });\n },\n position: function position() {\n if (!this.length) return;\n\n var elem = this[0],\n\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat($(elem).css('margin-top')) || 0;\n offset.left -= parseFloat($(elem).css('margin-left')) || 0;\n\n // Add offsetParent borders\n parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;\n parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0;\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n },\n offsetParent: function offsetParent() {\n return this.map(function () {\n var parent = this.offsetParent || document.body;\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\") {\n parent = parent.offsetParent;\n }return parent;\n });\n }\n\n // for now\n };$.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function (dimension) {\n var dimensionProperty = dimension.replace(/./, function (m) {\n return m[0].toUpperCase();\n });\n\n $.fn[dimension] = function (value) {\n var offset,\n el = this[0];\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {\n el = $(this);\n el.css(dimension, funcArg(this, value, idx, el[dimension]()));\n });\n };\n });\n\n function traverseNode(node, fun) {\n fun(node);\n for (var i = 0, len = node.childNodes.length; i < len; i++) {\n traverseNode(node.childNodes[i], fun);\n }\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function (operator, operatorIndex) {\n var inside = operatorIndex % 2; //=> prepend, append\n\n $.fn[operator] = function () {\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType,\n nodes = $.map(arguments, function (arg) {\n var arr = [];\n argType = type(arg);\n if (argType == \"array\") {\n arg.forEach(function (el) {\n if (el.nodeType !== undefined) return arr.push(el);else if ($.zepto.isZ(el)) return arr = arr.concat(el.get());\n arr = arr.concat(zepto.fragment(el));\n });\n return arr;\n }\n return argType == \"object\" || arg == null ? arg : zepto.fragment(arg);\n }),\n parent,\n copyByClone = this.length > 1;\n if (nodes.length < 1) return this;\n\n return this.each(function (_, target) {\n parent = inside ? target : target.parentNode;\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;\n\n var parentInDocument = $.contains(document.documentElement, parent);\n\n nodes.forEach(function (node) {\n if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();\n\n parent.insertBefore(node, target);\n if (parentInDocument) traverseNode(node, function (el) {\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) {\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window;\n target['eval'].call(target, el.innerHTML);\n }\n });\n });\n });\n };\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {\n $(html)[operator](this);\n return this;\n };\n });\n\n zepto.Z.prototype = Z.prototype = $.fn;\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq;\n zepto.deserializeValue = deserializeValue;\n $.zepto = zepto;\n\n return $;\n}();\n\nwindow.Zepto = Zepto;\nwindow.$ === undefined && (window.$ = Zepto);(function ($) {\n var _zid = 1,\n undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function isString(obj) {\n return typeof obj == 'string';\n },\n handlers = {},\n specialEvents = {},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' };\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';\n\n function zid(element) {\n return element._zid || (element._zid = _zid++);\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event);\n if (event.ns) var matcher = matcherFor(event.ns);\n return (handlers[zid(element)] || []).filter(function (handler) {\n return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);\n });\n }\n function parse(event) {\n var parts = ('' + event).split('.');\n return { e: parts[0], ns: parts.slice(1).sort().join(' ') };\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;\n }\n\n function realEvent(type) {\n return hover[type] || focusinSupported && focus[type] || type;\n }\n\n function add(element, events, fn, data, selector, delegator, capture) {\n var id = zid(element),\n set = handlers[id] || (handlers[id] = []);\n events.split(/\\s/).forEach(function (event) {\n if (event == 'ready') return $(document).ready(fn);\n var handler = parse(event);\n handler.fn = fn;\n handler.sel = selector;\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function fn(e) {\n var related = e.relatedTarget;\n if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);\n };\n handler.del = delegator;\n var callback = delegator || fn;\n handler.proxy = function (e) {\n e = compatible(e);\n if (e.isImmediatePropagationStopped()) return;\n e.data = data;\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args));\n if (result === false) e.preventDefault(), e.stopPropagation();\n return result;\n };\n handler.i = set.length;\n set.push(handler);\n if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n }\n function remove(element, events, fn, selector, capture) {\n var id = zid(element);(events || '').split(/\\s/).forEach(function (event) {\n findHandlers(element, event, fn, selector).forEach(function (handler) {\n delete handlers[id][handler.i];\n if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n });\n }\n\n $.event = { add: add, remove: remove };\n\n $.proxy = function (fn, context) {\n var args = 2 in arguments && slice.call(arguments, 2);\n if (isFunction(fn)) {\n var proxyFn = function proxyFn() {\n return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);\n };\n proxyFn._zid = zid(fn);\n return proxyFn;\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn);\n return $.proxy.apply(null, args);\n } else {\n return $.proxy(fn[context], fn);\n }\n } else {\n throw new TypeError(\"expected function\");\n }\n };\n\n $.fn.bind = function (event, data, callback) {\n return this.on(event, data, callback);\n };\n $.fn.unbind = function (event, callback) {\n return this.off(event, callback);\n };\n $.fn.one = function (event, selector, data, callback) {\n return this.on(event, selector, data, callback, 1);\n };\n\n var returnTrue = function returnTrue() {\n return true;\n },\n returnFalse = function returnFalse() {\n return false;\n },\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n };\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event);\n\n $.each(eventMethods, function (name, predicate) {\n var sourceMethod = source[name];\n event[name] = function () {\n this[predicate] = returnTrue;\n return sourceMethod && sourceMethod.apply(source, arguments);\n };\n event[predicate] = returnFalse;\n });\n\n event.timeStamp || (event.timeStamp = Date.now());\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;\n }\n return event;\n }\n\n function createProxy(event) {\n var key,\n proxy = { originalEvent: event };\n for (key in event) {\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key];\n }return compatible(proxy, event);\n }\n\n $.fn.delegate = function (selector, event, callback) {\n return this.on(event, selector, callback);\n };\n $.fn.undelegate = function (selector, event, callback) {\n return this.off(event, selector, callback);\n };\n\n $.fn.live = function (event, callback) {\n $(document.body).delegate(this.selector, event, callback);\n return this;\n };\n $.fn.die = function (event, callback) {\n $(document.body).undelegate(this.selector, event, callback);\n return this;\n };\n\n $.fn.on = function (event, selector, data, callback, one) {\n var autoRemove,\n delegator,\n $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.on(type, selector, data, fn, one);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined;\n if (callback === undefined || data === false) callback = data, data = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function (_, element) {\n if (one) autoRemove = function autoRemove(e) {\n remove(element, e.type, callback);\n return callback.apply(this, arguments);\n };\n\n if (selector) delegator = function delegator(e) {\n var evt,\n match = $(e.target).closest(selector, element).get(0);\n if (match && match !== element) {\n evt = $.extend(createProxy(e), { currentTarget: match, liveFired: element });\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));\n }\n };\n\n add(element, event, callback, data, selector, delegator || autoRemove);\n });\n };\n $.fn.off = function (event, selector, callback) {\n var $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.off(type, selector, fn);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function () {\n remove(this, event, callback, selector);\n });\n };\n\n $.fn.trigger = function (event, args) {\n event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);\n event._args = args;\n return this.each(function () {\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]();\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);\n });\n };\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function (event, args) {\n var e, result;\n this.each(function (i, element) {\n e = createProxy(isString(event) ? $.Event(event) : event);\n e._args = args;\n e.target = element;\n $.each(findHandlers(element, event.type || event), function (i, handler) {\n result = handler.proxy(e);\n if (e.isImmediatePropagationStopped()) return false;\n });\n });\n return result;\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {\n $.fn[event] = function (callback) {\n return 0 in arguments ? this.bind(event, callback) : this.trigger(event);\n };\n });\n\n $.Event = function (type, props) {\n if (!isString(type)) props = type, type = props.type;\n var event = document.createEvent(specialEvents[type] || 'Events'),\n bubbles = true;\n if (props) for (var name in props) {\n name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];\n }event.initEvent(type, bubbles, true);\n return compatible(event);\n };\n})(Zepto);(function ($) {\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a');\n\n originAnchor.href = window.location.href;\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName);\n $(context).trigger(event, data);\n return !event.isDefaultPrevented();\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data);\n }\n\n // Number of active Ajax requests\n $.active = 0;\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');\n }\n function ajaxStop(settings) {\n if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context;\n if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context,\n status = 'success';\n settings.success.call(context, data, status, xhr);\n if (deferred) deferred.resolveWith(context, [data, status, xhr]);\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);\n ajaxComplete(status, xhr, settings);\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context;\n settings.error.call(context, xhr, type, error);\n if (deferred) deferred.rejectWith(context, [xhr, type, error]);\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);\n ajaxComplete(type, xhr, settings);\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context;\n settings.complete.call(context, xhr, status);\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);\n ajaxStop(settings);\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data;\n var context = settings.context;\n return settings.dataFilter.call(context, data, type);\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function (options, deferred) {\n if (!('type' in options)) return $.ajax(options);\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'Zepto' + jsonpID++,\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function abort(errorType) {\n $(script).triggerHandler('error', errorType || 'abort');\n },\n xhr = { abort: abort },\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n $(script).on('load error', function (e, errorType) {\n clearTimeout(abortTimeout);\n $(script).off().remove();\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred);\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred);\n }\n\n window[callbackName] = originalCallback;\n if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);\n\n originalCallback = responseData = undefined;\n });\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort');\n return xhr;\n }\n\n window[callbackName] = function () {\n responseData = arguments;\n };\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName);\n document.head.appendChild(script);\n\n if (options.timeout > 0) abortTimeout = setTimeout(function () {\n abort('timeout');\n }, options.timeout);\n\n return xhr;\n };\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function xhr() {\n return new window.XMLHttpRequest();\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n };\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0];\n return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';\n }\n\n function appendQuery(url, query) {\n if (query == '') return url;\n return (url + '&' + query).replace(/[&?]{1,2}/, '?');\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\") options.data = $.param(options.data, options.traditional);\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) options.url = appendQuery(options.url, options.data), options.data = undefined;\n }\n\n $.ajax = function (options) {\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor,\n hashIndex;\n for (key in $.ajaxSettings) {\n if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];\n }ajaxStart(settings);\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a');\n urlAnchor.href = settings.url;\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href;\n settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;\n }\n\n if (!settings.url) settings.url = window.location.toString();\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);\n serializeData(settings);\n\n var dataType = settings.dataType,\n hasPlaceholder = /\\?.+=\\?/.test(settings.url);\n if (hasPlaceholder) dataType = 'jsonp';\n\n if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');\n return $.ajaxJSONP(settings, deferred);\n }\n\n var mime = settings.accepts[dataType],\n headers = {},\n setHeader = function setHeader(name, value) {\n headers[name.toLowerCase()] = [name, value];\n },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');\n setHeader('Accept', mime || '*/*');\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];\n xhr.overrideMimeType && xhr.overrideMimeType(mime);\n }\n if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');\n\n if (settings.headers) for (name in settings.headers) {\n setHeader(name, settings.headers[name]);\n }xhr.setRequestHeader = setHeader;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty;\n clearTimeout(abortTimeout);\n var result,\n error = false;\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') result = xhr.response;else {\n result = xhr.responseText;\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings);\n if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);\n } catch (e) {\n error = e;\n }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred);\n }\n\n ajaxSuccess(result, xhr, settings, deferred);\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);\n }\n }\n };\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort();\n ajaxError(null, 'abort', xhr, settings, deferred);\n return xhr;\n }\n\n var async = 'async' in settings ? settings.async : true;\n xhr.open(settings.type, settings.url, async, settings.username, settings.password);\n\n if (settings.xhrFields) for (name in settings.xhrFields) {\n xhr[name] = settings.xhrFields[name];\n }for (name in headers) {\n nativeSetHeader.apply(xhr, headers[name]);\n }if (settings.timeout > 0) abortTimeout = setTimeout(function () {\n xhr.onreadystatechange = empty;\n xhr.abort();\n ajaxError(null, 'timeout', xhr, settings, deferred);\n }, settings.timeout);\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null);\n return xhr;\n };\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined;\n if (!$.isFunction(success)) dataType = success, success = undefined;\n return {\n url: url,\n data: data,\n success: success,\n dataType: dataType\n };\n }\n\n $.get = function () /* url, data, success, dataType */{\n return $.ajax(parseArguments.apply(null, arguments));\n };\n\n $.post = function () /* url, data, success, dataType */{\n var options = parseArguments.apply(null, arguments);\n options.type = 'POST';\n return $.ajax(options);\n };\n\n $.getJSON = function () /* url, data, success */{\n var options = parseArguments.apply(null, arguments);\n options.dataType = 'json';\n return $.ajax(options);\n };\n\n $.fn.load = function (url, data, success) {\n if (!this.length) return this;\n var self = this,\n parts = url.split(/\\s/),\n selector,\n options = parseArguments(url, data, success),\n callback = options.success;\n if (parts.length > 1) options.url = parts[0], selector = parts[1];\n options.success = function (response) {\n self.html(selector ? $('<div>').html(response.replace(rscript, \"\")).find(selector) : response);\n callback && callback.apply(self, arguments);\n };\n $.ajax(options);\n return this;\n };\n\n var escape = encodeURIComponent;\n\n function serialize(params, obj, traditional, scope) {\n var type,\n array = $.isArray(obj),\n hash = $.isPlainObject(obj);\n $.each(obj, function (key, value) {\n type = $.type(value);\n if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']';\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value);\n // recurse into nested objects\n else if (type == \"array\" || !traditional && type == \"object\") serialize(params, value, traditional, key);else params.add(key, value);\n });\n }\n\n $.param = function (obj, traditional) {\n var params = [];\n params.add = function (key, value) {\n if ($.isFunction(value)) value = value();\n if (value == null) value = \"\";\n this.push(escape(key) + '=' + escape(value));\n };\n serialize(params, obj, traditional);\n return params.join('&').replace(/%20/g, '+');\n };\n})(Zepto);(function ($) {\n $.fn.serializeArray = function () {\n var name,\n type,\n result = [],\n add = function add(value) {\n if (value.forEach) return value.forEach(add);\n result.push({ name: name, value: value });\n };\n if (this[0]) $.each(this[0].elements, function (_, field) {\n type = field.type, name = field.name;\n if (name && field.nodeName.toLowerCase() != 'fieldset' && !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' && (type != 'radio' && type != 'checkbox' || field.checked)) add($(field).val());\n });\n return result;\n };\n\n $.fn.serialize = function () {\n var result = [];\n this.serializeArray().forEach(function (elm) {\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value));\n });\n return result.join('&');\n };\n\n $.fn.submit = function (callback) {\n if (0 in arguments) this.bind('submit', callback);else if (this.length) {\n var event = $.Event('submit');\n this.eq(0).trigger(event);\n if (!event.isDefaultPrevented()) this.get(0).submit();\n }\n return this;\n };\n})(Zepto);(function () {\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined);\n } catch (e) {\n var nativeGetComputedStyle = getComputedStyle;\n window.getComputedStyle = function (element, pseudoElement) {\n try {\n return nativeGetComputedStyle(element, pseudoElement);\n } catch (e) {\n return null;\n }\n };\n }\n})();\n\nmodule.exports = Zepto;\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 27:\n/***/ (function(module, exports) {\n\nmodule.exports = \"../images/8eaa4804.shareguide.png\";\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(19);\n\n__webpack_require__(11);\n\n__webpack_require__(17);\n\n__webpack_require__(12);\n\n/***/ }),\n\n/***/ 31:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(3);\n\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function () {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\tvar result = [];\n\t\tfor (var i = 0; i < this.length; i++) {\n\t\t\tvar item = this[i];\n\t\t\tif (item[2]) {\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\n\t\t\t} else {\n\t\t\t\tresult.push(item[1]);\n\t\t\t}\n\t\t}\n\t\treturn result.join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function (modules, mediaQuery) {\n\t\tif (typeof modules === \"string\") modules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor (var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif (typeof id === \"number\") alreadyImportedModules[id] = true;\n\t\t}\n\t\tfor (i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif (typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif (mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if (mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\treturn /msie [6-9]\\b/.test(self.navigator.userAgent.toLowerCase());\n\t}),\n\tgetHeadElement = memoize(function () {\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [];\n\nmodule.exports = function(list, options) {\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the bottom of <head>.\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list);\n\taddStylesToDom(styles, options);\n\n\treturn function update(newList) {\n\t\tvar mayRemove = [];\n\t\tfor(var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\n\t\t\t\t\tdomStyle.parts[j]();\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction addStylesToDom(styles, options) {\n\tfor(var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles(list) {\n\tvar styles = [];\n\tvar newStyles = {};\n\tfor(var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\t\tif(!newStyles[id])\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse\n\t\t\tnewStyles[id].parts.push(part);\n\t}\n\treturn styles;\n}\n\nfunction insertStyleElement(options, styleElement) {\n\tvar head = getHeadElement();\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\n\tif (options.insertAt === \"top\") {\n\t\tif(!lastStyleElementInsertedAtTop) {\n\t\t\thead.insertBefore(styleElement, head.firstChild);\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\thead.appendChild(styleElement);\n\t\t}\n\t\tstyleElementsInsertedAtTop.push(styleElement);\n\t} else if (options.insertAt === \"bottom\") {\n\t\thead.appendChild(styleElement);\n\t} else {\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\n\t}\n}\n\nfunction removeStyleElement(styleElement) {\n\tstyleElement.parentNode.removeChild(styleElement);\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\n\tif(idx >= 0) {\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement(options) {\n\tvar styleElement = document.createElement(\"style\");\n\tstyleElement.type = \"text/css\";\n\tinsertStyleElement(options, styleElement);\n\treturn styleElement;\n}\n\nfunction createLinkElement(options) {\n\tvar linkElement = document.createElement(\"link\");\n\tlinkElement.rel = \"stylesheet\";\n\tinsertStyleElement(options, linkElement);\n\treturn linkElement;\n}\n\nfunction addStyle(obj, options) {\n\tvar styleElement, update, remove;\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\n\t} else if(obj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\") {\n\t\tstyleElement = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t\tif(styleElement.href)\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\n\t\t};\n\t} else {\n\t\tstyleElement = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle(newObj) {\n\t\tif(newObj) {\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\n\t\t\t\treturn;\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = styleElement.childNodes;\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\n\t\tif (childNodes.length) {\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyleElement.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag(styleElement, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyleElement.setAttribute(\"media\", media)\n\t}\n\n\tif(styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = css;\n\t} else {\n\t\twhile(styleElement.firstChild) {\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\n\t\t}\n\t\tstyleElement.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink(linkElement, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\tif(sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = linkElement.href;\n\n\tlinkElement.href = URL.createObjectURL(blob);\n\n\tif(oldSrc)\n\t\tURL.revokeObjectURL(oldSrc);\n}\n\n\n/***/ })\n\n/******/ });\n\n\n// WEBPACK FOOTER //\n// js/global.js?v=76e6ae63"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t8: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"js/\" + chunkId + \".js?v=\" + \"76e6ae63\" + \"\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 31);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 76e6ae63fa7cdfcb4bde","!function(){var a=\"@charset \\\"utf-8\\\";html{overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html *{outline:0;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}html,body{font-family:sans-serif}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{margin:0;padding:0}input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}abbr,acronym{border:0;font-variant:normal}del{text-decoration:line-through}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:500}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:500}q:before,q:after{content:''}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ins,a{text-decoration:none}\",b=document.createElement(\"style\");if(document.getElementsByTagName(\"head\")[0].appendChild(b),b.styleSheet)b.styleSheet.disabled||(b.styleSheet.cssText=a);else try{b.innerHTML=a}catch(c){b.innerText=a}}();!function(a,b){function c(){var b=f.getBoundingClientRect().width;b/i>540&&(b=540*i);var c=b/10;f.style.fontSize=c+\"px\",k.rem=a.rem=c}var d,e=a.document,f=e.documentElement,g=e.querySelector('meta[name=\"viewport\"]'),h=e.querySelector('meta[name=\"flexible\"]'),i=0,j=0,k=b.flexible||(b.flexible={});if(g){console.warn(\"将根据已有的meta标签来设置缩放比例\");var l=g.getAttribute(\"content\").match(/initial\\-scale=([\\d\\.]+)/);l&&(j=parseFloat(l[1]),i=parseInt(1/j))}else if(h){var m=h.getAttribute(\"content\");if(m){var n=m.match(/initial\\-dpr=([\\d\\.]+)/),o=m.match(/maximum\\-dpr=([\\d\\.]+)/);n&&(i=parseFloat(n[1]),j=parseFloat((1/i).toFixed(2))),o&&(i=parseFloat(o[1]),j=parseFloat((1/i).toFixed(2)))}}if(!i&&!j){var p=(a.navigator.appVersion.match(/android/gi),a.navigator.appVersion.match(/iphone/gi)),q=a.devicePixelRatio;i=p?q>=3&&(!i||i>=3)?3:q>=2&&(!i||i>=2)?2:1:1,j=1/i}if(f.setAttribute(\"data-dpr\",i),!g)if(g=e.createElement(\"meta\"),g.setAttribute(\"name\",\"viewport\"),g.setAttribute(\"content\",\"initial-scale=\"+j+\", maximum-scale=\"+j+\", minimum-scale=\"+j+\", user-scalable=no\"),f.firstElementChild)f.firstElementChild.appendChild(g);else{var r=e.createElement(\"div\");r.appendChild(g),e.write(r.innerHTML)}a.addEventListener(\"resize\",function(){clearTimeout(d),d=setTimeout(c,300)},!1),a.addEventListener(\"pageshow\",function(a){a.persisted&&(clearTimeout(d),d=setTimeout(c,300))},!1),\"complete\"===e.readyState?e.body.style.fontSize=12*i+\"px\":e.addEventListener(\"DOMContentLoaded\",function(){e.body.style.fontSize=12*i+\"px\"},!1),c(),k.dpr=a.dpr=i,k.refreshRem=c,k.rem2px=function(a){var b=parseFloat(a)*this.rem;return\"string\"==typeof a&&a.match(/rem$/)&&(b+=\"px\"),b},k.px2rem=function(a){var b=parseFloat(a)/this.rem;return\"string\"==typeof a&&a.match(/px$/)&&(b+=\"rem\"),b}}(window,window.lib||(window.lib={}));\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/js/flexible.js",";(($) =>{\n\t$('body').on('click','[node-type=\"share\"]',function(){\n\tif(navigator.userAgent.toLocaleLowerCase().indexOf('micromessenger') >-1){\n\t\t$('body').append(`<section class=\"layer\" id=\"sharelayer\" style=\"display:block;\">\n\t <section class=\"shareguide\">\n\t <img src=${require(\"../images/shareguide.png\")}>\n\t </section>\n\t </section>`)\n\n\t $('#sharelayer').on('click',function(){\n\t \t$(this).remove();\n\t })\n\t}\n})\n})(Zepto)\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/js/global.js","/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n var Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('<div>').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n $.fn.serializeArray = function() {\n var name, type, result = [],\n add = function(value) {\n if (value.forEach) return value.forEach(add)\n result.push({ name: name, value: value })\n }\n if (this[0]) $.each(this[0].elements, function(_, field){\n type = field.type, name = field.name\n if (name && field.nodeName.toLowerCase() != 'fieldset' &&\n !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' &&\n ((type != 'radio' && type != 'checkbox') || field.checked))\n add($(field).val())\n })\n return result\n }\n\n $.fn.serialize = function(){\n var result = []\n this.serializeArray().forEach(function(elm){\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value))\n })\n return result.join('&')\n }\n\n $.fn.submit = function(callback) {\n if (0 in arguments) this.bind('submit', callback)\n else if (this.length) {\n var event = $.Event('submit')\n this.eq(0).trigger(event)\n if (!event.isDefaultPrevented()) this.get(0).submit()\n }\n return this\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n\nmodule.exports = Zepto\n\n\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/js/zepto.js","module.exports = \"../images/8eaa4804.shareguide.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./mobile/src/images/shareguide.png\n// module id = 27\n// module chunks = 8","import '../css/base.css';\nimport '../js/flexible.js';\nimport '../js/zepto.js';\nimport '../js/global.js';\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/router/global.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function() {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\tvar result = [];\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar item = this[i];\n\t\t\tif(item[2]) {\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\n\t\t\t} else {\n\t\t\t\tresult.push(item[1]);\n\t\t\t}\n\t\t}\n\t\treturn result.join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/css-loader/lib/css-base.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\treturn /msie [6-9]\\b/.test(self.navigator.userAgent.toLowerCase());\n\t}),\n\tgetHeadElement = memoize(function () {\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [];\n\nmodule.exports = function(list, options) {\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the bottom of <head>.\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list);\n\taddStylesToDom(styles, options);\n\n\treturn function update(newList) {\n\t\tvar mayRemove = [];\n\t\tfor(var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\n\t\t\t\t\tdomStyle.parts[j]();\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction addStylesToDom(styles, options) {\n\tfor(var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles(list) {\n\tvar styles = [];\n\tvar newStyles = {};\n\tfor(var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\t\tif(!newStyles[id])\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse\n\t\t\tnewStyles[id].parts.push(part);\n\t}\n\treturn styles;\n}\n\nfunction insertStyleElement(options, styleElement) {\n\tvar head = getHeadElement();\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\n\tif (options.insertAt === \"top\") {\n\t\tif(!lastStyleElementInsertedAtTop) {\n\t\t\thead.insertBefore(styleElement, head.firstChild);\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\thead.appendChild(styleElement);\n\t\t}\n\t\tstyleElementsInsertedAtTop.push(styleElement);\n\t} else if (options.insertAt === \"bottom\") {\n\t\thead.appendChild(styleElement);\n\t} else {\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\n\t}\n}\n\nfunction removeStyleElement(styleElement) {\n\tstyleElement.parentNode.removeChild(styleElement);\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\n\tif(idx >= 0) {\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement(options) {\n\tvar styleElement = document.createElement(\"style\");\n\tstyleElement.type = \"text/css\";\n\tinsertStyleElement(options, styleElement);\n\treturn styleElement;\n}\n\nfunction createLinkElement(options) {\n\tvar linkElement = document.createElement(\"link\");\n\tlinkElement.rel = \"stylesheet\";\n\tinsertStyleElement(options, linkElement);\n\treturn linkElement;\n}\n\nfunction addStyle(obj, options) {\n\tvar styleElement, update, remove;\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\n\t} else if(obj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\") {\n\t\tstyleElement = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t\tif(styleElement.href)\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\n\t\t};\n\t} else {\n\t\tstyleElement = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle(newObj) {\n\t\tif(newObj) {\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\n\t\t\t\treturn;\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = styleElement.childNodes;\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\n\t\tif (childNodes.length) {\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyleElement.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag(styleElement, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyleElement.setAttribute(\"media\", media)\n\t}\n\n\tif(styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = css;\n\t} else {\n\t\twhile(styleElement.firstChild) {\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\n\t\t}\n\t\tstyleElement.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink(linkElement, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\tif(sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = linkElement.href;\n\n\tlinkElement.href = URL.createObjectURL(blob);\n\n\tif(oldSrc)\n\t\tURL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/style-loader/addStyles.js\n// module id = 38\n// module chunks = 8"],"sourceRoot":""}
|